Open dreamcat4 opened 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.
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.
Another update / retrospective. For to try to help to prioritize (which) bugs. This one:
Video
#2
Paging mode is flickeringFlickering found in PAGING mode (was not documented previously) - 09m17s - 11m14s (in the 2nd video)
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.
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?
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.
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?
Transcript: of Skippy Testing (2) Videos - master branch, 11-july-2023
Overview
TLDR is: well... just watch the darn video(s)!
Format
Content
[multimon,paging] Issue Title
etc.ffmpeg -i in.mkv -ss 00:00:00 -to 00:00:00 -vcodec copy -acodec copy out.mkv
Reproducability
Bugs priority
Video
#1
video-1.reverse-Tee.FULL.mkv
Multi monitor configuration
#1
= aka "reverse Tee"Video
#1
- Segment#1
-00m14s - 01m26s
- What is 'reverse Tee' multi-monitor layout?This is my main and everyday monitor arrangement
Skippy Version under test
#1
- Segment#2
-02m28s - 03m32s
Tooltip issues (all modes)
Video
#1
- Segment#3
-03m32s - 13m34s
Tooltip relative co-ordinates position
Update:
#1
- At06m37s
into Video#1
I incorrectly fail to draw on the screen where is the xorg screen canvas origin. Correction: It's actually located here (screencap)Observation:
Cmdline Tools:
xrandr --query
will tell you these necessary screen canvas offsets for all monitors. On this line being output by the command:DisplayPort-0 connected primary 3440x1440+0+1080 (normal left inverted right x axis y axis) 798mm x 335mm
width,height, x-offset, y-offset
so here the last 2 values =+0+1080
at the endx-offset
starts at pixel0
(the origin) on the leftmost side of the total screen canvasy starting offset
means from the top of the screen. That the top-left corner begins aty=1090
, so some ways down along the total screen canvas0,0
- which is only sometimes true. Depending on the relative positions of monitors within the screen canvasDisplayPort-1 connected 1920x1080+1520+0 (normal left inverted right x axis y axis) 509mm x 286mm
1520+0
... this means: they-offset = 0
so this monitor is at the very topx-offset
is1520
pixels into the screen. I did some simple match to determine that indeed...3440-1920 = 1520
. Voi-laHow to fix? ...not sure!
x,y
offsets the monitor's relative positionNew Tooltip Question (not-a-bug):
Paging mode issues
#1
- Segment#4
-13m32s - 20m14s
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...)
Number of virtual desktops seems too many?
Indexing of virtual desktops starts at 0
However: Can virtual desktops be named with a text label?
wmctrl -d
Examplechar*
stringCo-ordinates offset bug (for paging preview elements)
Cancel on Esc key (not sure if correct here?)
Boxy layout mode issues (expose mode)
#1
- Segment#5
-20m18s - 24m43s
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)
Isn't the layout supposed to be (generally speaking) grid aligned rectilinear?
However: bug does not always exhibit!
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"Video
#2
- Segment#1
-00m05s - 03m56s
- What is 'regular Tee' multi-monitor layout?In this layout, the top-most monitor (one above) is then moved to be below the primary monitor.
So the shape is like a standard letter 'T'. Same tetris block but other way up.
Paging Mode
Primary Monitor
Video
#2
- Segment#2
-03m10s - 10m22s
- Primary monitorTooltip relative co-ordinates position
x-axis
andy-axis
offset=0
(the 2 last numbers?+?+0+0
)Paging mode is flickering
09m17s - 11m14s
Other 2nd, 3rd Monitors
Video
#2
- Segment#3
-11m14s - 24m47s
- 2nd, 3rd monitorsWe still get some position issue on 2nd, 3rd monitors? --> yes correct
#1
...Errata
#2
: - During15m00s - 17m21s
- Wrong DUT (wrong device under test...)17m21s
mark of (full) Video#2
, then Monitor 3 (bottom one) get tested.Boxy layout mode
Video
#2
- Segment#4
-25m00s - 28m48s
- 2nd, 3rd monitorsSame as demonstrated previously (in video
#1
)Other observed issues (unlikely to be multi-monitor related)
Video
#2
- Segment#5
-28m48s - 40m49s
- Other 'new issues' or observationsTooltip is flickering
Successive alt+tab flickering - mainwin gets redrawn (unmapped, then re-mapped)
skippy-xd-runner
scriptskippy-xd --switch
cmdline successively (withoutrunner
wrapper) - it does not seem to exhibit that wa