PySide6 desktop app for organising large Windows game libraries represented by shortcuts. It tracks sources, versions, archives, and health, while keeping a fast, dense grid for everyday browsing — now with sharper icons and clearer scan summaries.
- Library grid: Comfortable/Compact densities, responsive card scaling, quick pills (All / Missing / Updates / Source), tag chips to filter, sorting by Title / Last Played / Rating / Launch Count / Last Checked, focus mode to hide Details.
- Metadata editing: Status, 1–10 rating, tags, notes, source URL, installed version, archive folder + compressed archive paths (pick/open), launch stats, and backup target info per game.
- Scanning: Reads the top level of a shortcuts root for
.lnk / .url / .html, resolves targets, and merges into the library while preserving user edits. Detects duplicate shortcut sets (Game.lnk, Game (1).lnk, …) and can quarantine extras before import. Shows a scan summary (new/updated/icons refreshed) and keeps the progress dialog responsive. - Icons: High-quality pipeline pulls the best available source (shortcut → resolved target → archive) at 1024px and downscales once, so cards stay sharp even after resizing; scanning primes icons for newly touched games.
- Launching: Opens the stored shortcut; falls back to resolved target/args/working dir; updates launch count and last played.
- Collections: Manual lists plus smart collections (presets: Low confidence, HTML only, Backlog, Unplayed). Sidebar shows live counts; create/rename/delete; add selected game with one click.
- Update tracking: Background fetch + parse with retries/cache (6h TTL); f95zone-specific parser; Updates view shows Update / Up-to-date / Unknown / Newer local; optional “Open sources only” mode; mark installed from source; bulk source URL import with fuzzy matching and optional overwrite.
- Health checks: Flags missing shortcuts/targets/source URLs/archive folders/files/game folders and version mismatches; quick Fix/Open/Remove actions; per-issue resolve/ignore; density + severity filters; hinting focuses the right Details field.
- Appearance & UX: Theme system (dark, light, neubrutalism, neumorphism, glassmorphism), font family + scale, responsive typography buckets, details toggle with size guard, splitter persistence, focus mode, guarded top-level windows (debug).
- Storage & logging: Library/settings in
%APPDATA%/GameLibraryManager(library.json,settings.json). Rotatingmanager.logwith fallbacks and a one-time toast when the log path falls back.
pip install -r requirements.txtpython src/main.py- Click Scan and choose your shortcuts root (top-level only). Duplicate shortcut groups can be quarantined automatically if you accept the prompt.
- Select a game, set Source URL, and optionally archive paths/installed version in Details.
- Press Check Updates (dropdown has “Open sources only”). Results land in Updates; mark installed from source if desired.
- Open Health Checks to fix or ignore flagged items.
- Source run:
python src/main.py(ensuresrcis onPYTHONPATH; Windows required for.lnkresolution). - Requirements: see
requirements.txt(PySide6, pywin32, lxml). - Packaging: see
packaging.mdfor the PyInstaller command that bundles the external scanner.
Tools > Scanner launches the included external/scanner/GameShortcutMaker project without blocking the UI. It can generate the shortcut root that this manager consumes.
- Only the top level of the shortcuts root is scanned.
- Generic HTML parsing may miss versions on heavily customised pages; status falls back to UNKNOWN rather than guessing.
- Tests are lightweight scripts (
src/tests) rather than a full runner.