$linuxjunkies
>

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.

BeginnerUbuntuDebianFedoraArch9 min readUpdated June 7, 2026

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 amdgpu driver 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 install or pick a version with sudo apt install nvidia-driver-545. On Fedora: sudo dnf install akmod-nvidia from RPM Fusion. On Arch: sudo pacman -S nvidia nvidia-utils.
  • Intel: Covered by Mesa. Ensure intel-media-va-driver or intel-media-driver is 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:

  1. Open Steam → Steam menu → Settings.
  2. Go to Compatibility.
  3. Toggle Enable Steam Play for supported titles (if not already on).
  4. Toggle Enable Steam Play for all other titles.
  5. 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.
  6. 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 with sudo 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

  1. Visit lutris.net/games and search for the title.
  2. 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.
  3. 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 the nvidia-drm.modeset=1 kernel parameter set.
  • Steam not starting after Flatpak install: Run flatpak run com.valvesoftware.Steam from a terminal to see error output. A common cause is a missing 32-bit Vulkan driver — install org.freedesktop.Platform.GL32.default via flatpak install flathub org.freedesktop.Platform.GL32.default.
tested on:Ubuntu 24.04Fedora 40Arch rollingDebian 12

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