ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.26k stars 175 forks source link

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

Open dscharrer opened 11 years ago

dscharrer commented 11 years ago
  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.

gracicot commented 11 years ago

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

DarkDefender commented 11 years ago

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!

Majkl578 commented 11 years ago

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

ManuGithubSteam commented 11 years ago

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

deri82 commented 11 years ago

+1

mvdkleijn commented 11 years ago

+1

Tomin1 commented 11 years ago

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.

gracicot commented 11 years ago

it should at least let the window manager managing focus

DavidGriffith commented 11 years ago

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.

MrSchism commented 11 years ago

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

DavidGriffith commented 11 years ago

@MrSchism See Issue #11.

MrSchism commented 11 years ago

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.

mvdkleijn commented 11 years ago

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.

LukasThyWalls commented 11 years ago

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

K900 commented 11 years ago

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

remcohaszing commented 11 years ago

+1

cnd commented 11 years ago

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

I want to hide frame to tray icon.

Silent-Hunter commented 11 years ago

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

Kiwii commented 11 years ago

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

ddevault commented 11 years ago

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

stevethepocket commented 11 years ago

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.

CharAznableLoNZ commented 11 years ago

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.

vdrandom commented 11 years ago

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.

ScoreUnder commented 10 years ago

+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:

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.

swordfischer commented 10 years ago

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

HenAlm commented 10 years ago

This also affects my small issue:

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

edgar444 commented 10 years ago

+1

SimonBiggs commented 10 years ago

+1

krissen commented 10 years ago

+1

marcinkurek commented 10 years ago

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

stevethepocket commented 10 years ago

This is true. I've often had all of Steam's windows come into focus when an event notification spawns. Not every time or even most of the time; just often.

dannycolin commented 10 years ago

+1

Silent-Hunter commented 10 years ago

@marcinkurek Especially because KDE is working on KDE for Windows.

spaghetticodr commented 9 years ago

Yes please (atleast on Windows). Steam looks horrid with bbLean.

ghost commented 9 years ago

I would also like it very much if Steam used normal window borders so that I could manipulate the window normally and have all the buttons at their correct place with their correct look.

Silent-Hunter commented 9 years ago

steamwm seems to be a good stopgap solution though. It's worked perfectly for me on CDE.

LivInTheLookingGlass commented 9 years ago

+1

CommanderAlchemy commented 9 years ago

this + native notifications and it would be awesome client. Don't be different because you can.....

yrrah2 commented 9 years ago

+1 get on this

PureTryOut commented 9 years ago

2 and a bit year later this is still not fixed, and still not acceptable (won't ever be). +1 from me!

jurf commented 9 years ago

+1 and me!

suptimal commented 9 years ago

had a unclosable windows again today, cause steam wont let my wm focus the windows (notification send window).

pls Valve let the windowmanager do its job.

+1

DavidGriffith commented 9 years ago

How about some sort of comment from Valve?

PureTryOut commented 9 years ago

I have a feeling they do not care about this at all. This behaviour completely breaks Steam in several window managers, and it just looks ugly compared to the rest of the user's themes.

battlesnake commented 9 years ago

+1, if I wanted a shitty MS Windows interface with no modern window management, I'd use Windows

Xylemon commented 9 years ago

Putting in my vote, Steam behaves terrible under something like WindowMaker.

Michael-Lotus commented 9 years ago

+1

This should be the default way Steam behaves on every OS.

battlesnake commented 9 years ago

I don't get why some developers waste extra time and effort to make their apps non-compliant with established practices.

CommanderAlchemy commented 9 years ago

@battlesnake

Brandthing just look how antivirus companies have their own window decoration and special behaviour just to stand out.

battlesnake commented 9 years ago

@CommanderAlchemy : I wasn't aware that Clam or AppArmor had any special decoration :D