protonscr

[beta] Misfeature: launch options window goes full-screen, hides itself away if input focus is lost

steamclosed Steam clientWindow managerDistro Family: Debian
ValveSoftware/steam-for-linux#9536 · opened 2023-05-29 by dsalt · updated 2023-05-31 · 2 comments · github
Ddsalt 2023-05-29 github
  • Steam client build no.: 1685072487
  • Steam client configuration: large mode
  • Distribution: Devuan testing (daedalus)
  • Desktop: Xfce 4.18

I decided to launch Titan Quest: Anniversary Edition. This game provides 6 launch options (in the normal way via the Steam client).

I was… somewhat surprised… to see that the launch options window was full-screen and also that it hides itself away if it loses input focus (e.g. if I move the pointer to a window on the other monitor).

If I use xfwm4's full-screen toggle, I see the window at its correct size (and with a scroll bar for the launch options list) – but the hiding-away behaviour remains.

I checked with another game (No Man's Sky, which provides two options), and Steam left the launch window as it should be, inoffensively in the middle of the screen and remaining open on focus loss.

While it may be intended, this behaviour with Titan Quest is not expected behaviour. It has no business being full-screen. There is no reason to hide it away just because something else got the input focus. I consider it broken, unhelpful, in my face, wrong.

Ddsalt 2023-05-29 github

I've now configured which launch option to use via the properties window so that I don't have to see that full-screen annoyance again (unless I decide to check after an update).

Ddsalt 2023-05-29 github

Turns out that the problem is a pair of devilspie2 rules, written a few years ago, intended for the game.

Specifically, this in ~/.config/devilspie2/focus.lua:

os = require "os"

win_class = get_window_class()
win_role = get_window_role()
win_name = get_window_name()
app_name = get_application_name()

if win_name == "Titan Quest Anniversary Edition" then
  set_window_fullscreen(true)
end

and similarly in ~/.config/devilspie2/blur.lua:

os = require "os"

win_class = get_window_class()
win_role = get_window_role()
win_name = get_window_name()
app_name = get_application_name()

if win_name == "Titan Quest Anniversary Edition" then
  minimize()
end

Adding a check app_name ~= "steam" is sufficient to fix this.

It's (sort of) Steam's fault in that the beta uses the game title for the launcher window, whereas the stable release doesn't.

Nothing extracted yet.