esjeon / krohnkite

A dynamic tiling extension for KWin
MIT License
1.69k stars 71 forks source link

Windows appear to "jump" intermittently #122

Open Ethergeist opened 4 years ago

Ethergeist commented 4 years ago

Symptom Windows will appear to "jump" (Looks like the windows get resized small, and then stretched down from the top-left to fill the space in the tiling layout) around intermittently when Krohnkite is enabled. This issue also seems to affect the tiling script here https://github.com/kwin-scripts/kwin-tiling

Notes Since it also happens in kwin-tiling I suspect it is something to do with the script doing a loop to check that all the windows are the correct size. I can't say for certain as I have not read through the code yet (I intend to do so) - but my guess is the loop simply gets the layout, and the windows and makes them follow the layout without checking to see if they need to be updated (likely for performance reasons).

Just to make sure the issue couldn't be corrected by tweaking things (not because the issue appears to be related to any of these settings afaik) I've tried enabling / disabling these options in Krohnkite: Layout: "Use separate layouts for each Activity" "Use separate layouts for each Desktop" Geometry: "Screen Gaps" "Limit the width of tiled windows" "Ratio of the max width to screen height" Behavior: "Adjust layout by resizing windows" "Adjust layout in realtime as window is being resized" "DWM Style" "Directional" "Put new window as master" Options: "Remove borders of tiled windows" "Keep floating windows above tiled windows" "Prevent window from prodtruding from its screen"

I have also tried turning off all desktop compositor effects (to make sure this wasn't a rendering glitch) and disabling focus stealing prevention in Window Behavior

Expected behavior Windows shouldn't move unless explicitly resized

Environment Operating System: Arch Linux KDE Plasma Version: 5.20.1 KDE Frameworks Version: 5.75.0 Qt Version: 5.15.1 Kernel Version: 5.9.1-arch1-1 OS Type: 64-bit Processors: 24 × AMD Ryzen 9 3900X 12-Core Processor Memory: 47.1 GiB of RAM Graphics Processor: GeForce RTX 2070/PCIe/SSE2ds

Ethergeist commented 4 years ago

Update: I seem to have found the culprit(s) to the issue. I had added the "Application Title" widget and the "Global Menu" widget to my panel, and for some reason it looks like this confuses Krohnkite when it checks the window sizing. I removed both widgets and tested them individually. It doesn't matter which one is in the panel - it still causes the issue - but only when the panel is not full width (something to do with dynamic resizing?).

Steps to reproduce

  1. Add either "Application Title" or "Global Menu" to a panel that is not full width and shrink it down to the smallest size that still shows all the widgets.
  2. Watch the windows jump around.

Workaround Either remove the widget(s) mentioned above or make the panel full width.

Not sure if this is a krohnkite bug or not - but will leave this open for now, since I can reproduce the issue. If anyone feels it needs to be closed, that is fine, since there is an easy workaround.

Hats off to the developer(s) of this script - I am really happy to be using plasma instead of i3. The compositing is so much smoother and all plasma was really missing were the features Krohnkite provides. I still plan on reading through the code and perhaps even helping out with this project in the future.