# ProtonUp-Qt: a GUI for installing GE-Proton, Wine-GE and other Linux gaming compatibility tools

> ProtonUp-Qt is a Python/Qt 6 graphical interface for installing and managing GE-Proton, Luxtorpeda and Wine-GE on Linux, covering both Steam and Lutris. It distributes as a Flatpak, an AppImage and an AUR package, and the last push was on 2026-10-03.

**DavidoTek/ProtonUp-Qt** — Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.

- Repository: https://github.com/DavidoTek/ProtonUp-Qt
- Website: https://davidotek.github.io/protonup-qt
- Stars: 2,057 · Forks: 79
- Language: Python
- License: GPL-3.0
- Published: 2026-10-11 · Updated: 2026-10-11 · Language: en
- Canonical page: https://hysenlabs.com/projects/davidotek-protonup-qt

## Managing GE-Proton and Wine-GE without tracking GitHub release pages manually

Linux gaming with Steam and Lutris often involves keeping compatibility layers current. GE-Proton, Wine-GE and Luxtorpeda each release independently, and manually downloading each release and placing files in the correct directories is repetitive work that a GUI can handle instead.

Three compatibility tools are in scope: GE-Proton and Luxtorpeda for Steam, and Wine-GE for Lutris. The project is written in Python 3 with Qt 6, and it builds on AUNaseef's ProtonUp, which is the original command-line tool for the same core task. ProtonUp-Qt extends that tool with a graphical interface and broader compatibility tool coverage across two launchers.

The project holds no official relationship with GloriousEggroll, Luxtorpeda's developers, Valve or Lutris. It tries to work with compatibility tool creators where possible but is not an official update channel for any of the tools it manages. Support for a given tool depends on what the project maintainer has implemented in the current release, not on any coordination agreement with the tool's author. This independence also means that if a compatibility tool changes its release format, ProtonUp-Qt may need an update before it can install the new versions.

## Flatpak, AppImage, AUR and Pacstall: four distribution paths

ProtonUp-Qt distributes in four ways. The Flatpak on Flathub, at the app ID net.davidotek.pupgui2, is the primary distribution path alongside the AppImage. AppImages are published in the GitHub releases section and give a portable, self-contained option without package manager integration.

Two AUR packages exist for Arch-based distributions: protonup-qt builds from source and is maintained by yochananmarqos, while protonup-qt-bin provides a binary AppImage and is maintained by R1yuu. A Pacstall package named protonup-qt-app rounds out the four paths. The AUR and Pacstall distributions are checked on an irregular basis, distinct from the more actively tracked Flatpak and AppImage releases.

Documentation lives at the official website davidotek.github.io/protonup-qt and the wiki at github.com/DavidoTek/ProtonUp-Qt/wiki. The pyproject.toml lists the GitHub issues page as the bug tracker. Translation contributions are managed separately through Weblate at https://hosted.weblate.org/projects/protonup-qt/, which handles both new translations and updates to existing ones without requiring a local Qt Linguist installation.

## Running from source with uv, and the Nix AppImage build

Running from source requires Python 3.10 or newer, set in pyproject.toml under requires-python. With uv installed, two commands start the application:

```bash
uv sync
uv run protonup-qt
```

The uv sync step installs the full dependency set from uv.lock: PySide6-Essentials>=6.3.0, requests>=2.27.0, PyYAML>=6.0, zstandard>=0.19.0, pyxdg>=0.27, inputs==0.5, and two git-sourced packages. The vdf package is pinned at the v4.0 tag from solsticegamestudios, and the steam package is pinned at v2.0.0-alpha1 from the same organization.

Building the AppImage uses Nix:

```bash
nix build .#appimage
```

The AppImage and a .zsync file appear in result/. This build bundles a relocatable python-build-standalone interpreter along with the PyPI wheels from uv.lock, so the result does not depend on /nix/store and does not require a system Qt installation. The minimum glibc version is 2.34. The .zsync file enables delta updates for AppImage tools that support that format, allowing a smaller download when upgrading from a prior version.

## GE-Proton, Wine-GE, Luxtorpeda and the launchers they belong to

GE-Proton is managed under Steam. Luxtorpeda is also a Steam compatibility tool. Wine-GE falls under Lutris. Each tool links to its own GitHub repository from the README, pointing to GloriousEggroll's proton-ge-custom for GE-Proton, GloriousEggroll's wine-ge-custom for Wine-GE, and luxtorpeda-dev for Luxtorpeda.

AreWeAntiCheatYet and ProtonDB are credited as services the project uses. Both track game compatibility on Linux from different angles: AreWeAntiCheatYet focuses on anti-cheat system status, while ProtonDB aggregates user reports. Which specific features in ProtonUp-Qt connect to those services is not described in the project description or README.

The repository topic steamtinkerlaunch appears in the project metadata. Its feature coverage in the current version is described in the wiki rather than the top-level README. For the exact list of supported tools, that wiki is the right starting point.

ProtonUp-Qt installs tools into the directories that Steam and Lutris read when launching games, without modifying the launchers themselves. Any install is reversible by removing the installed version through the same interface.

## ProtonUp-Qt vs the original ProtonUp CLI

ProtonUp-Qt's project description explicitly says it is based on AUNaseef's ProtonUp. Both cover GE-Proton installation and share the GPL-3.0 license. The practical difference is interface and feature scope.

