dreamcat4 / skippy-xd

A full-screen Exposé-style standalone task switcher for X11.
GNU General Public License v2.0
100 stars 12 forks source link

Transcript: of Skippy Testing (2) Videos - master branch, 11-july-2023 #156

Open dreamcat4 opened 1 year ago

dreamcat4 commented 1 year ago

Transcript: of Skippy Testing (2) Videos - master branch, 11-july-2023

Overview

Video #1

video-1.reverse-Tee.FULL.mkv

Multi monitor configuration #1 = aka "reverse Tee"

   [_]
 [_P_][_]

Skippy Version under test

Tooltip issues (all modes)

Paging mode issues

Note: I don't use paging mode (for myself), just reporting these things... I don't wish to go back and re-test. (Because it's takes time away from doing other things...)

Boxy layout mode issues (expose mode)

Note: I don't use the BOXY layout (for myself), just reporting these things... I don't wish to go back and re-test. (Because it's takes time away from doing other things...)

"Diagonal Pattern" traversal between windows (above a certain number of open windows)

The general observation is that: this "boxy layout" mode looks worse when

Video #2

video-2.regular-Tee.FULL.mkv

Multi monitor configuration #2 = "Tee"

 [_P_][_]
   [_]

Paging Mode

Primary Monitor

Paging mode is flickering

Other 2nd, 3rd Monitors

Boxy layout mode

Other observed issues (unlikely to be multi-monitor related)

felixfung commented 1 year ago

Thanks @dreamcat4 for a very detailed report. It will take me some time to go through your findings.

I have created a quick PR on a bug I knew about also, please try it out.

Meanwhile, I have this thought for a while. You have previously offered ownership, and for a while I felt I am ready to take ownership. I did not raise this topic because you were about to report the bugs and I did not want you to take it the wrong way :)

If you are still inclined, I would be happy to take ownership.

dreamcat4 commented 1 year ago

perhaps the best way forwards will be to:

create a github organisation. with both of us having those necessary roles. this enables some advantages as follows:

so this i feel helps a lot to get your latest versions of skippy into the acceptance of modern distros and des. however with a good enough balance of not being so chained forever (because we all want to put down a project eventually, to move on). so that any future public position of skippy code really looks less like somebody's pet project. that isn't so easy to trust it won't end up changing hands (at least the download url / source code repo link). over and over.

and i feel this is my steady state position for skippy xd project. after a long enough periof of consideration. another big reason is that there isn't alternative project to skippy out there. for substitute (that is not linked to a specific wm/de or compositor).

so if you can get back to me later about project handover matters. (since i would prefer your buy-in and consent / agreement. and that there is no set timeframe for that move, it requires some overhead to move this repo over, and all of the issues, wiki etc.).

anyhow back to these bugs:

1 more possible improvement i did not mention before:

so this is similar matter. in related code. to maintain updated screen canvas origin points. between skippy invocations that is then mapping / unmapping the mainwin with stale xorg screen canvas data. again --> to make again as it's seperate issue. to track that one.

dreamcat4 commented 1 year ago

Another update / retrospective. For to try to help to prioritize (which) bugs. This one:

Video #2 Paging mode is flickering

Flickering found in PAGING mode (was not documented previously) - 09m17s - 11m14s (in the 2nd video)

felixfung commented 1 year ago

The flickering in paging is because each desktop window is unmapped, then rendered, then mapped in each refresh cycle. The reason for this to retain "live preview": e.g. when a video is playing during paging, it should show to be playing, rather than static. In my testing, which is single monitor, and I tested on many environments, there is only occasional mild flickering, which is to me completely acceptable. Sometimes, but not always, in GNOME and KDE, there is significant flickering. According to my very limited knowledge of X11, this is the best I can do.

Unless we turn on lazyTrans option. I think a more descriptive name for this config option is to rename pseudoTransparency = !lazyTrans. When lazyTrans = false, skippy assume there is no picom or similar, and first draws the background, and then the window content, which I think are often called pseudo transparency. This is why we need unmapping/remapping for paging desktop. When lazyTrans = true (pseudoTransparency = false), there is no first drawing of the background, hence the unmapping/remapping may not be needed, and flickering may be avoided.

Currently there is no implementation of the drawing of desktop windows without unmapping/remapping, and when lazyTrans = true, the flickering is so bad it is completely broken #153.

In summary, the flickering is real and right now cannot be avoided, but despite the flickering paging is usable, and perfectly so on environments outside of GNOME and KDE (and single monitor, #126). To elimniate flickering, #153 has to be completed.

felixfung commented 1 year ago

On the topic of whether a feature is usable/imperfection/broken, according to my testing on single monitor hardware, many window managers/desktop environments, pretty much all features are either perfect or very usable. I am still going through your detailed report, but from a brief look your setup skippy is not "broken", it is messed up but usable? (#153 is an example of what I would call broken, unusable)

Also yes, it is already known that multi-monitor setup has bug in terms of offset (#126). And yes that renders many features (e.g. tooltip, clientwin positions) "broken", very bad in usability. Their root cause and fix would be similar, if not identical. Since I do not have multiple hardware monitor I cannot dev/test. Would that be something you can work on?

dreamcat4 commented 1 year ago

ok, these matters are generally accepted... however i do have some observations around it:

so in all other respects i defer to your assessment of these matters all around lazytrans and dealing with these flickering matters. it seems well considered approach so please to go ahead with any of that (as you deem fit / at your leisure, including changing the config setting etc. all fine)

skippy is not "broken", it is messed up but usable? (https://github.com/dreamcat4/skippy-xd/issues/153 is an example of what I would call broken, unusable)

well yes. rather than resort too much vague terms, it was the reason to make the video. and be worth to communicate better. in effect (for myself) the main top (2) priorities for fixing would be:

and that would probably be just enough fix skippy, (but only for myself, not necessarily for other users).

Since I do not have multiple hardware monitor I cannot dev/test. Would that be something you can work on?

yes it seems to be...

however more broadly speaking also requires some extra assessments and researching. so that wider matter (than individual bug) has also been opened up here https://github.com/dreamcat4/skippy-xd/issues/160

although i might also do some quick fixings (in the meantimes). for those (2) specific bugs / issues cited. which is a bit more self-serving matters.

felixfung commented 1 year ago

For your two concerns:

the screen flashing on successive alt-tab

I suspect it is as you say, it has something to do with the runner script and not skippy itself. skippy-xd --switch does not unmap/remap the main window.

relative tooltip position offset (multi-monitor)

The relevant code for tooltip is all within tooltip_move(). The xinerama/monitor dimensions is set in mainwin_update(). With a bit of printf (and mulitple screens!) I expect you to fix this relatively easily?