From 8a10147bbb1fe6589c4205bcfd26d6d696512ced Mon Sep 17 00:00:00 2001 From: SulfurNitride Date: Wed, 11 Feb 2026 19:04:11 -0600 Subject: 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 --- libs/basic_games/epic_utils.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'libs/basic_games/epic_utils.py') diff --git a/libs/basic_games/epic_utils.py b/libs/basic_games/epic_utils.py index 94ae6a9..afdccd5 100644 --- a/libs/basic_games/epic_utils.py +++ b/libs/basic_games/epic_utils.py @@ -87,6 +87,21 @@ def find_legendary_games( def find_heroic_games(errors: ErrorList | None = None): + # Linux: Heroic stores config in ~/.config/heroic/ (or Flatpak equivalent). + for candidate in ( + Path.home() / ".config" / "heroic" / "legendaryConfig", + Path.home() + / ".var" + / "app" + / "com.heroicgameslauncher.hgl" + / "config" + / "heroic" + / "legendaryConfig", + ): + if candidate.is_dir(): + return find_legendary_games(str(candidate), errors) + + # Windows fallback. return find_legendary_games( os.path.expandvars(r"%AppData%\heroic\legendaryConfig"), errors ) -- cgit v1.3.1