ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.22k stars 174 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.

spaghetticodr commented 8 years ago

@CommanderAlchemy There are a few sane antiviruses that don't follow this ugly trend, such as Avira and ESET.

Ziul commented 8 years ago

Have been 2 years that community as Steam to stop using Linux as Windows and do it in the right way... Steam's client is almost incompatible with half Linux's WM just 'cause refuses to use the libraries already identified. +1 on this feature.

alfred-valve commented 8 years ago

The design of the windowing toolkit we use in the desktop client for Steam makes this feature request very expensive to implement correctly. At this time we have no plans to make that change.

PureTryOut commented 8 years ago

The question is why this was not done in the first place. Any Linux developer should know these kind of things should be left to the window manager. I think the need for this is pretty important, and should be high on the priority list.

LivInTheLookingGlass commented 8 years ago

There's rather huge bugs and slowdowns even on popular distros and WMs. And this is the root cause.

It's baffling to me that this wasn't done correctly in the first place.

DarkDefender commented 8 years ago

@alfred-valve Thank you for your honesty. Perhaps this could be revisited when most major distros has made the jump from X11 to Wayland? It seems like it might happen sooner rather than later so it might be a waste to rewrite the X11 backend.

battlesnake commented 8 years ago

@alfred-valve : Thanks for the info. Out of curiosity, why did Valve try to create their own window management when originally designing the Linux client?

alfred-valve commented 8 years ago

@battlesnake , we didn't, we made our own UI toolkit when making Half-Life 1 and used it for Steam. Now we are about 15 years on from that decision...

battlesnake commented 8 years ago

That makes more sense, thanks!

tmplt commented 8 years ago

This would be very nice, indeed.

DavidGriffith commented 8 years ago

@alfred-valve, how much trouble would it be to alter the toolkit such that it leaves window handling to the window manager?

stevethepocket commented 8 years ago

See, coding a brand-new UI engine is something that probably should have been done back when the client was redesigned from scratch for the 2010 Mac rollout, given how much had to be changed anyway. Or when you built Big Picture Mode. Or when you built your own in-house Linux distro. Or right now, while you're working on a brand-new game engine and contributing to a complete overhaul of OpenGL in the process.

It's not that using nonstandard window designs is a bad thing, as such. I've used plenty of Windows apps that have their own custom skins — because there are a lot out there — and I don't recall any of them ever having issues with stealing focus. I presume what it's doing now is the equivalent of running a fullscreen game in a borderless window? There must be a better way.

firatakandere commented 8 years ago

+1

z3ntu commented 8 years ago

+1

JoshuaMurphynz commented 8 years ago

GTK intergration would be nice On 14 Jan 2016 01:07, "Luca Weiss" notifications@github.com wrote:

+1

— Reply to this email directly or view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/1040#issuecomment-171272182 .

polochamps commented 8 years ago

+1

xintron commented 8 years ago

Are there any updates to this feature/bug?

Avamander commented 8 years ago

I have to ask the same. Any updates on this?

Also, instead of +1, give the OP a thumbs up instead.

ScoreUnder commented 8 years ago

This github issue has been around since long before github had a thumbs up feature.

Avamander commented 8 years ago

@ScoreUnder, irrelevant.

ScoreUnder commented 8 years ago

Quite relevant, as most of the +1 comments were made when there was no alternative. You can't scold someone for not using a feature which didn't exist at the time.

LivInTheLookingGlass commented 8 years ago

On the other hand, we could not have a semantics debate that gets emailed to 50 people.

ScoreUnder commented 8 years ago

Does it? There is an unsubscribe button on the right if you don't want to be emailed about this issue.

It's not as if Valve will ever comment on it anyway.

(Also, there is an irony in emailing everyone to say "stop emailing people")

rkfg commented 8 years ago

It's not very hard to read the thread and see that Valve already commented: https://github.com/ValveSoftware/steam-for-linux/issues/1040#issuecomment-150274129

ScoreUnder commented 8 years ago

That's what I mean - their comment makes me think it's unlikely that they'll come back to this issue in the future.

z3ntu commented 8 years ago

Please don't fight here :)

mjsmith707 commented 8 years ago

I really wish they'll revisit this. Steam is particularly bad with tiling managers.

hexadecatrienoic commented 7 years ago

Bumping this thread. If anyone's running DWM and wants to have steam popups be floating, here's a set of rules for your rules section. Chats don't work (I can't seem to match part of the window name), and I doubt the deals window will work for the same reason.

