-
Notifications
You must be signed in to change notification settings - Fork 84
Frequently asked questions (FAQ)
By default, umu-launcher sets the Proton verb waitforexitandrun when launching games, which will cause the current process to wait until an active wineserver process has exited. To run more than one game in the same prefix, you must disable this behavior for subsequent games by setting either PROTON_VERB=runinprefix or PROTON_VERB=run.
Also, it's important that the Proton or wine configuration for each nth game is equivalent except for the PROTON_VERB environment variable. Otherwise, unexpected behavior may occur. For example:
GAMEID=0 umu-run foo
GAMEID=0 PROTON_VERB=runinprefix umu-run foo
However, launching the second game with fsync disabled would be invalid:
GAMEID=0 umu-run foo
GAMEID=0 PROTON_VERB=runinprefix PROTON_NO_FSYNC=1 umu-run foo
To use a Proton build installed in a system path, explicitly set the path in PROTONPATH. For example:
GAMEID=0 PROTONPATH=/usr/share/steam/compatibilitytools.d/proton-ge-custom-bin umu-run foo
umu-launcher only searches $HOME/.local/share/Steam/compatibilitytools.d for UMU-Proton or GE-Proton builds when configured to use the latest Proton build. See the documentation for an example on how to do this.
Proton is compiled and is designed to execute in a runtime environment, and the reason umu-launcher does not search system paths is because compatibility tools there may not all be compiled against the Steam Linux Runtime. Since the goal of this project is for users to run their games through Proton just as it were launched from Steam, using Proton builds that were compiled outside the SLR would be against the project's goals.
By default, pressure-vessel exposes the entirety of the user's home directory and environment variables defined in the compatibility tools interface, while only a subset of the host's filesystem paths to its container.
To make more files available to the Steam Runtime container, set STEAM_COMPAT_LIBRARY_PATHS with a value or colon-delimited values of absolute filesystem paths.
GAMEID=0 STEAM_COMPAT_LIBRARY_PATHS="/foo:/bar" umu-run baz
Alternatively, setting eitherPRESSURE_VESSEL_FILESYSTEMS_RO or PRESSURE_VESSEL_FILESYSTEMS_RW are also valid.
Currently, to launch your game in Steam mode, umu-launcher depends on the Proton verb waitforexitandrun and at least one of Steam's shader cache environment variables to be set in the environment, namely: STEAM_COMPAT_TRANSCODED_MEDIA_PATH, STEAM_COMPAT_MEDIA_PATH, STEAM_FOSSILIZE_DUMP_PATH, and DXVK_STATE_CACHE_PATH. If neither conditions are met, umu-launcher will not be able to show the game window and you will continue to see a window with Steam's spinner.
The problem of not being able to see the game's window is currently an upstream issue in gamescope that only affects Flatpak applications in Steam mode as one can find that this issue will not exist when launching the game from the desktop environment instead. The exact cause is still not clear as it involves Flatpak, gamescope, Steam, and pressure-vessel. Nonetheless, the umu-launcher fix for this is to bring the window to the foreground just as Steam or gamescope would for Steam games. It does this by acquiring the non-Steam game's (e.g., Lutris, Heroic Games Launcher, etc.) app ID then changing the values of the relevant gamescope X11 atoms to what they should be.
Until this issue is properly addressed upstream or when clients do not depend on Steam for overlays and controller support, the aforementioned conditions will be requirements for bringing the game window to the foreground.