steam-for-linux
steam-for-linux copied to clipboard
Steam client sets WM_NAME as UTF-8 string instead of using _NET_WM_NAME
As the title says, the steam client seems to be setting WM_NAME as an UTF-8 string instead of using _NET_WM_NAME for this purpose as defined by the standard
% xprop
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
WM_NAME(UTF8_STRING) = "Steam"
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
_NET_WM_ICON(CARDINAL) = Icon (48 x 48):
_WIN_HINTS(_WIN_HINTS) = 0x0
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0
WM_CLASS(STRING) = "Steam", "Steam"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
user specified location: 1920, 22
user specified size: 1549 by 1057
http://standards.freedesktop.org/wm-spec/1.3/ar01s05.html
I'll add that this causes all Steam windows to be titled "Untitled" in Compiz. I believe either changing the WM_NAME type to a STRING or setting the _NET_WM_NAME property as an UTF8_STRING would solve this problem.
This is a very old issue, see #25 I'm still waiting for this to be fixed :stuck_out_tongue:
EDIT: Ha! Just looked at the dates. Didn't even realize that the two issues had been reported about the same problem. Anyway, it does seem to be a Steam issue.
Just encountered this problem when trying Steam on Ubuntu today with tint2. Looks like I'm not the only one with the same issue :smile:
This is still an issue even now in 2022. This prevents window managers and compositors and other utilities that can key customized behaviors off of properly named or titled windows from functioning properly with steam. Not to mention, by having chat windows have unique names based on what chats are open it is exceedingly hard to reliably identify the chat window.
This is what is set by steam, which is incorrect: WM_NAME(UTF8_STRING)
These are the variables steam needs to set with the correctly formatted strings
_NET_WM_ICON_NAME(UTF8_STRING)
_NET_WM_NAME(UTF8_STRING)
WM_ICON_NAME(STRING)
WM_NAME(STRING)
And this is the bare minimum..
_NET_WM_ICON_NAME(UTF8_STRING)
_NET_WM_NAME(UTF8_STRING)
It is possible to set these after the fact using tools like wmctrl
by manually clicking each window with the mouse after having typed each separate window title. This is highly aggrivating each time i launch steam.
I was wondering whether WM_NAME(UTF8_STRING)
was standard because it does seem to work with some programs, but it's not mentioned in any version of the ICCCM or EWMH standard paper. Turns out, as usual Valve takes one for the team with one of the worst implemented X11 applications and documents what happens. How shameful that this is about to hit 10 years too, this is a one line fix to the atom type of ChangeProperty. Come on guys.