protonscr

Some games don't launch with focus in Big Picture and i3

steamopen Big Picture3rd party gameWindow manager
ValveSoftware/steam-for-linux#7496 · opened 2020-11-30 by jjbarr · updated 2022-09-25 · 6 comments · github
Jjjbarr 2020-11-30 github

Your system information

  • Steam client version (build number or date): Oct 28, 2020
  • Distribution (e.g. Ubuntu): Arch Linux
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

When you launch a game in Big Picture, the game should appear on your screen and... y'know. Work. With at least some games, Big Picture will run the game, but will not release the screen and cede control the the game, so it is impossible to play the game until after BPM has exited. This is confirmed in Shovel Knight and Lethal League Blaze, and is likely an issue with other games as well.

Steps for reproducing this issue:

  1. Open Big Picture
  2. Launch an affected game
  3. The game will appear as running, you will not be able to play it.
Kkisak-valve maintainer 2020-11-30 github

Hello @jjbarr, this sounds like #3206. Are you using a window manager and if you are, is an aggressive focus stealing prevention setting enabled in the window manager's options?

Jjjbarr 2020-11-30 github

Great question, which I absolutely should have answered!

I'm running with i3, which is a WM, albeit a very minimal one.

Kkisak-valve maintainer 2020-11-30 github

Related: #5299

Jjjbarr 2020-11-30 github

Right. Apologies for not noticing the prior report.

Ccprn 2022-09-24 github

There's no issue if Big Picture is in windowed mode, i.e. the game starts correctly if you use a key binding to switch it from full-screen to floating. It could be set on window instantiation automatically by i3wm but right now the only difference between big-picture and not-big-picture Steam window is a custom property STEAM_BIGPICTURE(CARDINAL) = 1. This property can't be addressed in i3wm config so we can't have separate settings for Big Picture and other Steam windows. If instead of:

WM_CLASS(STRING) = "steam", "steam"

the Big Picture window was spawned with a specific instance name, something like:

WM_CLASS(STRING) = "steam", "SteamBigPicture"

the i3wm config could contain a line like:

for_window [instance="SteamBigPicture"] floating enable, resize set 3840 2160, move position 0 0

This would always render Big Picture in a border less full-screen 4k window even with "Start Big Picture mode Windowed" enabled and games using "real" full-screen wouldn't have any issue getting the focus.

Ccprn 2022-09-24 github

Found a workaround! It would be less "hacky" if Big Picture mode window had a distinct instance name but I just realized the "normal" Steam windows (main and chat) actually have the class and instance set to "Steam" (upper case first letter) and Big Picture mode has both, class and instance, set to "steam" (all lower case). So the solution for i3wm is to add the following line in ~/.i3/config (change your resolution accordingly, , below is 4K):

for_window [instance="steam"] floating enable, resize set 3840 2160, move position 0 0

and then in Steam Big Picture mode Settings > Display > Interface set the Start Big Picture mode Windowed to ON.

It is also a workaround for #8280 - the issue of BPM "loosing full-screen" when exiting game.

Nothing extracted yet.