UPDATE: chats still don't work, but the deals window does. I've added what works from @z3ntu's i3 config. Will update on chats again soon.

UPDATE: I got chats working through a pretty roundabout method: all steam windows are set as floating, then windows with the title Steam are set as titled. This sets everything but the main steam window as floating. It ain't pretty, but it works.

{ "Steam",    NULL,       "Friends",  0,            True,        -1 },
{ "Steam",    NULL,       "Music Player",0,         True,        -1 },
{ "Steam",    NULL,       "Add a Game",0,           True,        -1 },
{ "Steam",    NULL,       "Steam - System Information",0,True,   -1 },
{ "Steam",    NULL,       "Steam Guard - Computer Authorization Required", 0, True, -1 },
{ "Steam",    NULL,       "Steam - News", 0,        True,        -1 },
{ "Steam",    NULL,       " - event started", 0,    True,        -1 },
{ "Steam",    NULL,       "CD key",   0,            True,        -1 },
{ "Steam",    NULL,       "Screenshot Uploader", 0, True,        -1 },
z3ntu commented 7 years ago

For anyone running i3: https://github.com/z3ntu/dotfiles/blob/master/i3/.config/i3/config#L55

@hexadecatrienoic maybe you can find some useful things in there too.

roryyamm commented 7 years ago

HOW IS THIS STILL NOT CHANGED? I am using Common Desktop Environment, and the damn thing does not want to either move without pressing Meta, or resize at all! Sure, CDE's a Hobbyist's system, but what about MWM? what about FVWM, TWM (Which already makes its own title bar), VTWM (same), and all of the other window managers to which steam is completely alien in? FIX, PLEASE.

marcinkurek commented 7 years ago

@roryyamm it's 15 year old code, most likely noone at Valve wants to touch this

DavidGriffith commented 7 years ago

On December 30, 2016 5:33:35 PM PST, Marcin Kurek notifications@github.com wrote:

@roryyamm it's 15 year old code, most likely noone at Valve wants to touch this

If Steam behaved properly, it wouldn;t matter what WM is being used -- CDE, TWM, MWM, OpenLook, etc. -- David Griffith dave@661.org

Silent-Hunter commented 7 years ago

The window manager only handles the titlebar and window borders, not the contents of the window.

On Mar 13, 2017 08:43, "IFo Hancroft" notifications@github.com wrote:

I may be mixing terms in here but if Steam is managed by the Window manager how would Steam still be looking the way it is, separate from the desktop theme currently in use?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/1040#issuecomment-286147216, or mute the thread https://github.com/notifications/unsubscribe-auth/ADj0N4FGGRc2EPO9BjRU-YejUsfjH1_Uks5rlWQPgaJpZM4AZKGN .

stevethepocket commented 7 years ago

That's still more than nothing, though. Even the MacOS version has a custom black titlebar, albeit a MacOS-themed one if I recall (though I haven't seen it since the redesign that squared off the corners on everything and added more blue, so who knows what's up lately). Stuffing every window inside a potentially-light-gray frame is probably a bigger sacrifice than Valve is willing to make.

Silent-Hunter commented 7 years ago

But on Linux, some window managers, especially tiling ones, treat steam oddly and sometimes very badly because it tries to force its own window borders. If they're going to have a Linux version, they need to allow the window manager to handle it properly.

On Mar 14, 2017 22:53, "stevethepocket" notifications@github.com wrote:

That's still more than nothing, though. Even the MacOS version has a custom black titlebar, albeit a MacOS-themed one if I recall (though I haven't seen it since the redesign that squared off the corners on everything and added more blue, so who knows what's up lately). Stuffing every window inside a potentially-light-gray frame is probably a bigger sacrifice than Valve is willing to make.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/1040#issuecomment-286647868, or mute the thread https://github.com/notifications/unsubscribe-auth/ADj0NxtkXx79hJveztSB1jQ3OU85PGb5ks5rl3zEgaJpZM4AZKGN .

stevethepocket commented 7 years ago

If there's no way to do that and still be allowed to determine their own visual design, then that's an issue with the window managers, not Valve. If Apple, of all companies—which is very picky about third party software following its UI guidelines—offers more freedom than Linux window managers in that department, then I believe we have a problem.

Silent-Hunter commented 7 years ago

In order for a tiling window manager to work the way the user wants it to, they have to be able to control the windows. The user should have the final say in this, NOT Valve. The user has chosen to use a tiling window manager and IMO it's insane to expect a program to violate the cohesive design of the desktop by introducing its own window borders, that will always clash with most desktop themes and styles.

