How to Play Games on Linux with Steam and Proton
Install Steam, enable Proton, use ProtonDB to check compatibility, and set up Lutris to run Windows games on any major Linux distro.
Before you start
- ▸A desktop Linux installation with a graphical environment
- ▸A GPU with Vulkan support (most hardware from 2012 onward qualifies)
- ▸A Steam account (free to create at store.steampowered.com)
- ▸sudo / administrator access to install packages
Linux gaming has crossed a threshold. Steam's built-in compatibility layer, Proton, lets the majority of Windows-only titles run on Linux with little or no configuration. Thousands of games that were never ported now work out of the box, and community resources like ProtonDB help you know what to expect before you launch. This guide walks you through installing Steam, enabling Proton, finding compatibility data, and using Lutris for titles outside the Steam ecosystem.
Install Steam
Debian and Ubuntu
Steam is available directly from Valve as a .deb package, or from the Ubuntu/Debian repos. The Valve package tends to stay more current.
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steam-installer
On Ubuntu 22.04 and later the package is named steam-installer; on older Debian stable it may simply be steam. Either way, running the installed launcher downloads the actual Steam client on first launch.
Fedora and RHEL / Rocky
Steam is in the RPM Fusion free repository. Enable it first, then install.
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install steam
On RHEL 9 / Rocky 9 replace %fedora with the explicit EL release URL from rpmfusion.org; the macro does not expand the same way.
Arch Linux
Enable the multilib repository in /etc/pacman.conf (uncomment the [multilib] section), then:
sudo pacman -Syu steam
Flatpak (distro-agnostic)
If your distro's packaged version is old or missing, the Flathub build is well-maintained and sandboxed.
flatpak install flathub com.valvesoftware.Steam
Install GPU Drivers
Proton depends on Vulkan, so current drivers matter more here than in most desktop tasks.
- AMD (recommended for Linux): The open-source
amdgpudriver ships in the kernel. Install Mesa and Vulkan runtime packages — they are usually pulled in as Steam dependencies automatically. On Debian/Ubuntu:mesa-vulkan-drivers; Fedora:mesa-vulkan-drivers(included by default). - NVIDIA: Use the proprietary driver, version 525 or newer for best Vulkan and DLSS support. On Ubuntu:
sudo ubuntu-drivers installor pick a version withsudo apt install nvidia-driver-545. On Fedora:sudo dnf install akmod-nvidiafrom RPM Fusion. On Arch:sudo pacman -S nvidia nvidia-utils. - Intel: Covered by Mesa. Ensure
intel-media-va-driverorintel-media-driveris installed for media decode acceleration.
Reboot after installing or updating GPU drivers before launching Steam.
Enable Steam Play and Proton
Steam Play is Valve's umbrella name for running non-Linux titles using Proton. By default it only activates for a curated whitelist. Enable it for all titles:
- Open Steam → Steam menu → Settings.
- Go to Compatibility.
- Toggle Enable Steam Play for supported titles (if not already on).
- Toggle Enable Steam Play for all other titles.
- Choose a Proton version from the drop-down. Use Proton Experimental for the latest fixes, or the most recent stable version (e.g., Proton 9.0) for reliability.
- Click OK — Steam will restart.
After the restart, every Windows game in your library shows a Play button. Steam downloads the Proton runtime automatically on first launch of a Windows title.
Install Proton-GE for Stubborn Games
GloriousEggroll's community Proton builds (Proton-GE) patch in codecs and fixes faster than the official releases. They are not from Valve; use them knowingly.
# Using ProtonUp-Qt (GUI tool, available on Flathub)
flatpak install flathub net.davidotek.pupgui2
Launch ProtonUp-Qt, choose Add version, select Proton-GE, and install. It places the build in ~/.steam/root/compatibilitytools.d/ where Steam picks it up. Then in the game's Properties → Compatibility, force that specific version.
Check ProtonDB Before You Buy
ProtonDB aggregates player-submitted reports for tens of thousands of titles. Each game gets a tier:
- Platinum / Gold: Works out of the box or with minor tweaks.
- Silver: Runs with some issues; check the reports for workarounds.
- Bronze: Launches but has significant problems.
- Borked: Does not run or is unplayable.
- Native: Has an official Linux build.
Search the game by name or Steam AppID. Read recent reports — ratings change as Proton improves. Pay attention to whether the reporter uses the same GPU vendor as you; NVIDIA and AMD can have very different outcomes for the same title.
Per-Game Launch Options
Some games need a hint. Right-click the game in Steam → Properties → General → Launch Options. Common useful flags:
PROTON_USE_WINED3D=1 %command%— fall back to OpenGL-based translation (slower, but bypasses some Vulkan driver bugs).DXVK_ASYNC=1 %command%— async shader compilation to reduce stutters (use only with Proton-GE).gamemoderun %command%— run under GameMode, Feral Interactive's CPU governor daemon. Install withsudo apt install gamemode/sudo dnf install gamemode/sudo pacman -S gamemode.MANGOHUD=1 %command%— overlay showing FPS, GPU/CPU usage. Install MangoHud from your distro's repos or Flathub.
Lutris for Non-Steam Games
Lutris is an open-source game manager that handles GOG, Epic, Battle.net, itch.io, and standalone installers. It maintains its own Wine/Proton builds and can script entire install procedures automatically.
Install Lutris
# Debian/Ubuntu
sudo apt install lutris
# Fedora
sudo dnf install lutris
# Arch
sudo pacman -S lutris
# Flatpak
flatpak install flathub net.lutris.Lutris
Using a Lutris Installer Script
- Visit lutris.net/games and search for the title.
- Click Install next to a community script — this opens Lutris and runs an automated installation, including downloading Wine, setting up a prefix, and applying game-specific patches.
- For Battle.net or GOG: open Lutris → click the + → choose Search the Lutris website and find the platform installer.
Lutris stores each game in its own Wine prefix under ~/Games/ by default, keeping configurations isolated.
Verify It's Working
A quick sanity check after setup:
# Confirm Vulkan is visible to the system
vulkaninfo --summary 2>/dev/null | grep -i "gpu"
# Check Steam runtime environment (native install)
steam --help
The vulkaninfo output lists detected GPUs; if nothing appears, your Vulkan drivers are missing. In Steam itself, check Steam → Settings → Compatibility to confirm your chosen Proton version is listed.
Launch a known-good Platinum-rated game from ProtonDB and watch the initial shader pre-compilation step in the game's launch dialog — this is normal and only happens once per game on first run.
Troubleshooting
- Game launches to a black screen: Try a different Proton version (switch between Proton stable, Proton Experimental, and Proton-GE). Also check ProtonDB reports for that specific AppID.
- Anti-cheat not working (EAC / BattlEye): Both Easy Anti-Cheat and BattlEye have Linux support, but the game developer must opt in on their side. Check the game's ProtonDB page or Steam store page under Linux Notes. There is no workaround if the developer has not enabled it.
- Controller not detected: Steam's built-in controller support covers Xbox, DualShock, and DualSense. Go to Settings → Controller → Desktop Configuration. For non-Steam games in Lutris, add the executable to Steam as a non-Steam game to use Steam Input.
- Game crashes with NVIDIA on Wayland: Some Proton titles need
__GL_THREADED_OPTIMIZATIONS=0 %command%in launch options, or you may need driver 535+ and thenvidia-drm.modeset=1kernel parameter set. - Steam not starting after Flatpak install: Run
flatpak run com.valvesoftware.Steamfrom a terminal to see error output. A common cause is a missing 32-bit Vulkan driver — installorg.freedesktop.Platform.GL32.defaultviaflatpak install flathub org.freedesktop.Platform.GL32.default.
Frequently asked questions
- Does every Windows game work with Proton?
- No, but a large majority of the Steam catalog does. Games with kernel-level anti-cheat (like some competitive shooters) remain the main category that does not work unless the developer explicitly enables EAC or BattlEye on Linux.
- Is there a performance penalty running games through Proton?
- In practice, many titles run within a few percent of Windows performance, and some actually run faster. The gap narrows with AMD hardware and recent Proton versions. Shader compilation stutters on first run are normal and go away after the cache is built.
- What is the difference between Proton and Proton-GE?
- Proton is Valve's official build; Proton-GE is a community fork by GloriousEggroll that adds FFmpeg codecs, experimental patches, and fixes that haven't landed in the official build yet. It is not supported by Valve.
- Can I use Steam on Wayland instead of XWayland?
- Steam itself runs under XWayland by default. Most games also run via XWayland, which works fine. Native Wayland for the Steam client is experimental as of 2024; you can try it by adding -system-composer to Steam's launch flags on supported compositors.
- Does Lutris conflict with Steam?
- No. Lutris manages its own Wine prefixes and runner binaries separately. You can run both simultaneously without issue, and you can even add Lutris-managed games to Steam as non-Steam games for controller support.
Related guides
Linux Clipboards Explained (+ Clipboard Managers)
Learn the difference between Linux's PRIMARY and CLIPBOARD selections, use xclip, xsel, and wl-clipboard from the terminal, and manage history with GPaste or Klipper.
Configure LibreOffice for Daily Use
Configure LibreOffice for daily use: set default save formats for MS Office interop, tune autosave, install fonts, and add productivity extensions.
Configure the Touchpad and Multitouch Gestures
Configure Linux touchpad behavior and multitouch gestures using libinput, libinput-gestures, and native GNOME and KDE Plasma settings on both Wayland and X11.
Wayland vs X11: How to Choose and Configure Each
Know when to run Wayland or X11, how to check your current session, switch at login with GDM/SDDM/LightDM, and handle NVIDIA and XWayland edge cases.