From 06c396fd27f55929b40161e587cb9b596b549f3f Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Fri, 17 Apr 2026 00:53:20 -0500 Subject: Symlink saves, rank prefixes by Steam app type, ntsync safeguards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace copy-in/copy-out save deployment with a direct symlink from the prefix's __MO_Saves to the profile's saves/. Writes land in the profile immediately; afterRun reverts the symlink + prefix INI so a vanilla launch outside MO2 uses the default Saves dir. - Parse Steam's binary appinfo.vdf (v41) via a new Rust FFI crate backed by steam-vdf-parser. Rank detected games by common.type so real Games beat Tools/Editors when multiple prefixes share a My Games folder name (fixes Creation Kit shadowing Skyrim SE). Top-ranked candidate overwrites stale symlinks from earlier runs. - Switch bundled Steam Linux Runtime downloader from sniper (steamrt3) to steamrt4 so Proton 11+ works out of the box. steamrt4 omits xrandr so we inject it from the Debian x11-xserver-utils .deb into a dedicated dir and prepend it to PATH via `env PATH=...` inside the pressure-vessel container (PATH env doesn't propagate). - Auto-kill stale wineboot/wineserver/pv-adverb processes still bound to the prefix before starting a new wineboot -u; match by /proc//environ WINEPREFIX / STEAM_COMPAT_DATA_PATH since Wine cmdlines are Windows-style. Same sweep runs in destroyPrefix so a delete actually frees file handles. - Blacklist Proton 11 (Steam-bundled) — its current Wine tree deadlocks during wineboot -u on modern kernels via ntsync / futex_wait_multiple races. Use "waitforexitandrun" (not "run") for prefix init so use_sessions=1 Protons don't fork into a persistent session manager. - Drop WINEDEBUG=-all during prefix init so wineboot progress is visible. Suppress focus-stealing by setting WA_ShowWithoutActivating on the PrefixSetupDialog and SLR download progress dialogs. Co-Authored-By: Claude Opus 4.7 (1M context) --- libs/steam_appinfo_ffi/Cargo.toml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 libs/steam_appinfo_ffi/Cargo.toml (limited to 'libs/steam_appinfo_ffi/Cargo.toml') diff --git a/libs/steam_appinfo_ffi/Cargo.toml b/libs/steam_appinfo_ffi/Cargo.toml new file mode 100644 index 0000000..f97f9db --- /dev/null +++ b/libs/steam_appinfo_ffi/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "mo2_steam_appinfo_ffi" +version = "0.1.0" +edition = "2021" + +[lib] +name = "steam_appinfo_ffi" +crate-type = ["cdylib"] + +[dependencies] +steam-vdf-parser = { path = "vendor/steam-vdf-parser" } -- cgit v1.3.1