Getting Proton running on Ubuntu is what turns Steam from a store that mostly plays Linux-native games into one where most of your Windows library just works. I run Proton on Ubuntu daily and it takes about five minutes to set up. This guide covers installing Steam, turning on Proton, picking the right version for a game, adding Proton-GE when the default version struggles and fixing the handful of things that go wrong along the way.
What is Proton on Ubuntu?
One quick disambiguation: Proton here is Valve’s Steam compatibility layer, not Proton VPN, an unrelated privacy product from Proton AG. It’s a fork of WINE, and rather than emulating Windows, it translates a game’s DirectX calls into Vulkan calls your Linux system and GPU can run directly. It also works outside Steam, in Lutris, Bottles and Heroic Games Launcher.
Installing Steam and Proton on Ubuntu
This tutorial guides you through installing Proton on Ubuntu and the Steam Deck (via Big Picture mode), which share the same steps. The same commands also work on Linux Mint and other Ubuntu-based distros. You’ll need Steam installed first, and if it isn’t already, type the following into a Terminal window:
sudo apt update && sudo apt install steam
Other ways to install Steam
The command above pulls Steam from Ubuntu’s multiverse repository and is the simplest route for most people. If you want the package straight from Valve instead, or you prefer Flatpak sandboxing, both work fine too.
Official Valve package:
wget https://repo.steampowered.com/steam/steam_latest.deb
sudo dpkg -i steam_latest.deb
sudo apt --fix-broken install
dpkg -i installs the package, and apt --fix-broken install pulls in any dependency it’s missing, most commonly the 32-bit libraries older games still need.
Flatpak:
flatpak install flathub com.valvesoftware.Steam
I’d stick with the multiverse apt install unless you have a good reason not to. It integrates with Ubuntu’s driver stack a bit more cleanly than the Flatpak build, and it’s one line instead of three.
For Those Without Steam Play Enabled
Needless to say, you will need the Steam client installed on your system. Open the Steam Application from the Application Menu/Grid from your Desktop.

Now, make sure that you have Proton compatibility layer enabled on the desktop client. Go to the Steam settings from the top right menu.

Now, go to the ‘Steam Play’ tab and make sure that Steam Play is enabled on your System. Also, check off the ‘Enable Steam Play for all other titles’ box.

Now, simply from the drop-down Menu, select Proton version and click on the Ok button. You can now use Proton to run Windows games and apps on your distribution.

For Those With Steam Play Enabled
If you have already been playing games on Linux using previous versions of Proton, then you can directly install the latest version by searching it from your Steam library.
Open your Steam library and from there, search for Proton.

Finally, select the latest version of Proton and install it on your system like you would normally install a game. Note that this version is not enabled yet for all your games. To enable it, you can either go through the Game settings individually or enable it from the Steam Settings > Steam Play menu.
Enabling Proton on the Steam Deck
From your Library, search for Proton and hit the Install button like you would normally do for any other game.