It most certainly is a problem with Steam!

On Mar 14, 2017 23:10, "stevethepocket" notifications@github.com wrote:

If there's no way to do that and still be allowed to determine their own visual design, then that's an issue with the window managers, not Valve. If Apple, of all companies—which is very picky about third party software following its UI guidelines—offers more freedom than Linux window managers in that department, then I believe we have a problem.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/1040#issuecomment-286650151, or mute the thread https://github.com/notifications/unsubscribe-auth/ADj0NzGlo-stVnBOh7a0BkK1qVR0UD4Wks5rl4DKgaJpZM4AZKGN .

agrecascino commented 7 years ago

This wouldn't bug me if steam just decorated itself weird, but under windowmaker, you can't move/resize steam, which really sucks.

insunaa commented 7 years ago

It's barely acceptable in i3 on my 1080p Desktop, but it's pretty much unusable in bspwm on my Laptop, because neither accepts the other's resize commands properly, so when bspwm forcefully resizes steam, buttons and textboxes are occluded... if I give steam free reign, it simply draws its windows outside of the screen...

Steam is not kind to 1366x768 displays on Linux.

vardogor commented 7 years ago

4 years later... still the same. Step up your game, Valve.

zelurker commented 6 years ago

Thanks for the excellent workaround, dscharrer, works great ! :)

Plagman commented 6 years ago

The new client Beta should improve window manager interactions when re-sizing: http://steamcommunity.com/groups/SteamClientBeta#announcements/detail/1655505073049286411

DarkDefender commented 6 years ago

The beta fixes the resize problem for me. Good work @Plagman!

stevethepocket commented 6 years ago

New problem: Remember how it used to use the default X11 resize pointers instead of the window manager's? Now it uses none at all. When I mouse over an edge or corner, the pointer remains the standard big white arrow. Only when I hold down the mouse to drag it does it does it change (albeit into the correct Plasma resize pointer).

Using Kubuntu 17.10, Plasma 5.whatever.

kisak-valve commented 6 years ago

Hello @stevethepocket, you'll want to add your experience to #1831.

sinsinewave commented 6 years ago

This is needed in the client. I hate it when steam screws up my i3wm setup.

I doubt that Valve really cares about us though...

blastkrieg commented 6 years ago

Shame for valve, 2018 and still no adressing this. Not even a x64 client or native windows management, it's SO hugly seeing steam bar being diferent from the rest of the operating system. This company simply does not evolve, it's the same for almost 1 decade (same issue in windows, the bar is simply diferent from the rest of the system).

zelurker commented 6 years ago

Look in the thread for a workaround for linux, I am using it, it works well. For evolution, you'll notice the steam client is often updated, so they evolve, it's just not that obvious !

2018-07-27 18:00 GMT+02:00 blastkrieg notifications@github.com:

Shame for valve, 2018 and still no adressing this. Not even a x64 client or native windows management, it's SO hugly seeing steam bar being diferent from the rest of the operating system. This company simply does not evolve, it's the same for almost 1 decade (same issue in windows, the bar is simply diferent from the rest of the system).

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/1040#issuecomment-408463253, or mute the thread https://github.com/notifications/unsubscribe-auth/ACu5D2_-WJmiRv3YXa3Y_n-Sxn2rftQEks5uKzkhgaJpZM4AZKGN .

ls-1N commented 6 years ago

I have generally been tolerant of this aspect of the Steam client, but whenever i have to mess around with the big picture mode to do something which would take me less than 1 second with KDE Plasma for more than 5 minutes whilst my friends are waiting holding Steam controllers, i am upset.

I have had some issue with big picture mode resizing oddly and since it doesnt take any input from the window manager (other than minimize and restore), i have had to fiddle around with screen resolution and reboot and restart Steam and so forth. Maybe ill figure out something more next time it happens. Might be because my laptop resolution is lower than the TV im trying to use with it.

Sorry for an unprofessional rant.

ghost commented 6 years ago

+1 from me here. It is a bit ridiculous that this is still an issue. I'd like to know, is GNOME a supported desktop environment? If so, then this is still an issue! Because Steam does not respect my window management preferences in any way, shape or form. This causes issues beyond just aesthetics as well, as is mentioned plenty of times in many comments and separate reports! This isn't just a feature request, it's an actual fix to a broken piece of software... It would be really appreciated if this got some attention by now.