steam-for-linux icon indicating copy to clipboard operation
steam-for-linux copied to clipboard

Feature Request: Let Steam client windows be managed by the window manager

Open dscharrer opened this issue 12 years ago • 177 comments

  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.

dscharrer avatar Jan 29 '13 21:01 dscharrer

Totally agree. This is okay to do as steam does on windows, but on linux it's simply not applicable. The steam client actually tries to manage itself, which is not his job. Every window manager are different and every users/preferences are different.

Linux users don't like when an application behaves differently. Sometime users set specific rules/behaviour to window and the current steam client break almost all user preferences

gracicot avatar Jan 30 '13 06:01 gracicot

Glad to see the original creator of the xlib workaround post here! :) I've reported the effects of this in awesomeWM here #807 So if this one is fixed my bug report can be closed as well.

Thank you again @dscharrer for the fixes!

DarkDefender avatar Jan 30 '13 12:01 DarkDefender

Definitely seems to be a good idea. Current behavior is very buggy.

Majkl578 avatar Jan 30 '13 16:01 Majkl578

Yes 100% ACK, please let the WM deal with it.

ManuGithubSteam avatar Feb 02 '13 14:02 ManuGithubSteam

+1

deri82 avatar Feb 03 '13 04:02 deri82

+1

mvdkleijn avatar Feb 06 '13 12:02 mvdkleijn

I agree with this request. It annoys me that Steam steals focus. I'd like to let the WM decide and windows should just tell that they need attention. And I'm missing always on top with chat windows, my WM has the feature but I can't use it with Steam.

Tomin1 avatar Feb 11 '13 17:02 Tomin1

it should at least let the window manager managing focus

gracicot avatar Feb 14 '13 22:02 gracicot

This could help a lot with the weird problems of the "close window" cross misbehaviour. Please implement this. Having window decorations that don't mesh with the rest of the system is very irritating.

DavidGriffith avatar Feb 15 '13 08:02 DavidGriffith

@DavidGriffith What do you mean by "the 'close window' cross misbehaviour"?

MrSchism avatar Feb 15 '13 08:02 MrSchism

@MrSchism See Issue #11.

DavidGriffith avatar Feb 15 '13 08:02 DavidGriffith

They explained -why- they did what they did; there's a lack of reliable tray icon. No tray icon means minimizing to tray (standard X-button action) breaks usability.

MrSchism avatar Feb 15 '13 08:02 MrSchism

Lets not muddle this issue. This issue is not about the tray icon/minimizing thing. Its about using the WM to manage steam windows (like other applications) instead of steam managing itself. Let steam use the power of the WM.

mvdkleijn avatar Feb 15 '13 09:02 mvdkleijn