Note that it will also automatically install if Valve has selected any game to run using this specific version. In the background, it will also install the Steam Linux Runtime (Valve names these after military classes, so you’ll see “sniper” or “soldier” show up in your library), which is required to run the games. Once it is installed, you can individually configure your games to run using this specific version of the compatibility layer.
Proton versions explained
Steam’s dropdown gives you more than one Proton to pick from, and it helps to know what each is for before you start switching between them.
- Proton Stable (the plain numbered releases, currently in the 10.x range) is the tested default and the right choice for most games.
- Proton Experimental ships fixes and driver support ahead of the next stable release, and it updates on a rolling basis. Use it for new releases that stable hasn’t caught up with yet.
- Proton Hotfix exists for urgent, targeted fixes between full releases. You’ll rarely need to pick it manually.
- Proton-GE is the community fork built by a maintainer who goes by Glorious Eggroll, hence the name. It bundles patches Valve hasn’t merged yet, including extra codec and FSR support, and it’s usually the first thing worth trying when a game refuses to run on stock Proton.
You can find every version Steam has downloaded for you at ~/.steam/steam/steamapps/common/, and any manually added compatibility tools at ~/.steam/steam/compatibilitytools.d/.
Installing Proton-GE on Ubuntu for extra game compatibility
ProtonUp-Qt is the easiest way to manage Proton-GE, and it’s the same tool the original ProtonUp-QT guide walks through in more depth. Install it as a Flatpak:
flatpak install flathub net.davidotek.pupgui2
flatpak run net.davidotek.pupgui2
From there, click Add Version, pick GE-Proton from the list and hit install. Restart Steam afterward so it picks up the new entry in the compatibility tool dropdown.
If you’d rather skip the GUI, you can pull the latest release straight from GitHub:
mkdir -p ~/.steam/steam/compatibilitytools.d
cd /tmp
tarball_url=$(curl -s https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest | grep browser_download_url | cut -d\" -f4 | grep .tar.gz)
curl -L "$tarball_url" -o ge-proton.tar.gz
tar -xf ge-proton.tar.gz -C ~/.steam/steam/compatibilitytools.d/
mkdir -p creates the compatibility tools folder if Steam hasn’t already, and the curl command asks GitHub’s API for the newest release rather than a hardcoded version number, so it stays current on its own. Restart Steam once the extraction finishes and Proton-GE shows up alongside the official versions.
Checking game compatibility with ProtonDB
Before you install a game, or when one refuses to launch, ProtonDB is worth a look. It’s a community-run site that collects player reports on how well a game runs through Proton, and it often has the exact launch option or Proton version that fixed the same problem for someone else.
Reports use a five-tier rating: Platinum runs perfectly out of the box, Gold runs perfectly with a minor tweak, Silver runs with some issues, Bronze runs with real problems and Borked doesn’t run at all. You can look a game up by name on the site, or jump straight to its page from the terminal once you know its Steam App ID (visible in the store URL):
xdg-open "https://www.protondb.com/app/1245620"
Installing GPU drivers for the best performance
Proton leans on Vulkan for translating DirectX calls, so an up to date GPU driver matters more here than it does for everyday desktop use.
NVIDIA: Ubuntu’s driver manager handles this well for most cards.
sudo ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
sudo reboot
The first command lists what Ubuntu recommends for your card, and autoinstall grabs the best match. After rebooting, nvidia-smi confirms the driver loaded and shows which version you’re on.
AMD: Ubuntu ships a solid open-source AMDGPU driver out of the box, so there’s usually nothing to install. If you want newer Mesa builds than Ubuntu’s default repositories carry, the Kisak Mesa PPA is the common route:
sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update && sudo apt upgrade
Intel: Integrated Intel graphics use the in-kernel driver already, you just need the Vulkan pieces:
sudo apt install mesa-vulkan-drivers intel-media-va-driver
Whichever card you have, vulkaninfo | grep "GPU id" confirms Vulkan can see it, which is a good sanity check before you blame Proton for a game that won’t start.
Launch options and tools to boost performance
Steam launch options let you attach environment variables or wrapper programs to how a game starts. Right-click a game, open Properties and type into the Launch Options field.
A few worth knowing:
mangohud %command%
MangoHud overlays FPS, frame time and GPU/CPU load on screen, which is the fastest way to tell whether a game is actually running through Proton at a healthy frame rate. Install it with sudo apt install mangohud.
gamemoderun %command%
GameMode briefly switches your CPU governor to a performance profile while the game runs, then reverts when you quit. Install it with sudo apt install gamemode.
gamescope -w 1920 -h 1080 -W 2560 -H 1440 -- %command%
Gamescope is Valve’s own compositor, built originally for the Steam Deck, and it can render a game at a lower internal resolution and upscale it, which helps on weaker hardware. The -w/-h flags set the render resolution and -W/-H set the output resolution.
You can chain these together, for example gamemoderun mangohud %command% runs both at once.
Troubleshooting common Proton issues
Most Proton problems fall into a handful of categories, and the fixes are usually quick.
Game won’t launch. Right-click the game, choose Properties > Installed Files > Verify integrity of game files first, since a corrupted download causes more launch failures than Proton itself does. If that doesn’t help, check the Proton log at ~/steam-APPID.log (swap in the game’s actual App ID) for the exact error.
Stuck on a black screen or crashes immediately after the splash. This is often a shader cache problem. Clearing it forces a rebuild on next launch:
rm -rf ~/.local/share/Steam/steamapps/shadercache/APPID
A game that used to work now refuses to start. Deleting its Proton prefix resets its Wine environment completely, which fixes a surprising number of stubborn cases, though it also clears any in-prefix settings the game stored:
rm -rf ~/.local/share/Steam/steamapps/compatdata/APPID
Missing Windows components. Some older or less common games expect a particular .NET runtime or Visual C++ redistributable that Proton doesn’t install automatically. Protontricks can add these:
sudo apt install protontricks
protontricks APPID vcrun2019
If none of that fixes it, try switching Proton versions before anything else, stock Proton, Proton Experimental and Proton-GE all behave slightly differently, and a game that’s broken on one is often fine on another.
Key takeaways
- Install Steam with
sudo apt install steam, or Valve’s .deb or Flatpak build - Turn on Steam Play under Settings > Steam Play and check both boxes
- Default to the newest Proton and switch to Proton-GE if needed
- ProtonUp-Qt is the easiest way to manage Proton-GE
- Check ProtonDB before buying or troubleshooting a game
- Keep GPU drivers current since Proton relies on Vulkan
- MangoHud, GameMode and Gamescope help monitor and boost performance
- Verify game files and clear the shader cache to fix most launches
- Proton (Steam gaming) and Proton VPN only share a name
Frequently asked questions
Is Proton the same as Proton VPN?
No. Proton here is Valve’s Steam compatibility layer for running Windows games on Linux. Proton VPN is an unrelated privacy product from a different company, Proton AG.
Do I need to enable Steam Play for every game individually?
No, checking “Enable Steam Play for all other titles” in Steam’s settings turns it on globally. You can still override the Proton version per game from that game’s Properties menu.
Which Proton version should I use by default?
Start with the newest stable release Steam shows in the dropdown. If one particular game runs poorly, try Proton Experimental next, then Proton-GE.
Why won’t my game launch even with Proton enabled?
Start by verifying the game’s files through Steam, since a corrupted install is the most common cause. If that checks out, search ProtonDB for a known fix.
Does Proton work on the Steam Deck the same way it does on desktop Ubuntu?
Yes, the setup steps are identical since SteamOS on the Deck is Arch-based Linux running the same Steam client and Proton stack as your desktop.
Do I need a powerful GPU to use Proton?
Proton itself adds minimal overhead, current benchmarks generally put it within a few percent of native Windows performance. Your GPU’s requirements are set by the game, not by Proton.
What is Proton-GE and why would I need it?
It’s a community fork of Proton with patches Valve hasn’t merged yet. Reach for it when a game runs poorly, crashes or won’t launch at all on stock Proton.
Conclusion
Proton has gone from a niche workaround to the default way most people play Windows games on Ubuntu, and the gap with native Windows performance keeps closing with every release. Once Steam Play is on and your drivers are current, most of what’s left is picking the right Proton version for whatever you’re trying to run.
