Linux gaming is not a workaround anymore. Steam, Proton, and the surrounding toolchain handle most of the Windows library without modification. This page gets you set up and tuned.
Before You Install Anything
Linux gaming experience splits cleanly on GPU brand. Not because one card is faster — because the driver situation is fundamentally different.
amdgpu driver ships in the Linux kernel.
There is no package to install, no signing required, no proprietary module to break
after a kernel update. Plug in the card, boot, and Vulkan is available.
Some older cards need firmware from the firmware-amd-graphics package,
but that's a one-liner.
NVIDIA drivers live in the non-free and non-free-firmware
sections. Check that your /etc/apt/sources.list includes them:
NVIDIA + Wayland
NVIDIA and Wayland compositors (Sway, Hyprland) have historically been rocky. On Debian Testing with Fluxbox or XFCE — both X11 — you will not hit this. If you move to a Wayland compositor later, check that compositor's NVIDIA notes first. X11 with NVIDIA is rock solid.
The Core Stack
Proton is Valve's compatibility layer — a Wine fork with DXVK (DirectX→Vulkan), VKD3D-Proton (DirectX 12→Vulkan), Steam Linux Runtime containers, and a pile of game-specific patches. It ships inside Steam and requires no separate install. Most of your Steam library will just run.
Two options. Flatpak is cleaner — Steam's dependencies stay containerized. Native is simpler if you prefer not to set up Flatpak.
Proton-GE goes in
~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/
when using the Flatpak version — see below.
By default, Steam only runs games that have a native Linux build. Turn on Proton for your entire library in one setting.
Steam → Settings → Compatibility
Enable "Enable Steam Play for all other titles" and set the Proton version to the latest non-experimental release. Steam Play for supported titles is already on by default — this setting extends it to your entire library.
GloriousEggroll's Proton builds include patches that haven't landed in official Proton yet: extra codec support, game-specific fixes, and faster DXVK/VKD3D builds. Many games that stutter or refuse to launch under official Proton work fine under GE. Check the releases page at github.com/GloriousEggroll/proton-ge-custom — the latest is always listed there.
ProtonUp-Qt is a GUI tool that manages Proton-GE
(and other custom Proton builds) for you. Available via Flatpak:
flatpak install flathub net.davidotek.pupgui2
protondb.com — check before you buy or troubleshoot
ProtonDB is a community database of compatibility reports. Search any game and see real player results with their hardware, Proton version, and any tweaks needed. Use it before purchasing a game on sale, and before spending an hour debugging something that has a known one-line fix in the reports.
Gold and above covers the overwhelming majority of the Steam library.
Squeeze Out More FPS
Two tools that are worth installing immediately and then forgetting about. Both work via Steam launch options — add them once per game and they run silently.
A daemon from Feral Interactive that applies system optimizations when a game
is running: sets the CPU governor to performance, bumps I/O priority,
puts the GPU in performance mode (where supported), and relinquishes all of it
when the game exits. Automatic, reversible, no configuration required.
An in-game overlay displaying FPS, frametime graph, CPU/GPU utilization and temperature, RAM, and VRAM usage — all while the game is running. Invaluable for spotting whether you're CPU-bound or GPU-bound, and for verifying that gamemode and driver changes are actually having an effect.
Without a config file, MangoHUD shows a default set of metrics.
Drop this in ~/.config/MangoHud/MangoHud.conf to
customize what's displayed. Toggle the overlay on/off with
Right Shift + F12 while in-game.
Beyond Steam
Steam isn't the whole library. These tools cover the rest — from Epic and GOG storefronts to individual Windows executables that need a managed Wine environment.
flatpak install flathub com.heroicgameslauncher.hgl
sudo apt install lutris
sudo apt install wine wine32 wine64. Run a Windows executable
with wine game.exe. No GUI, no bottle management — just raw
translation. Use it for small standalone Windows utilities or when you know
exactly what environment a program needs.
For games, prefer Lutris or CrossOver; they manage Wine prefixes and
per-application settings that bare Wine leaves to you.
Anti-cheat is the hard limit
Games using kernel-level anti-cheat — Easy Anti-Cheat (EAC) with the native Linux module not enabled by the developer, BattlEye without the Linux runtime, or Vanguard — will not work under Proton or Wine. This is not a Proton failure; the kernel module simply does not run. Check ProtonDB before buying competitive multiplayer games. EAC and BattlEye have Linux-compatible runtimes that many developers have opted into — it's a per-game publisher decision.
When It Doesn't Work
Also check ProtonDB for the game — if there's a known fix, someone has already documented the exact launch option or registry tweak needed.
Stuttering on first play is almost always shader compilation. Proton compiles DXVK/VKD3D shaders on first run and caches them. Play for 20–30 minutes; the stutters diminish as the cache builds. Steam also pre-caches shaders in the background before you launch — let it finish.
On multi-monitor setups, Proton games can launch on the wrong screen. Force the game to use your primary monitor with: