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.
- ⚡ Streaming Download & Extraction:
- Downloads and extracts ZIP archives simultaneously using
stream-unzip— no intermediate ZIP file is ever saved to disk. - Saves disk space and skips the separate unzip step entirely.
- Once the download completes, the Install button appears immediately.
- Downloads and extracts ZIP archives simultaneously using
- 💽 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
winecfg,winetricks, andregeditfor 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, WOW64) 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 where game archives are extracted (defaults to ~/Downloads). |
GF_PROMPT_DOWNLOAD_DIR |
Set to 1 to always prompt for a download directory when a download starts. |
GF_DOWNLOAD_NOTIFICATIONS |
Show desktop notifications on download/install completion (default: enabled). |
GF_LOG_LEVEL |
Logging level (DEBUG, INFO, WARNING, ERROR). Defaults to WARNING. |
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: None required! The Flatpak build now includes the
umu-launcherand all necessary dependencies. - Install: Download the latest
Gameyfin-Desktop-vX.X.X.flatpakfrom the Releases page.
Note for SteamOS/Bazzite users: You will need to use desktop mode to install games and add shortcuts to Steam to run them in Big Picture mode. Install it by running:
flatpak install Gameyfin-Desktop-vX.X.X.flatpakOr 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.- stream-unzip is currently not available in the arch/fedora repo's, you will need to install it with pip with the --break-system-packages flag
- Arch:
sudo pacman -Syu python-pyqt6 python-pyqt6-webengine python-dotenv python-requests python-qt-material umu-launcher pip install --user --break-system-packages stream-unzip
- Fedora:
sudo dnf install python3-pyqt6 python3-pyqt6-webengine python3-dotenv python3-requests python3-qt-material umu-launcher pip install --user --break-system-packages stream-unzip
- Pip (General):
pip install -r requirements.txt
- 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 is based on the total size reported by the Gameyfin server. Since the server does not always send a Content-Length header, the size shown is estimated from the download button label in the UI. See this issue for more details.
Build with the help from Gemini,Claude,Gemma4. If you see something that could be better or looks weird, please let me know!





