A dedicated desktop client for Gameyfin that wraps the web interface in a standalone application for a more integrated experience.
- 🖥️ Dedicated Desktop Application: Runs Gameyfin in its own window on both Windows and Linux, separate from your web browser.
- 🔑 Persistent SSO Login: Supports persistent logins with SSO providers. The application saves your session data, so you only have to log in once. (Note: This requires the "remember me" feature to be enabled in your SSO provider's settings.)
- ⚙️ System Tray Integration: Includes an icon in the system tray for quickly showing, hiding, or quitting the application.
- ⚙️ Integrated Settings: Configure your Gameyfin URL, window dimensions, and more directly within the app's Settings tab.
- 📥 Download Manager:
- Manages all file downloads in a persistent "Downloads" tab.
- Shows progress, speed, and a complete download history.
- 📦 ZIP Lifecycle Management:
- Two-Step Installation: Process is split into "Unzip" and "Install" phases for better control.
- Dynamic Buttons: The "Unzip" button transforms into "Install" once extraction is complete.
- Archive Cleanup: Dedicated "Remove ZIP" button (with confirmation) to easily delete large installers after extraction.
- Persistent Options: Buttons for opening and removing ZIPs are always visible and adapt their state based on file existence.
- 💽 Installer (Windows):
- Extracts the downloaded archive.
- Detects
.exefiles. If multiple are found, it asks you to choose which one to launch. - No complex configuration required.
- 💽 Installer (Linux):
- Prompts for per-install environment configuration (Wayland, MangoHud, GameID, Store, etc.).
- Extracts the downloaded archive to a customizable directory.
- Detects
.exefiles. If multiple are found, it asks you to choose which one to launch. - Automatically lookup the umu-id for proton fixes by codename, folder name or manual search entry.
- Automatically creates a wineprefix and launches the installer using
umu-run. - 🛠️ Wine Tools: Quick access to
winecfgandwinetricksfor manual prefix configuration during installation.
- 🍷 Prefix & Game Manager (Linux):
- Quick Launch: Launch any game shortcut script directly from the Prefix Manager via a select box.
- Post-Install Configuration: Edit wine prefix settings (environment variables, Wayland, MangoHud) after a game is installed.
- Shortcut Management: Re-sync or clean up system shortcuts (Desktop & Application Menu) at any time.
- Prefix Cleanup: Delete prefixes with a safety warning about saved game data.
⤴️ Integrated Shortcut Management (Linux):- When a game installation finishes, the app automatically detects any shortcuts created by the installer.
- You're in Control: A dialog pops up letting you choose exactly which shortcuts (e.g., "Game" "Settings," "Uninstall") you want to add.
- Dual-Location Selection: Choose exactly which shortcuts you want on your Desktop and which should go in your Application Menu via a redesigned management dialog.
- Just like Windows: This gives you the simple, familiar "Create a desktop shortcut?" experience.
- Auto-generated Helpers: Even if system shortcuts aren't created, helper scripts are always generated for the internal launch menu.
- Other ideas?: Create a new issue/merge request and I will look into it.
While the application can be configured using environment variables (see below), you can now manage most settings directly within the application's Settings tab. Settings saved in the app persist in a settings.json file.
| Environment Variable | Description |
|---|---|
GF_URL |
(Required) The URL of your Gameyfin instance, e.g., http://localhost:8080. |
GF_START_MINIMIZED |
Set to 1 to start the application minimized to the tray. |
GF_ICON_PATH |
The absolute file path to a custom tray icon. |
GF_WINDOW_WIDTH |
Window width. |
GF_WINDOW_HEIGHT |
Window height. |
GF_THEME |
The UI theme to use (e.g., dark_teal.xml, light_blue.xml). Set to auto for default. |
PROTONPATH |
(Linux Only) Path or name of the Proton version to use (default: GE-Proton). |
GF_UMU_API_URL |
(Linux Only) URL for the UMU API to search for game fixes. |
GF_DEFAULT_DOWNLOAD_DIR |
Default directory for downloaded files. |
GF_DEFAULT_UNZIP_DIR |
Default base directory for extracting ZIP archives. |
GF_PROMPT_UNZIP_DIR |
Set to 1 to always prompt for an extraction path when installing. |
Choose your platform below to get started.
Option 1: Executable (Recommended)
- Download the latest
Gameyfin-Desktop-vX.X.X.exefrom the Releases page. - Run the executable.
Option 2: Running from Source (Python)
- Install Python: Ensure you have Python installed.
- Install Dependencies:
py -m pip install -r requirements.txt
- Run the App:
py gameyfin_qt.py
Option 1: Flatpak (Recommended)
-
Dependencies: Ensure
umu-launcheris installed on your host system (required for the installer feature).# Arch sudo pacman -S umu-launcher # Fedora sudo dnf install umu-launcher
-
Install: Download the latest
Gameyfin-Desktop-vX.X.X.flatpakfrom the Releases page. Install it by running:flatpak install Gameyfin-Desktop-vX.X.X.flatpak
Or with Discover:
1. Remove the previous installed version if you are updating (settings will be kept) otherwise Discover will not be able to install the update. 2. Open the new flatpak with Discover 3. Install it. -
Run: Launch it from your application menu or run:
flatpak run org.gameyfin.Gameyfin-Desktop
Option 2: Running from Source (Python)
- Dependencies: Install Python, required libraries, and
umu-launcher.- Arch:
sudo pacman -Syu python-pyqt6 python-pyqt6-webengine python-dotenv python-requests python-qt-material umu-launcher
- Fedora:
sudo dnf install python3-pyqt6 python3-pyqt6-webengine python3-dotenv python3-requests python3-qt-material umu-launcher
- Pip (General):
pip install -r requirements.txt
- Arch:
- Run the App:
python gameyfin_qt.py &
The application saves all data (settings, download history, cookies, local storage, and cache) to your system's standard application data directory. This allows your login session and configuration to persist between launches.
- Linux:
~/.local/share/Gameyfin/Gameyfin/ - Windows:
%APPDATA%\Gameyfin\Gameyfin\
The download progress bar provides an estimation. The total size is calculated based on the uncompressed files within the archive, not the size of the .zip file being downloaded. See this issue for more details.
Build with the help from Gemini. If you see something that could be better or looks weird, please let me know!





