Various window management fixes for the Linux Steam client
DISCLAIMER: Use at your own risk! This is in no way endorsed by VALVE.
Feature request for these changes to be implemented in Steam: issue #1040
The window management fixes:
- Force borders on non-menu windows.
- Let the WM position non-menu/tooltip windows.
- Group all steam windows. This helps WMs with their focus stealing preventions, and also prevents all Steam windows from being dimmed (by KWin) if any Steam window has focus (is a KWin setting).
- Tell the WM which Steam windows are dialogs. This lets the window manager place them more intelligently. For example, the WM might center dialogs.
- Steam sets error dialogs as unmanaged windows - fix that.
Obsolete fixes (now disabled by default):
WM_NAMEvalue to get better window titles.
- Set fixed size hints for windows with a fixed layout.
Fixes can be individually enabled or disabled - for details see the comments in the source file.
This file compiles to a library that can be
LD_PRELOADed into the Steam process. For your convenience it is also its own build and wrapper script.
g++ with support for x86 targets,
Xlib + headers
$ chmod +x steamwm.cpp $ ./steamwm.cpp steam
This is a Steam skin that complements
steamwm.cpp: It is exactly the same as the default skin, but with the window borders and controls removed.
To install it use:
$ chmod +x noframe.patch $ ./noframe.patch
and then select the
noframe skin in the Steam settings.