Fixed multiple clients bug in umu.

This commit is contained in:
2026-09-01 20:05:54 +02:00
parent 78dade0d86
commit f96aba9d99
2 changed files with 9 additions and 0 deletions

View File

@@ -819,6 +819,7 @@ def _play_locked(
runner, runner,
start_option=start_option, start_option=start_option,
use_gamebox=not no_box, use_gamebox=not no_box,
concurrent_prefix_launch=reuse_prepared,
) )
except KeyboardInterrupt: except KeyboardInterrupt:
current_game_log = _current_game_log( current_game_log = _current_game_log(

View File

@@ -380,6 +380,7 @@ def run_game(
*, *,
start_option: DepotStartOption = DEFAULT_DEPOT_START_OPTION, start_option: DepotStartOption = DEFAULT_DEPOT_START_OPTION,
use_gamebox: bool = True, use_gamebox: bool = True,
concurrent_prefix_launch: bool = False,
timeout_seconds: float = 12 * 60 * 60, timeout_seconds: float = 12 * 60 * 60,
check: bool = True, check: bool = True,
extra_environment: Mapping[str, str] | None = None, extra_environment: Mapping[str, str] | None = None,
@@ -428,6 +429,13 @@ def run_game(
selection, selection,
synchronization=resolve_proton_sync_mode(settings.proton_sync), synchronization=resolve_proton_sync_mode(settings.proton_sync),
) )
if selection.kind in {"umu", "proton7-container"}:
# Keep every UMU launch identical except for the verb, as required when
# several games share one prefix. The first client owns prefix startup;
# every later shared-lease client joins the active wineserver directly.
environment["PROTON_VERB"] = (
"runinprefix" if concurrent_prefix_launch else "waitforexitandrun"
)
if use_gamebox: if use_gamebox:
game_command = build_gamebox_command(game_command, settings) game_command = build_gamebox_command(game_command, settings)
if extra_environment: if extra_environment: