From 817524ce9e1146cfad05b7a2e7d41495bcde537b Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Tue, 28 Apr 2026 19:32:06 -0500 Subject: ProtonLauncher: empty UMU_ID to suppress GE-Proton X:=$HOME mount MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Setting UMU_ID="fluorine" triggered protonfixes' setup_mount_drives (GE-Proton/utilities.py), which mounts X:=$HOME, U:=/media, V:=/run/media, W:=/mnt every launch — undoing pruneExtraDrives. Wine's find_drive_nt_root walks the path innermost-out and picks the first matching drive, so X:=$HOME wins over Z:=/ for any path under home, producing X:\games\... launches. Empty UMU_ID: - protonfixes utilities.py:38 `os.environ.get('UMU_ID','')` -> '' falsy -> setup_mount_drives early-exits, no X/U/V/W created - proton:1590 same falsy check -> 'gamedrive' not added to compat_config -> setup_game_dir_drive's setup_dir_drive takes the elif branch and actively removes any stale s: symlink - proton:2340 `"UMU_ID" in os.environ` is still True for "" -> still skips the c:\Program Files (x86)\Steam\steam.exe bridge for non-Steam executables (the original reason we set UMU_ID) Verified against installed Proton-GE proton script + utilities.py and GloriousEggroll's confirmation in umu-launcher#634. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/src/protonlauncher.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/src/protonlauncher.cpp b/src/src/protonlauncher.cpp index 8aecd47..d9b371a 100644 --- a/src/src/protonlauncher.cpp +++ b/src/src/protonlauncher.cpp @@ -668,8 +668,16 @@ bool ProtonLauncher::launchWithProton(qint64& pid) const // Proton-GE skips the built-in steam.exe bridge. Without this, Proton // tries to initialise the Steam client which causes an assertion failure // for non-Steam executables. + // + // Use an EMPTY value, not "fluorine". Proton's check is `"UMU_ID" in + // os.environ` (key presence) which is True for "" — so the steam.exe + // bridge is still skipped. But protonfixes' setup_mount_drives keys on + // `os.environ.get('UMU_ID', '')` truthiness; with a non-empty value it + // mounts X:=$HOME, U:=/media, V:=/run/media, W:=/mnt and Wine then + // canonicalises game paths under X:\... instead of Z:\home\user\.... + // Empty UMU_ID skips the mount block while preserving the bridge skip. if (!m_useSteamDrm) { - env.insert("UMU_ID", "fluorine"); + env.insert("UMU_ID", ""); } env.insert("DOTNET_ROOT", ""); -- cgit v1.3.1