polonium icon indicating copy to clipboard operation
polonium copied to clipboard

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

Open Bookingyo opened this issue 1 year ago • 4 comments

Before you make the issue, confirm that

  • [X] You are running the master build from GitHub actions
  • [X] You have read the FAQ and the usage instructions
  • [X] You have searched pull requests and issues and have found none similar to your issue
  • [X] This problem comes from a failure in the tiling system and not a missing feature

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

Bookingyo avatar Apr 20 '24 15:04 Bookingyo

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.

zeroxoneafour avatar Apr 23 '24 15:04 zeroxoneafour

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.

smithmd avatar Jun 05 '24 17:06 smithmd

@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.

zeroxoneafour avatar Jun 06 '24 05:06 zeroxoneafour

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?

smithmd avatar Jun 06 '24 18:06 smithmd