dscharrer · GitHub

  1. It would be great if Steam had an option to let the window manager decorate Steam windows - and then remove the borders and window controls in the Steam skin. This is very useful, as Steam will never be able to implement all the window management features that users of various WMs are used to.
  2. Steam currently insists on positioning its own windows, while for X11 that task should be left to the WM - it knows more than you about the user's preferences and other windows and will likely be able to place them more intelligently.
  3. To take full advantage of the WMs window positioning, Steam needs to classify windows by setting the _NET_WM_WINDOW_TYPE property. At the minimum, dialog windows should be given the _NET_WM_WINDOW_TYPE_DIALOG value so that the WM can center them or put them under or near the mouse cursor - or whatever else the WM/user likes. Menu windows are already correctly classified as _NET_WM_WINDOW_TYPE_MENU. Also, initial window sizes need to be set before the window is shown (ideally before it is mapped).
  4. Finally Valve should consider Grouping the the Steam windows together using the window_group WM_HINT and the WM_CLIENT_LEADER property. This will prove interaction with the WM's focus stealing prevention (if the running WM has that feature). With KWin this also has the added benefit that "Dim Inactive" desktop effect will leave all Steam windows at full brightness when any Steam window has focus (if configured to apply the effect to window groups).

I previously reported this here when Steam was still in closed beta, and some of the suggested enhancements/fixes have since been implemented - the remaining ones are listed above.

Here is my proof of concept implementing these changes on the Xlib level - of course a real solution would implement this in Steam. I have tested these changes on my own system, but others have found them useful with different WMs, including Ubuntu's Unity.

Read the original on github.com ↗