Maximised CSD windows snap into different size after being resized manually
xfwm4 v4.18.0 on Arch Linux
Summary
I want to maximize a window such that it takes up all the screen space, then resize it to make some room on one or two sides of it. This works very well with windows that have a regular titlebar. Windows that use client side decorations however snap to leave a gap between window and screen border once released.
Steps to reproduce
- Open a program that uses CSD, e.g.
gnome-system-monitor
or Firefox with titlebar disabled / "tabs in titlebar" feature turned on. - Maximze the window
- Resize the window using the accesibility feature "Key used to grab and move windows"
- Release mouse buttons and keyboard
Expected behavior
The window keeps the dimensions and position it had before releasing it.
Observed behavior
Windows with a title bar behave as expected.
Windows using CSD snap to make a 15-30px gap towards screen edges as soon as they are released.
Preferred solution
Is there any way to disable this behavior?
If so, would it be a change within xfwm or would i need to modify each program that uses CSD? On KDE Plasma 5.27 windows behave as expected in this scenario even if they use CSD so i am assuming this behavior is specific to xfwm.
Alternatives considered
The following does what i want as long as there are no conflicting windows on screen:
- Toggle the "Fill window" keyboard shortcut
- Resize using the "Key used to grab and move windows"
- It's easily possible to set a shortcut adjacent to the "Key used to grab and move windows" (e.g. Super and Super+z)
The following works under all circumstances but requires somewhat more complexity / getting used to
- Determine any screen edge i don't want the window to touch
- Tile the window using a keyboard shortcut
(Since tiling with the mouse only works for left and right) - Resize
In any case i don't understand why CSD windows have this quirk to begin with, especially since regular windows don't. I don't see any usefulness to it and still find it irritating at best even if i can work around it in some way.