@MrSchism But with the last (or the other) update from repositories, the tray icon is working in KDE and others enviroments (i don't know if in all) and like close to tray https://github.com/ValveSoftware/steam-for-linux/issues/1025 have other problems like new chats open window https://github.com/ValveSoftware/steam-for-linux/issues/266

Talking about the close to tray, there is a workaround in https://github.com/ValveSoftware/steam-for-linux/issues/1025 what works for me, but how they explained in https://github.com/ValveSoftware/steam-for-linux/issues/1720, it isn't a Steam bug, it's outside Steam, and it's concerner with the enviroment.

Although having Steam working in the WM would fix many of those problems, the cost of working for three plataforms together could be very high against the possibility to implement a full use of every desktop enviroment. They probably do (and i think they are doing it now) a global implementation what, in theory, have to work in all systems and enviroments, and if not, do only little tweaks in the Steam client or demand some tweaks to the enviroment itself.

LukasThyWalls avatar Feb 15 '13 11:02 LukasThyWalls

Would love to have this. The WM just knows more than Steam, so Steam should leave the decisions to it.

K900 avatar Feb 15 '13 12:02 K900

+1

remcohaszing avatar Mar 02 '13 10:03 remcohaszing

Close window and Minimize window both are doing nothing in XMonad.

I want to hide frame to tray icon.

Cynede avatar Aug 14 '13 06:08 Cynede

Yes please! I would greatly appreciate this as steam is nearly unusable in Common Desktop Environment, UNIX Window Manager, and DWM without it.

Silent-Hunter avatar Aug 19 '13 03:08 Silent-Hunter

+1 I can force KWin to use native window borders and use a skin without decoration but that way all windows move down by the size of the window border each restart. Please let the window manager do it's job: managing windows.

Kiwii avatar Sep 15 '13 14:09 Kiwii

+1

On both awesome and i3, Steam windows fight with the WM to size themselves, and Steam loses. They should set the floating state properly. Bonus points if you set window groups for greater scriptability.

ddevault avatar Sep 19 '13 06:09 ddevault

Steam currently insists on positioning it's 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.

Maybe yours does. I can't for the life of me get KDE to remember that Firefox snaps to the right side of the screen and Thunderbird snaps to the left. In the nine months I've been using it, it has never not tried to do the exact opposite. Meanwhile, Steam's Friends window stays where I put it, in the bottom left corner.

stevethepocket avatar Sep 20 '13 04:09 stevethepocket

I also support the idea of letting the window manager deal with Steam. There are certain functions that are useful in KDE for example that I use on a daily basis but cannot use with Steam as it is managing its own window. The ability to tab applications together and send them to different desktops is quite a useful feature. An added benefit of letting the window manager deal with Steam is the close to tray icon feature will work as expected in environments that support a tray icon.

CharAznableLoNZ avatar Oct 06 '13 20:10 CharAznableLoNZ

Issue #1879 was closed, but I don't see WM_CLASS mentioned in this bug. Having different instances for different windows would have been very useful to manage rules for steam windows in tiling window managers. Other than that I agree. I've just started using awesome and I have to deal with floating mode for steam although it would have worked much better if at least different instances in WM_CLASS were provided.

vdrandom avatar Nov 14 '13 03:11 vdrandom

+1 to this: I haven't yet encountered a WM compatible with steam's close button (I don't doubt that Unity and such might be compatible but it'll be a cold day in hell before you catch me using that), and my current WM of choice (i3, unfortunately :wink: ) is incompatible with Steam's move and resize functionality as well as all of the title bar buttons. It also seems that using the WM's close window functionality can actually kill the steam process, which is definitely the wrong behaviour.

Combined with bug #53 , which should not be closed as it is unresolved, this means I am faced with a dilemma when I don't want to see steam's main window:

  • Click Steam's close button: Nothing happens whatsoever
  • Close Steam's main window: The entire application dies

Also, steam does a whole lot of focus stealing. Considering I start this up when I log in, it's very frustrating to be typing in keyring passwords only to find that steam's popup notifications (which should be using libnotify!) have stolen my keystrokes halfway through. If I recall correctly it also does this when it opens up a new chat window (or any window for that matter), so it could really happen at any time.

ScoreUnder avatar Jan 02 '14 16:01 ScoreUnder

@ScoreUnder all "New" windows from Steam steals focus in Awesome for me (tiling/hybrid WM). However, sometimes when closing a friend chat with the X or Alt-F4-esque Steam itself will be killed.

swordfischer avatar Jan 06 '14 08:01 swordfischer

This also affects my small issue:

https://github.com/ValveSoftware/steam-for-linux/issues/564

HenAlm avatar Jan 06 '14 11:01 HenAlm

+1

edgar444 avatar Jun 25 '14 16:06 edgar444

+1

SimonBiggs avatar Aug 02 '14 13:08 SimonBiggs

+1

krissen avatar Aug 08 '14 18:08 krissen

Is there a chance we get similar functionality on Windows? This is by no means a problem exclusive to Linux.

marcinkurek avatar Aug 09 '14 22:08 marcinkurek