diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f65709..5d8e478 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Jackify Changelog +## v0.1.6.4 - Flatpak Steam Detection Hotfix +**Release Date:** October 24, 2025 + +### Critical Bug Fixes +- **FIXED: Flatpak Steam Detection**: Added support for `/data/Steam/` directory structure used by some Flatpak Steam installations +- **IMPROVED: Steam Path Detection**: Now checks all known Flatpak Steam directory structures for maximum compatibility + +--- + ## v0.1.6.3 - Emergency Hotfix **Release Date:** October 23, 2025 diff --git a/jackify/__init__.py b/jackify/__init__.py index 17afcea..23eb453 100644 --- a/jackify/__init__.py +++ b/jackify/__init__.py @@ -5,4 +5,4 @@ This package provides both CLI and GUI interfaces for managing Wabbajack modlists natively on Linux systems. """ -__version__ = "0.1.6.3" +__version__ = "0.1.6.4" diff --git a/jackify/backend/handlers/shortcut_handler.py b/jackify/backend/handlers/shortcut_handler.py index 370e2c8..d0262fc 100644 --- a/jackify/backend/handlers/shortcut_handler.py +++ b/jackify/backend/handlers/shortcut_handler.py @@ -1036,7 +1036,7 @@ class ShortcutHandler: matched_shortcuts = [] if not self.shortcuts_path or not os.path.isfile(self.shortcuts_path): - self.logger.error(f"shortcuts.vdf path not found or invalid: {self.shortcuts_path}") + self.logger.info(f"No shortcuts.vdf file found at {self.shortcuts_path} - this is normal for new Steam installations") return [] # Directly process the single shortcuts.vdf file found during init @@ -1159,7 +1159,7 @@ class ShortcutHandler: # --- Use the single shortcuts.vdf path found during init --- if not self.shortcuts_path or not os.path.isfile(self.shortcuts_path): - self.logger.error(f"shortcuts.vdf path not found or invalid: {self.shortcuts_path}") + self.logger.info(f"No shortcuts.vdf file found at {self.shortcuts_path} - this is normal for new Steam installations") return [] vdf_path = self.shortcuts_path diff --git a/jackify/backend/services/native_steam_service.py b/jackify/backend/services/native_steam_service.py index 4c2f0c9..65cd084 100644 --- a/jackify/backend/services/native_steam_service.py +++ b/jackify/backend/services/native_steam_service.py @@ -33,7 +33,9 @@ class NativeSteamService: self.steam_paths = [ Path.home() / ".steam" / "steam", Path.home() / ".local" / "share" / "Steam", - Path.home() / ".var" / "app" / "com.valvesoftware.Steam" / ".local" / "share" / "Steam" + Path.home() / ".var" / "app" / "com.valvesoftware.Steam" / "data" / "Steam", + Path.home() / ".var" / "app" / "com.valvesoftware.Steam" / ".local" / "share" / "Steam", + Path.home() / ".var" / "app" / "com.valvesoftware.Steam" / "home" / ".local" / "share" / "Steam" ] self.steam_path = None self.userdata_path = None @@ -54,8 +56,20 @@ class NativeSteamService: # Step 2: Parse loginusers.vdf to get the most recent user (SteamID64) steamid64 = self._get_most_recent_user_from_loginusers() if not steamid64: - logger.error("Could not determine most recent Steam user from loginusers.vdf") - return False + logger.warning("Could not determine most recent Steam user from loginusers.vdf, trying fallback method") + # Fallback: Look for existing user directories in userdata + steamid3 = self._find_user_from_userdata_directory() + if steamid3: + logger.info(f"Found Steam user using userdata directory fallback: SteamID3={steamid3}") + # Skip the conversion step since we already have SteamID3 + self.user_id = str(steamid3) + self.user_config_path = self.userdata_path / str(steamid3) / "config" + logger.info(f"Steam user set up via fallback: {self.user_id}") + logger.info(f"User config path: {self.user_config_path}") + return True + else: + logger.error("Could not determine Steam user using any method") + return False # Step 3: Convert SteamID64 to SteamID3 (userdata directory format) steamid3 = self._convert_steamid64_to_steamid3(steamid64)