Repository navigation
steamcompmgr: inherit the appID from windows sharing a steam_app_ class - #2485
Open
matte-schwartz wants to merge 1 commit into
Open
matte-schwartz wants to merge 1 commit into
matte-schwartz wants to merge 1 commit into
Conversation
matte-schwartz
force-pushed
the
focus-inherit-appid-wm-class
branch
2 times, most recently
from
October 20, 2026 19:52
e84db0e to
61dbb14
Compare
Under Steam focus control a window is only eligible once it has an appID, from STEAM_GAME or from its process' cgroup or reaper. Games spawned through the Flatpak portal escape Steam's pid tracking, so umu stamps STEAM_GAME on Wine windows as they are created. Most of those are helpers that never map, and gamescope only reads STEAM_GAME at map, so the stamps are lost. A game window the stamping missed stays ineligible and the launcher keeps focus. Proton classes every window it creates steam_app_<SteamAppId>, and current Steam sets that id to the reaper's appID, shortcuts included. A window without an appID now inherits one from a window of the same class, and windows are watched for STEAM_GAME and WM_CLASS from creation until they first map. The class is assumed unique per running game. An inherited window behaves as if Steam had stamped it, so it also keys PerAppId virtual connectors and a launcher and its game share one. Closes: ValveSoftware#1341
matte-schwartz
force-pushed
the
focus-inherit-appid-wm-class
branch
from
October 20, 2026 19:53
61dbb14 to
389d067
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Under Steam focus control a window without STEAM_GAME is never eligible. Games spawned through the Flatpak portal escape Steam's pid tracking, and launcher-side stamping can miss a window that maps right after its process spawns. A launcher's windows then carry the stamp while the game's do not, and the launcher keeps focus.
Proton classes every window it creates steam_app_. That id is not the appID Steam stamps for non-Steam titles, so the class only serves as a key, and it is assumed unique per running game. An inherited window behaves as if Steam had stamped it, so it also keys PerAppId virtual connectors and a launcher and its game share one.
Closes: #1341