A GTK4 and libadwaita application for managing Windows compatibility tools on Linux.
Flathub · Releases · Issue tracker
ProtonPlus helps you install, update, remove, and organize compatibility tools used by Steam and other Linux game launchers. It discovers supported launcher installations, downloads releases from their upstream sources, and installs them into the layouts expected by each launcher.
- Manage Proton, Wine, DXVK, and VKD3D tools from one application.
- Install versioned releases and
Latestbuilds, update installed tools, remove old versions, and migrate games between tools where supported. - Filter release variants against the detected CPU architecture and ISA level, including native AArch64 builds and supported x86-64 builds on AArch64 hosts.
- Detect system and Flatpak launcher installations, with Steam Snap support.
- Manage tools for Steam, Faugus Launcher, Lutris, Heroic Games Launcher, Bottles, and WineZGUI.
- Browse Steam games, change default and per-game compatibility tools, edit launch options, and apply compatibility-tool or launch-option changes to multiple games.
- Configure Steam profiles and create or remove a ProtonPlus shortcut in Steam from the preferences view.
- Coordinate required Steam restarts after compatibility-tool or Steam configuration changes.
- Navigate Tools, Games, preferences, dialogs, and menus with a gamepad, with contextual button hints and optional vibration.
- Configure MangoHud presets when MangoHud is installed, including visual, performance, metrics, and extra settings.
- Track downloads and updates from the application header, with a shared speed limit, cancellation, and desktop notifications.
- Use the command-line interface for listing launchers, installing, updating, and uninstalling tools.
- Configure background updates, API tokens, proxy settings, themes, language, legacy-tool visibility, and other application preferences.
- Localized through gettext and Weblate.
ProtonPlus runs on Linux. It is distributed as a Flatpak and can also be built and installed natively with Meson. The application includes detection for these launcher installations:
| Launcher | Supported installation types | Tool categories |
|---|---|---|
| Steam | System, Flatpak, Snap | Proton, including Steam Tinker Launch |
| Faugus Launcher | System, Flatpak | Selected Proton tools |
| Lutris | System, Flatpak | Proton, Wine, DXVK, VKD3D |
| Heroic Games Launcher | System, Flatpak | Proton, Wine |
| Bottles | System, Flatpak | Proton, Wine, DXVK |
| WineZGUI | System, Flatpak | Wine |
Only installed and detectable launchers are shown. Tool availability also depends on the launcher and installation type.
The built-in provider catalog currently contains:
- Proton-GE
- Proton-CachyOS
- DW-Proton
- Proton-GE RTSP
- Proton-Tkg
- Proton-EM
- Proton-CachyOS Wineland
- Luxtorpeda
- Boxtron
- Roberta
- Steam Tinker Launch, for Steam
- Wine-Proton (Kron4ek)
- Wine-Staging (Kron4ek)
- Wine-Staging-Tkg (Kron4ek)
- Wine-Vanilla (Kron4ek)
- DXVK (doitsujin)
- DXVK GPL+Async (Ph42oN)
- DXVK (Sarek)
- VKD3D-Proton
- VKD3D-Lutris
Release data is obtained from upstream GitHub, GitLab, Forgejo, and GitHub Actions sources. Available versions and architecture variants are determined by each provider's upstream releases.
The Flathub package is the recommended installation method.
flatpak install flathub com.vysp3r.ProtonPlus
flatpak run com.vysp3r.ProtonPlusIf the Flathub remote is not configured yet:
flatpak remote-add --if-not-exists \
flathub https://flathub.org/repo/flathub.flatpakrepoThe Flatpak uses host access required to find Steam libraries and launcher data, and requests access to the supported launcher Flatpak data directories. If a launcher is installed in an unsupported location or through a different packaging format, ProtonPlus may not be able to detect it.
The following packages are maintained by distribution packagers or community maintainers. They are not managed by the ProtonPlus project and may have different release timing or packaging defaults than Flathub.
| Distribution | Package source | Maintainer |
|---|---|---|
| Arch Linux | AUR | yochananmarqos |
| Fedora | Copr | wehagy |
| Fedora | Terra | Owen Zimmerman |
| NixOS | nixpkgs | Seth |
| Ubuntu | Pacstall | Vysp3r |
| openSUSE | OBS | rrahl0 |
| Void Linux | Official repository | xJayMorex |
| Gentoo | Overlay | amielke |
A native build requires a Linux development environment with:
- Git, a C compiler, pkg-config, Meson 1.0 or newer, Ninja, and Vala
- GLib and glib-compile-schemas
- GTK4
- libadwaita 1.6 or newer
- json-glib
- libsoup 3
- libgee
- libarchive
- libnotify
- Cairo
- AppStream
- SDL 3.2 or newer
- gettext and desktop-file-utils
Package names differ between distributions. The repository's scripts/get-dependencies.sh installs the native build dependencies on Arch Linux; it is intended for Arch-based build environments and should not be run unchanged on other distributions.
Clone and build the application with the project Makefile:
git clone https://github.com/Vysp3r/ProtonPlus.git
cd ProtonPlus
make build-runIf protonplus is not already available on PATH, make build-run installs
the native build before launching it.
To build without launching it, then install it system-wide:
make installThe native build is configured with /usr as its install prefix by the Makefile.
The local Flatpak manifest builds the source tree and installs the result for the current user. Flatpak, a configured Flathub remote, and network access are required.
make local-runThe local target installs the GNOME 50 SDK and runtime, the Vala SDK extension, and Flatpak Builder when they are missing. Use make local to build and install without launching the application.
- Launch ProtonPlus and select a detected launcher from the launcher selector.
- Open the Tools view and choose a tool category.
- Select a tool to browse upstream releases, choose a release or variant, and install it.
- Use the installed, used, and unused filters to review tool usage.
- Open a release to update, remove, open its upstream page, or migrate compatible games when supported.
- For Steam, use Games to select a profile, change compatibility tools, edit launch options, or perform a mass edit.
- If MangoHud is detected, enable experimental features to use the MangoHud view.
Downloads and updates appear in the header indicator. ProtonPlus also sends desktop notifications when an operation finishes while the application is not active.
ProtonPlus supports gamepad navigation through SDL 3. Use the D-pad or left stick to move, the right stick to scroll, the configured confirm face button to activate controls, and the other face button to go back or close the active dialog or menu. Shoulder and dedicated controller buttons provide contextual page, section, search, filter, menu, and launcher shortcuts where available; the hint bar shows the actions supported by the current view.
On Steam Deck, focus a text field and use Steam + X to open the on-screen keyboard. Other systems may require a physical or system-provided keyboard for text entry.
Running protonplus without arguments opens the graphical interface. The CLI accepts these commands:
protonplus version
protonplus help
protonplus list [launcher_id]
protonplus install <launcher_id> <runner_id> [latest]
protonplus uninstall <launcher_id> <runner_id|all> [all]
protonplus update <all|launcher_id> [runner_id]
List detected launchers and installed tools first; the command output includes the IDs accepted by the other commands:
protonplus list
protonplus list steam-system
protonplus install steam-system proton-ge latest
protonplus update steam-system
protonplus update all
protonplus uninstall steam-system proton-geThe latest argument selects the latest eligible release during installation. The all argument can remove all releases for a tool or all provider-tool releases for a launcher.
Application preferences are available from the preferences dialog. They include:
- Appearance themes: system, Adwaita, Breeze, SteamOS, and OLED
- Language selection and translated interface text
- Controller confirm-button mapping and optional vibration
- Background update frequency and update checks at launch or system startup
- Default Steam compatibility tool and selected Steam profile
- GitHub and GitLab API tokens for higher API limits or authenticated access
- System or manual proxy configuration and a shared download speed limit
- Legacy-tool visibility, experimental features, and default-prefix migration behavior
- Cache deletion and application environment diagnostics
Native builds use the XDG user cache directory, normally ~/.cache/ProtonPlus. Flatpak builds use the corresponding sandboxed XDG directories.
Confirm that the launcher is installed and has been opened at least once, then refresh ProtonPlus. For Flatpak launchers, make sure the corresponding Flatpak application data exists and that ProtonPlus was installed with the official Flatpak package. Steam libraries on custom locations must also be visible to the ProtonPlus installation.
Check the network connection and the proxy setting in Preferences > Advanced > Network. GitHub and GitLab access tokens can be configured under API Tokens. An invalid token or an upstream API outage is reported separately from a missing release.
Close games that are using the compatibility tool. ProtonPlus refuses certain updates while a game is running to avoid modifying an active installation.
Use the cache deletion action in the preferences dialog, then retry the operation. This clears ProtonPlus's cached release data and downloaded archives; releases are fetched again from their upstream sources.
The provider may have published an asset in an unsupported or incomplete format. Refresh the release data and retry. If the problem persists, report the provider, release, and exact error in the issue tracker.
Run the test suite after making changes:
make testsUseful maintenance commands are exposed through the Makefile:
make linter
make translations
make icons
make cleanProvider extension points and release-source architecture are documented in docs/provider-architecture.md.
Please read CONTRIBUTING.md before opening a pull request. Bug reports and feature requests belong in the issue tracker. Translation contributions are coordinated through Weblate.
AI tools, including OpenAI Codex, have been used to help advance ProtonPlus further. AI was used as a supporting engineering tool within a structured development process, under human direction and subject to code review, testing, and validation. Project decisions and final responsibility remain with the maintainers.
ProtonPlus is licensed under the GNU General Public License version 3 or later.



