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, 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.
- 📥 Download Manager:
- Manages all file downloads in a persistent "Downloads" tab.
- Shows progress, speed, and a complete download history.
- 💽 Installer (Linux):
- Prompts for per-install environment configuration (Wayland, GameID, Store, etc.).
- Extracts the archive to its own folder.
- 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.
⤴️ 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: Your selected shortcuts are placed on your Desktop and in your system's Application Menu.
- Just like Windows: This gives you the simple, familiar "Create a desktop shortcut?" experience.
- Protonfixes and Winecfg button: To manually configure your Wineprefix if needed.
- Windows support
- Other ideas?: Create a new issue/merge request and I will look into it.
Python Packages:
- Python
- PyQt6
- PyQt6-WebEngine
- dotenv
- requests
You can install the required packages using one of the methods below.
pip install -r requirements.txtpacman -Syu python-pyqt6 python-pyqt6-webengine python-dotenv python-requestsExternal Dependencies (for Installer):
umu-launcher: The installer feature on Linux requiresumu-launcherto be installed.
pacman -Syu umu-launcherThe application is configured using environment variables. You can either pass them directly via the command line or create a .env file in the same directory as the script (see .env.example).
| Environment Variable | Description |
|---|---|
GF_URL |
(Required) The URL of your Gameyfin instance, e.g., http://localhost:8080. |
GF_SSO_PROVIDER_HOST |
The host of your SSO provider, e.g., sso.host.com. Required if using SSO. |
GF_START_MINIMIZED |
Set to 1 to start the application minimized to the tray. Useful for autostarting on boot. |
GF_ICON_PATH |
The absolute file path to a custom tray icon, e.g., /path/to/icon.png. |
GF_WINDOW_WIDTH |
Window width. |
GF_WINDOW_HEIGHT |
Window height. |
-
Basic command:
GF_URL=http://192.168.1.100:8080 python gameyfin_qt.py & -
With SSO enabled:
GF_URL=http://192.168.1.100:8080 GF_SSO_PROVIDER_HOST=sso.host.com python gameyfin_qt.py & -
Using a
.envfile (Recommended): Create a.envfile in the root directory and add your variables there. Then, simply run:python gameyfin_qt.py &
The application saves all browser data (cookies, local storage, cache, etc.) to a profile stored in a .gameyfin-app-data folder within the application's directory. This allows your login session to persist between launches. To clear your session and all stored data, simply delete this folder.
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.
Currently only tested with GOG games, but should work with any installer.