ProtonUp is a command-line tool. ProtonUp-Qt adds a graphical interface and extends coverage to Wine-GE for Lutris and to Luxtorpeda. Automation pipelines and scripts that call a CLI directly integrate more naturally with ProtonUp, since it produces parseable output without a display dependency. ProtonUp-Qt requires a display server to run because it uses Qt 6, which means headless Linux servers cannot run it. The project classifies itself under POSIX Linux only, so macOS and Windows are not supported configurations regardless of display server availability.

For users who manage installations on a machine with a desktop environment and want to browse available versions, compare what is installed, and trigger updates by clicking rather than typing, ProtonUp-Qt covers the task that ProtonUp addresses and more. For anything automated or scripted, the original CLI is the better fit.

## A nine-entry license table and the Weblate translation workflow

Nine entries form the project's licensing picture. ProtonUp-Qt itself is GPL-3.0, and so is the original ProtonUp it is based on. PySide6 carries a dual LGPL-3.0/GPL-2.0 license, which applies to any distribution that bundles Qt components, including the AppImage build. The remaining dependencies are: inputs under BSD, pyxdg under LGPLv2, vdf and steam from solsticegamestudios both under MIT, requests under Apache 2.0, and PyYAML under MIT. Anyone packaging a modified build of ProtonUp-Qt should read all nine entries rather than treating the application-level GPL-3.0 as the complete picture.

Translations are accepted through Weblate at https://hosted.weblate.org/projects/protonup-qt/, where contributors can translate through a browser without a local toolchain. Manual contribution follows a six-step path: generate or copy a .ts template from the i18n/ directory, translate using Qt Linguist (on Flathub at io.qt.Linguist) or a plain text editor, and submit by pull request or by uploading the .ts file to Gist and opening a GitHub issue with the link. UI strings live in the .ts files under i18n/. Metadata text is in two files: share/metainfo/net.davidotek.pupgui2.appdata.xml and share/applications/net.davidotek.pupgui2.desktop.

## v2.15.1 is the current release, repository last pushed on 2026-10-03

Version 2.15.1 is the current release, published on 2026-06-24. The two preceding releases were v2.15.0 on 2026-02-20 and v2.14.0 on 2025-09-22, giving three releases across roughly nine months. The repository is not archived, and the last push was on 2026-10-03, which postdates the most recent release, indicating ongoing development between release tags.

The Python floor is 3.10, and the project's trove classifiers mark it as POSIX Linux only, confirming no macOS or Windows support is intended. PySide6-Essentials is pinned at >=6.3.0 as a minimum, and the exact version resolved at build time comes from the uv.lock file rather than from the pyproject.toml minimum. Upgrading uv.lock is how the project picks up newer Qt versions.

The test suite uses pytest with five plugins listed in pyproject.toml: pytest-responses for HTTP mocking, pyfakefs for filesystem mocking, pytest-mock, pytest-emoji and pytest-md. Tests live in the tests/ directory at the repository root. The project is maintained by DavidoTek and takes contributions through the GitHub issues and pull request workflow. No commercial support or SLA appears in any project file. The setuptools configuration restricts package discovery to pupgui2* to prevent unrelated top-level directories from being installed as packages.

## Conclusion

ProtonUp-Qt suits Linux gamers who use Steam or Lutris and want a GUI to manage GE-Proton, Wine-GE and related compatibility tools without tracking GitHub releases manually. The Flatpak on Flathub at net.davidotek.pupgui2 is the easiest install path. Skip it if you prefer the original ProtonUp CLI, which covers GE-Proton installation without the graphical interface. The GPL-3.0 license on the application is clear, but PySide6's LGPL-3.0/GPL-2.0 dual license applies to any distribution that bundles Qt, so read the licensing table in the README before packaging a modified build.

## FAQ

### What is ProtonUp-Qt?

ProtonUp-Qt is a Python/Qt 6 graphical interface for installing and managing GE-Proton, Luxtorpeda and Wine-GE on Linux. It covers Steam and Lutris and is based on AUNaseef's ProtonUp command-line tool.

### How do I install ProtonUp-Qt?

ProtonUp-Qt is available as a Flatpak at net.davidotek.pupgui2 on Flathub and as an AppImage from the GitHub releases section. Arch-based distributions can use the protonup-qt or protonup-qt-bin AUR packages.

### What is the difference between ProtonUp-Qt and ProtonUp?

ProtonUp is AUNaseef's original command-line tool for installing GE-Proton. ProtonUp-Qt is a graphical interface based on it, extending coverage to Wine-GE for Lutris and Luxtorpeda for Steam alongside GE-Proton.

### What Python version does ProtonUp-Qt require?

ProtonUp-Qt requires Python 3.10 or newer, as stated in pyproject.toml. When running from source, uv handles dependency installation via uv sync before launching with uv run protonup-qt.

### What license does ProtonUp-Qt use?

ProtonUp-Qt is licensed under GPL-3.0. Its dependencies carry separate licenses: PySide6 is LGPL-3.0/GPL-2.0, requests is Apache 2.0, pyxdg is LGPLv2, vdf and steam are MIT, inputs is BSD, and PyYAML is MIT.

## Sources

- [DavidoTek/ProtonUp-Qt on GitHub](https://github.com/DavidoTek/ProtonUp-Qt)
- [License: GPL-3.0](https://github.com/DavidoTek/ProtonUp-Qt/blob/main/LICENSE)
- [Project website](https://davidotek.github.io/protonup-qt)
- [README](https://github.com/DavidoTek/ProtonUp-Qt/blob/main/README.md)
- [Releases](https://github.com/DavidoTek/ProtonUp-Qt/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/davidotek-protonup-qt
