diff options
| author | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-11 19:04:11 -0600 |
|---|---|---|
| committer | SulfurNitride <SulfurNitride@users.noreply.github.com> | 2026-02-11 19:04:11 -0600 |
| commit | 8a10147bbb1fe6589c4205bcfd26d6d696512ced (patch) | |
| tree | 66fe7403114e2d63fa48ceee14352bee4dbddae0 /libs/basic_games/steam_utils.py | |
| parent | a03455028d8b79a1196bffc2f80c2455c41db065 (diff) | |
Add Root Builder plugin, Linux game detection, and OMOD installer fix
- New native Root Builder plugin (src/plugins/rootbuilder.py) with copy
and symlink deploy modes, auto-deploy hooks, backup/restore, and
third-party conflict detection that moves incompatible plugins to
DisabledPlugins/. In link mode, .exe/.dll are always copied to avoid
Wine/Proton path resolution issues with symlinked executables.
- Fix basic_games detection on Linux: steam_utils now checks native
Steam paths (~/.local/share/Steam, Flatpak, Snap), epic_utils uses
correct Linux Heroic config paths, gog_utils falls back to Heroic
GOG installed.json when Windows registry is unavailable.
- Fix OMOD installer crash: isArchiveSupported now handles both IFileTree
(from mod list refresh) and string (from install check) arguments.
- Add flatpak manifest step to copy source-tree Python plugins
(src/plugins/*.py) into the build output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'libs/basic_games/steam_utils.py')
| -rw-r--r-- | libs/basic_games/steam_utils.py | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/libs/basic_games/steam_utils.py b/libs/basic_games/steam_utils.py index d1d4a06..a3daeaf 100644 --- a/libs/basic_games/steam_utils.py +++ b/libs/basic_games/steam_utils.py @@ -148,7 +148,28 @@ def find_steam_path() -> Path | None: value = winreg.QueryValueEx(key, "SteamExe") return Path(value[0].replace("/", "\\")).parent except FileNotFoundError: - return None + pass + + # Linux: check common Steam install locations. + for candidate in ( + Path.home() / ".local" / "share" / "Steam", + Path.home() / ".steam" / "steam", + Path.home() + / ".var" + / "app" + / "com.valvesoftware.Steam" + / ".local" + / "share" + / "Steam", + Path.home() / "snap" / "steam" / "common" / ".local" / "share" / "Steam", + ): + if ( + candidate.is_dir() + and candidate.joinpath("steamapps", "libraryfolders.vdf").exists() + ): + return candidate + + return None def find_games() -> dict[str, Path]: |
