zeroxoneafour / polonium

Autotile manager for Plasma 6
https://zeroxoneafour.github.io/polonium/
MIT License
936 stars 18 forks source link

[Bug]: KDE desktop crash after adding vertical tile to vertical monitor if an active window exists #154

Open Bookingyo opened 5 months ago

Bookingyo commented 5 months ago

Before you make the issue, confirm that

Describe the bug

From a fresh reboot.

Polonium causes the KDE desktop/windows to crash after adding vertical tile on vertical monitor if an active window exists. In addition, vertical tiling does not seem to work on a vertical monitor.

To reproduce

main monitor display = landscape secondary monitor = vertical

  1. have an active window on the secondary monitor.
  2. press meta+T
  3. split vertically

Result = All windows crash

Vertical tiles don't seem to work in the vertical monitor, windows only align horizontally.

Expected behavior

ability to split vertical monitors in half where windows automatically scale and adjust to the vertical split.

Log output

journalctl --user --no-pager -e | grep -i "polonium"
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium INF: Polonium started!
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium DBG: Config is {"debug":true,"tilePopups":false,"filterProcess":["krunner","yakuake","kded","polkit","plasmashell"],"filterCaption":[""],"timerDelay":10,"keepTiledBelow":true,"borders":1,"maximizeSingle":false,"resizeAmount":10,"saveOnTileEdit":true,"engineType":1,"insertionPoint":0,"rotateLayout":false}
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:03 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:04 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:04 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:04 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:04 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:04 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:04 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:04 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:04 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:05 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:05 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:05 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:05 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:05 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:05 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:06 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:06 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:06 epoch kwin_wayland[1069]: qml: Polonium DBG: Restarting init timer
Apr 20 11:22:06 epoch kwin_wayland[1069]: qml: Polonium DBG: Creating new engine for desktop {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:22:06 epoch kwin_wayland[1069]: qml: Polonium DBG: Creating new engine for desktop {"desktop":"f56bdcd6-2028-4ceb-ad64-6dc8be6d403c","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:22:06 epoch kwin_wayland[1069]: qml: Polonium DBG: Creating new engine for desktop {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:06 epoch kwin_wayland[1069]: qml: Polonium DBG: Creating new engine for desktop {"desktop":"f56bdcd6-2028-4ceb-ad64-6dc8be6d403c","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:07 epoch kwin_wayland[1069]: qml: Polonium DBG: Window plasmashell hooked into script
Apr 20 11:22:07 epoch kwin_wayland[1069]: qml: Polonium DBG: Not tiling window plasmashell
Apr 20 11:22:11 epoch kwin_wayland[1069]: qml: Polonium DBG: Window kitty hooked into script
Apr 20 11:22:11 epoch kwin_wayland[1069]: qml: Polonium DBG: Window kitty added
Apr 20 11:22:11 epoch kwin_wayland[1069]: qml: Polonium DBG: Adding window kitty to desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:22:11 epoch kwin_wayland[1069]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"},{"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:17 epoch kwin_wayland[1069]: qml: Polonium DBG: Window plasmashell hooked into script
Apr 20 11:22:17 epoch kwin_wayland[1069]: qml: Polonium DBG: Not tiling window plasmashell
Apr 20 11:22:18 epoch kwin_wayland[1069]: qml: Polonium DBG: Window plasmashell removed
Apr 20 11:22:18 epoch kwin_wayland[1069]: qml: Polonium DBG: Removing window plasmashell from desktops
Apr 20 11:22:21 epoch kwin_wayland[1069]: qml: Polonium DBG: Layout modified for tile QRectF(3440, 0, 1440, 2560)
Apr 20 11:22:21 epoch kwin_wayland[1069]: qml: Polonium ERR: Tile QRectF(3440, 0, 1440, 1280) not registered
Apr 20 11:22:21 epoch kwin_wayland[1069]: qml: Polonium ERR: Tile QRectF(3440, 1280, 1440, 1280) not registered
Apr 20 11:22:26 epoch kwin_wayland[1069]: qml: Polonium DBG: Window Thorium-browser hooked into script
Apr 20 11:22:26 epoch kwin_wayland[1069]: qml: Polonium DBG: Window Thorium-browser added
Apr 20 11:22:26 epoch kwin_wayland[1069]: qml: Polonium DBG: Adding window Thorium-browser to desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:26 epoch kwin_wayland[1069]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"},{"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:28 epoch kwin_wayland[1069]: qml: Polonium DBG: Window Thorium-browser hooked into script
Apr 20 11:22:28 epoch kwin_wayland[1069]: qml: Polonium DBG: Window Thorium-browser added
Apr 20 11:22:28 epoch kwin_wayland[1069]: qml: Polonium DBG: Adding window Thorium-browser to desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:28 epoch kwin_wayland[1069]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"},{"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:30 epoch kwin_wayland[1069]: qml: Polonium DBG: Window Thorium-browser removed
Apr 20 11:22:30 epoch kwin_wayland[1069]: qml: Polonium DBG: Removing window Thorium-browser from desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:30 epoch kwin_wayland[1069]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"},{"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:35 epoch kwin_wayland[1069]: qml: Polonium DBG: Window Thorium-browser moved into an unmanaged tile
Apr 20 11:22:35 epoch kwin_wayland[1069]: qml: Polonium DBG: Untiling window Thorium-browser on desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:35 epoch kwin_wayland[1069]: qml: Polonium DBG: Putting client Thorium-browser in tile QRectF(3440, 0, 1440, 1280) with direction 2 on desktop {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:35 epoch kwin_wayland[1069]: qml: Polonium ERR: Tile QRectF(3440, 0, 1440, 1280) not registered
Apr 20 11:22:35 epoch kwin_wayland[1069]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium INF: Polonium started!
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Config is {"debug":true,"tilePopups":false,"filterProcess":["krunner","yakuake","kded","polkit","plasmashell"],"filterCaption":[""],"timerDelay":10,"keepTiledBelow":true,"borders":1,"maximizeSingle":false,"resizeAmount":10,"saveOnTileEdit":true,"engineType":1,"insertionPoint":0,"rotateLayout":false}
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Creating new engine for desktop {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Creating new engine for desktop {"desktop":"f56bdcd6-2028-4ceb-ad64-6dc8be6d403c","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Creating new engine for desktop {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Creating new engine for desktop {"desktop":"f56bdcd6-2028-4ceb-ad64-6dc8be6d403c","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Window plasmashell hooked into script
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Not tiling window plasmashell
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Window plasmashell hooked into script
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Not tiling window plasmashell
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Window org.kde.polkit-kde-authentication-agent-1 hooked into script
Apr 20 11:22:37 epoch kwin_wayland[2495]: qml: Polonium DBG: Not tiling window org.kde.polkit-kde-authentication-agent-1
Apr 20 11:22:38 epoch kwin_wayland[2495]: qml: Polonium DBG: Window plasmashell hooked into script
Apr 20 11:22:38 epoch kwin_wayland[2495]: qml: Polonium DBG: Not tiling window plasmashell
Apr 20 11:22:43 epoch kwin_wayland[2495]: qml: Polonium DBG: Window org.kde.polkit-kde-authentication-agent-1 removed
Apr 20 11:22:43 epoch kwin_wayland[2495]: qml: Polonium DBG: Removing window org.kde.polkit-kde-authentication-agent-1 from desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:22:47 epoch kwin_wayland[2495]: qml: Polonium DBG: Window org.kde.drkonqi hooked into script
Apr 20 11:22:47 epoch kwin_wayland[2495]: qml: Polonium DBG: Window org.kde.drkonqi added
Apr 20 11:22:47 epoch kwin_wayland[2495]: qml: Polonium DBG: Adding window org.kde.drkonqi to desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:22:47 epoch kwin_wayland[2495]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"},{"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:23:40 epoch kwin_wayland[2495]: qml: Polonium DBG: Window org.kde.drkonqi removed
Apr 20 11:23:40 epoch kwin_wayland[2495]: qml: Polonium DBG: Removing window org.kde.drkonqi from desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:23:40 epoch kwin_wayland[2495]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"},{"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:23:45 epoch kwin_wayland[2495]: qml: Polonium DBG: Window Thorium-browser hooked into script
Apr 20 11:23:45 epoch kwin_wayland[2495]: qml: Polonium DBG: Window Thorium-browser added
Apr 20 11:23:45 epoch kwin_wayland[2495]: qml: Polonium DBG: Adding window Thorium-browser to desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:23:45 epoch kwin_wayland[2495]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"},{"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}
Apr 20 11:23:51 epoch kwin_wayland[2495]: qml: Polonium DBG: Window kitty hooked into script
Apr 20 11:23:51 epoch kwin_wayland[2495]: qml: Polonium DBG: Window kitty added
Apr 20 11:23:51 epoch kwin_wayland[2495]: qml: Polonium DBG: Adding window kitty to desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"}
Apr 20 11:23:51 epoch kwin_wayland[2495]: qml: Polonium DBG: Rebuilding layout for desktops {"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-1"},{"desktop":"ba32a5b2-6a2c-4fd1-9176-0daccced10e1","activity":"d72c72f1-4763-476c-a2f3-f48d926cdc4f","output":"DP-2"}

Screenshots and videos

Split vertically with active window on vertical monitor

add tile

everything crashes

crash after adding vertical tile

unable to tile windows vertically image

script settings Screenshot_20240420_114052

Additional context

No response

zeroxoneafour commented 5 months ago

Crashes almost as expected. Why would you edit the actual layout with Meta+T unless you're using the KWin layout? If you are, please specify, if not, don't change the amount of tiles on screen through KWin.

smithmd commented 4 months ago

What's the alternative to using Meta+T here? This crash is exactly why I stopped using it. A crash should never be an expected result. Should be handled somehow.

zeroxoneafour commented 4 months ago

@smithmd Handled by what? The script? The amount of control that the script has over KWin and its tiling is heavily limited. There's no exception to catch that when uncaught causes a crash, just random and unpredictable undefined behavior. One such undefined behavior is editing the layout when it is already being managed by the engine. While the script should just ignore the edits, sometimes KWin doesn't and throws a fit.

smithmd commented 4 months ago

Then again I ask, "What's the alternative to using Meta+T here?" Is the answer just that there's no way to manually edit the layout without potential crashes?