Linux gaming has crossed a threshold that would have been unthinkable five years ago. As of November 2025, Linux accounts for 3.20% of Steam's active user base -- the highest figure ever recorded on the platform -- representing roughly 4.22 million monthly active gamers. Nearly 90% of Windows games now run on Linux through Proton, and Valve's Deck Verified program had certified over 21,694 titles as playable on SteamOS. The ecosystem is real, it is large, and it works for the vast majority of players.
But there is still a gap between "it works" and "I set it up correctly." Switching to Linux for gaming is not a single click. It is a sequence of deliberate tinkering steps, and the order in which you do them matters. This guide walks through each one with real commands, specific examples, and game-by-game walkthroughs so you know exactly what to expect.
~/.local/share/Steam/steamapps/compatdata/APPID/) is a simulated Windows filesystem that Wine creates to give each game its own isolated C: drive.
Before You Install: Picking Your Distro
The distro you choose shapes how much you have to do manually. If you are still undecided between options beyond gaming, the definitive Linux distribution decision framework covers the full picture. For someone who wants to game without rethinking their entire operating environment, three distros are worth your attention in 2026.
Bazzite is built on Fedora Atomic and is arguably the most purpose-built gaming distro available on desktop hardware right now. It ships with Steam pre-installed, supports both KDE Plasma and GNOME, and works out of the box with Nvidia GPUs, AMD GPUs, and integrated graphics. Bazzite also supports non-Steam launchers including the EA App, Epic Games Store, GOG, itch.io, Rockstar Games Launcher, and Ubisoft Connect. If you want the shortest path from bare metal to gaming, Bazzite is the honest answer.
CachyOS is an Arch-based distribution that has quietly become one of the fastest-growing gaming distros -- its market share among Linux Steam users rose 0.73 percentage points to reach 6.74% in November 2025. It ships with a custom Proton build (proton-cachyos) tuned for performance, and its wiki documents advanced tweaks like NTSync, per-game shader caches, and FSR4 upgrades in unusual detail.
Pop!_OS from System76 publishes a dedicated ISO with Nvidia proprietary drivers pre-installed. If you have an Nvidia card and want Ubuntu familiarity, this is the cleanest starting point. Ubuntu itself works fine too, and its ubuntu-drivers autoinstall command handles Nvidia driver selection automatically.
AMD GPUs have a significant practical advantage on Linux: the open-source amdgpu driver ships inside the Linux kernel itself. You typically install nothing extra. Nvidia cards require proprietary drivers, and while those drivers are mature and well-maintained, driver installation is a real configuration step you need to plan for. AMD processors also power approximately 70% of Linux gaming systems, compared to about 39% of general Steam users -- a gap that reflects this driver reality.
What about dual-booting, and can you reuse your existing game installs?
Dual-booting Linux alongside Windows is a completely reasonable way to start -- you keep Windows available for titles that genuinely will not run on Linux, and you test the Linux setup without committing to it fully. The main practical concern during partitioning is leaving enough space: a base Linux install plus a few large games can consume 100 GB quickly, so plan for at least 150--250 GB on the Linux partition if disk space is not constrained.
If you have games already installed on a Windows NTFS partition, you can read them from Linux, but Proton uses Linux-native paths internally and writes certain files (shader caches, Proton prefix data) alongside the game directory. Reusing an NTFS game install works for launching games through Steam, but the partition must be mounted with write access, and NTFS has a known limitation: it does not support the Unix file permissions and symlinks that some Proton prefixes rely on. The safest approach is to install games fresh on an ext4 or btrfs partition under Linux. If you want to share a game library between both operating systems without copying, mount the NTFS drive in Steam as a secondary library folder -- it will work for many titles, but you will likely hit edge cases with some Proton games that expect POSIX semantics.
Do not use a case-insensitive filesystem (including NTFS) as your primary Steam library on Linux. Some Windows game titles contain files with names that differ only by capitalization -- a pattern that works on NTFS and breaks silently on Linux when two files resolve to the same path. Install your main gaming library on ext4 or btrfs.
Step 1: Getting GPU Drivers Right
Nothing else in this guide matters if your GPU driver is broken or missing. This is where many first-time Linux gamers lose an afternoon.
AMD GPUs
For any modern AMD GPU on a mainstream distro, the kernel-integrated amdgpu driver is active automatically. What you may still need to install are the Vulkan-specific userspace packages. On Ubuntu or Debian-based systems:
$ sudo apt update $ sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-tools $ vulkaninfo | head -n 5 # confirm Vulkan is working
On Arch-based systems (Manjaro, CachyOS, EndeavourOS), install Mesa's Vulkan radeon driver and its 32-bit counterpart for older game compatibility:
$ sudo pacman -S mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader
The Mesa RADV driver -- the one installed by these commands -- is widely regarded as better for gaming than AMD's official AMDVLK package, offering superior stability and more frequent performance updates. Use RADV unless you have a specific reason not to.
Nvidia GPUs
On Ubuntu, the simplest path is to let ubuntu-drivers detect and install the recommended driver version:
$ sudo apt update && sudo apt upgrade -y $ sudo apt install build-essential dkms linux-headers-$(uname -r) $ ubuntu-drivers devices # shows recommended driver $ sudo ubuntu-drivers autoinstall # installs it $ sudo reboot $ nvidia-smi # verify driver loaded
After reboot, verify with nvidia-smi. If you see your GPU listed with driver version and CUDA version, you are done. If the command is not found, the driver did not load -- check dmesg | grep nvidia for conflict messages.
If you have Secure Boot enabled, Nvidia kernel modules must be signed, or Secure Boot must be disabled. This is the single most common cause of a successful Nvidia install that still fails to load. Check /sys/firmware/efi/efivars to confirm your boot mode, and consult your distro's documentation on module signing if needed.
On laptop systems with both an integrated Intel or AMD GPU and a discrete Nvidia GPU, the envycontrol tool makes switching modes simple:
# Preferred: use your distro's package (Ubuntu 24.04+, Arch, Fedora) $ sudo apt install envycontrol # Ubuntu/Debian # sudo pacman -S envycontrol # Arch # Fallback if not in your distro's repos: # pipx install envycontrol $ sudo envycontrol -s hybrid # on-demand mode (recommended) $ sudo envycontrol -s nvidia # force Nvidia for all rendering $ envycontrol --query # check current mode
Step 2: Installing Steam and Enabling Proton
Proton is a project by Valve that forks Wine and adds additional components including DXVK (DirectX-to-Vulkan translation), VKD3D-Proton (DirectX 12 support), esync, and fsync for improved multithreading. The Valve GitHub repository for Proton documents runtime tuning options that let you override behavior on a per-game basis using environment variables.
On Ubuntu, install Steam from the official package:
$ sudo add-apt-repository multiverse $ sudo dpkg --add-architecture i386 # required: Steam needs 32-bit library support $ sudo apt update $ sudo apt install steam-installer vulkan-tools mesa-vulkan-drivers gamemode mangohud
Once Steam opens, navigate to Steam > Settings > Compatibility. Enable both "Enable Steam Play for supported titles" and "Enable Steam Play for all other titles." The second toggle is the important one -- it allows Proton to run games that Valve has not explicitly verified, which includes a substantial portion of the library.
After enabling Steam Play for all titles, let any pending shader pre-cache downloads complete before launching games. Steam downloads pre-compiled shader caches matched to your GPU hardware. Skipping this step is one of the main causes of first-launch stutter that new Linux gamers report, and it is entirely avoidable.
Step 3: Installing GE-Proton
Valve's official Proton is stable and thoroughly tested. GE-Proton (maintained by community contributor GloriousEggroll) ships additional patches and fixes that Valve has not yet merged or chosen not to merge, plus codec support for video cutscenes that Valve's builds exclude for licensing reasons. For a significant slice of games -- particularly titles with in-game video, certain DRM schemes, or niche DirectX behavior -- GE-Proton is the version that makes things work.
The easiest installation path uses ProtonUp-Qt, a graphical manager available in most distro software centers:
$ flatpak install flathub net.davidotek.pupgui2 $ flatpak run net.davidotek.pupgui2
Inside ProtonUp-Qt, select Steam from the application dropdown, click "Add version," choose the latest GE-Proton entry from the list, and click Install. The tool downloads the release from the official GitHub repository, extracts it into ~/.steam/root/compatibilitytools.d/, and handles cleanup automatically. Restart Steam after installation.
If you prefer manual installation:
# Download from https://github.com/GloriousEggroll/proton-ge-custom/releases $ mkdir -p ~/.steam/root/compatibilitytools.d $ tar -xzf GE-Proton10-25.tar.gz -C ~/.steam/root/compatibilitytools.d/ # Restart Steam -- GE-Proton now appears in Compatibility dropdowns
To use GE-Proton for a specific game, right-click the game in your Steam library, select Properties, go to the Compatibility tab, check "Force the use of a specific Steam Play compatibility tool," and select the GE-Proton version from the dropdown.
Step 3b: Non-Steam Games (Epic, GOG, EA App)
Steam is not your only launcher on Linux. A significant portion of the PC gaming library lives on Epic Games Store, GOG, EA App, and Battle.net -- none of which run natively on Linux. Two tools exist specifically to bridge this gap.
Heroic Games Launcher is an open-source launcher that connects to both Epic Games Store and GOG accounts. It handles authentication, library management, and download for both storefronts, and applies Wine or Proton (your choice) when launching Windows titles. Heroic is the cleanest solution if your library is primarily on Epic or GOG.
$ flatpak install flathub com.heroicgameslauncher.hgl $ flatpak run com.heroicgameslauncher.hgl
Inside Heroic, sign in to your Epic or GOG account. For each game in your library, you can configure which Proton or Wine version to use, set per-game launch options and environment variables using the same flags covered in the next section, and point the install location at any drive on your system. Heroic stores its game configuration in ~/.config/heroic/.
Lutris takes a broader approach: it is a general-purpose game platform that covers GOG, Epic, Humble, itch.io, Battle.net, and standalone installers. Lutris relies on community-maintained install scripts that automate setup steps beyond what a launcher alone handles -- useful for games with complex installers or legacy DRM. Where Heroic is cleaner for Epic and GOG day-to-day, Lutris is the better tool for one-time installs of older or non-storefront games.
$ sudo add-apt-repository ppa:lutris-team/lutris $ sudo apt update && sudo apt install lutris
Games launched through Heroic or Lutris use their own Wine or Proton installs, separate from Steam's. ProtonUp-Qt can manage GE-Proton versions for both Steam and Heroic from the same interface -- switch between them using the application dropdown at the top of ProtonUp-Qt's window.
Step 4: Launch Options and Environment Variables
Steam launch options are per-game environment variable overrides that run before the game executable. The Valve Proton repository documents these variables in detail. They are set in the game's Properties dialog under Launch Options, and all go before %command%.
Some commonly useful flags:
# Enable MangoHud FPS overlay mangohud %command% # Enable GameMode (CPU governor and scheduler optimizations) gamemoderun %command% # Combine MangoHud + GameMode mangohud gamemoderun %command% # Force DXVK async shader compilation (GE-Proton only -- silently ignored on official Proton) DXVK_ASYNC=1 %command% # Fall back to OpenGL-based wined3d instead of DXVK (Vulkan) PROTON_USE_WINED3D=1 %command% # Enable NVIDIA DLSS/NVAPI support PROTON_ENABLE_NVAPI=1 DXVK_ENABLE_NVAPI=1 %command% # Enable Proton debug log (outputs to ~/steam-APPID.log) PROTON_LOG=1 %command% # AMD Anti-Lag for reduced input latency ENABLE_LAYER_MESA_ANTI_LAG=1 %command% # NTSync (requires kernel 6.14+ or patched kernel -- silently ignored on older kernels) PROTON_USE_NTSYNC=1 %command%
NTSync, esync, and fsync: which one should you use?
These three flags appear constantly in ProtonDB reports and launch option recommendations, and they address the same underlying problem from different angles. Windows games use synchronization primitives (mutexes, semaphores, events) to coordinate threads. Linux does not implement these natively; Wine and Proton have to emulate them. The emulation approach chosen has a direct effect on CPU overhead and game performance.
These three flags appear constantly in ProtonDB reports. They all address the same underlying problem from different angles: Windows games use synchronization primitives (mutexes, semaphores, events) to coordinate threads. Linux does not implement these natively; Wine and Proton emulate them. The emulation approach has a direct effect on CPU overhead and frame times. The three generations below represent a progressive move toward a kernel-level solution that makes the workaround unnecessary:
ulimit -n).PROTON_USE_NTSYNC=1 to launch options for any game where CPU overhead matters. On older kernels, fsync is already active automatically — nothing to set. The NTSync flag is silently ignored on kernels below 6.14, so setting it proactively does no harm. Run uname -r to check your kernel version before deciding.
$ uname -r # 6.14.x or later: NTSync is available $ ls /dev/ntsync 2>/dev/null && echo "ntsync present" || echo "ntsync not available"
Only place one %command% in your launch options. Everything after the first %command% is passed as a game argument, not as an environment variable -- a subtle mistake that silently breaks flags you thought were active.
Step 5: Using ProtonDB Before You Troubleshoot
Before spending time diagnosing a broken game, check ProtonDB (opens in new tab). ProtonDB is a community-driven database rated on a scale from Platinum (works perfectly, no tweaks) through Gold, Silver, Bronze, and Borked (will not launch). Community reports frequently include the exact launch options or Proton version needed to fix a specific title.
Similarly, Are We Anti-Cheat Yet? (opens in new tab) tracks the status of online multiplayer games by anti-cheat system, telling you at a glance whether a title works under Proton, requires developer opt-in that has not happened, or actively blocks Linux. Check both before purchasing a multiplayer title.
Step 6: Game-Specific Walkthroughs
The following walkthroughs cover real scenarios that represent the range of situations you will actually encounter when building a Linux gaming library.
Windows games running through Proton write their save files into a simulated Windows directory tree called the Proton prefix. You will find it at ~/.local/share/Steam/steamapps/compatdata/APPID/pfx/drive_c/users/steamuser/, where APPID is the game's numeric Steam App ID (visible in the store URL). Documents folder saves land in My Documents/, AppData saves in AppData/Roaming/ or AppData/Local/. Steam Cloud sync works normally for games that support it -- saves are uploaded and downloaded exactly as on Windows. For games without Steam Cloud, back up the compatdata directory if you want portable saves.
Walkthrough 1: Elden Ring (Gold-rated, works with minor setup)
Elden Ring uses Easy Anti-Cheat, which has official Linux support for Proton when the developer enables it. FromSoftware has enabled it. The game runs on default Proton 10 for most users, but ProtonDB reports consistently recommend one adjustment to prevent an intermittent crash on launch.
Right-click Elden Ring in Steam, go to Properties > Launch Options, and set:
PROTON_USE_NTSYNC=1 %command% # If using GE-Proton, also add: DXVK_ASYNC=1
No Proton version override is typically needed on Proton 10. If you encounter the known EAC initialization delay on first launch, wait up to 60 seconds before assuming a crash -- this is a known first-run behavior that resolves on subsequent launches.
Walkthrough 2: Cyberpunk 2077 (Platinum-rated, REDmod note)
Cyberpunk 2077 is one of the highest-profile Platinum-rated games on ProtonDB. CD Projekt Red has done significant work on Linux compatibility and the game runs near-identically to Windows performance. The main area requiring attention is REDmod, the official modding framework.
REDmod requires Proton Experimental or GE-Proton rather than stable Proton to initialize correctly. In Steam, right-click Cyberpunk 2077 > Properties > Compatibility > Force the use of a specific Steam Play compatibility tool > Proton Experimental (or GE-Proton). Then in Launch Options:
PROTON_ENABLE_NVAPI=1 DXVK_ENABLE_NVAPI=1 PROTON_DLSS_UPGRADE=1 %command%
For AMD users, PROTON_FSR4_UPGRADE=1 replaces the DLSS flags and enables FSR4 -- note this only applies to RDNA 4 hardware (RX 9000 series); earlier AMD GPUs will use FSR3 regardless of this flag. Drop ray tracing to Low or Off if you experience hitching -- the translation overhead for RT on Linux is real, particularly on Nvidia.
Walkthrough 3: Path of Exile 2 -- using GE-Proton for video cutscenes
Path of Exile 2 uses video cutscenes that require media codecs Valve's official Proton omits. GE-Proton includes these codecs. Without GE-Proton, cutscenes either show a black screen or crash the game.
After installing GE-Proton via ProtonUp-Qt as described earlier, launch Steam in Gaming Mode (on desktop, restart Steam). In your library, find Path of Exile 2 > Properties > Compatibility > Force the use of a specific Steam Play compatibility tool, then select the installed GE-Proton version (for example, GE-Proton10-25). No additional launch options are required for the base game.
# Verify GE-Proton directory is in place $ ls ~/.steam/root/compatibilitytools.d/ GE-Proton10-25 # Once selected in Steam, verify it was used after first launch $ ls ~/.local/share/Steam/steamapps/compatdata/ # Path of Exile 2's App ID is 2694490 $ ls ~/.local/share/Steam/steamapps/compatdata/2694490/
Walkthrough 4: Counter-Strike 2 -- native Linux, no Proton needed
Counter-Strike 2 ships with a native Linux build. You do not need Proton at all. However, CS2 uses VAC (Valve Anti-Cheat), and VAC is explicitly supported on Linux. The most common issue Linux users report is not compatibility but audio: PipeWire conflicts with the game's audio initialization on some setups.
If you hear no sound or experience audio crashes:
# Check whether PipeWire pulse is running $ systemctl --user status pipewire-pulse # If not running, start it $ systemctl --user start pipewire-pulse # CS2 launch option to force SDL audio to PulseAudio backend SDL_AUDIODRIVER=pulse %command%
Walkthrough 5: A game that will not launch at all -- using PROTON_LOG to diagnose
When a game shows an error or simply closes immediately, the first step is generating a Proton debug log. Add PROTON_LOG=1 %command% to launch options and run the game. A log file named steam-APPID.log will appear in your home directory. Search the log for the string "err:" to find the first meaningful error.
# Find your game's App ID -- shown in the URL on its Steam store page $ ls ~/steam-*.log # Filter to error lines only $ grep "err:" ~/steam-1234567.log | head -30 # Look for missing DLL errors -- use protontricks to supply them $ flatpak install flathub com.github.Matoking.protontricks $ flatpak run com.github.Matoking.protontricks 1234567 vcrun2022 # Replace vcrun2022 with the appropriate runtime name
Anti-Cheat: What Actually Works and What Does Not
Anti-cheat compatibility is the most misunderstood part of Linux gaming. Here is the honest picture in 2026.
Both Easy Anti-Cheat (EAC) and BattlEye have officially announced support for Proton on Linux, but this support is opt-in per developer. The frameworks support Linux; the decision to enable that support belongs to each game's developer. Titles where the developer has enabled the Linux path -- including Apex Legends, PUBG, and Elden Ring -- work through Proton. Titles where the developer has not enabled it do not work, regardless of which Proton version you use.
The linux.org community notes that while Easy Anti-Cheat and BattlEye both run at user level under Proton, few developers have opted in because the Linux player base remains small relative to the effort required.
-- linux.org community forum, Anti-Cheat Compatibility List
Kernel-level anti-cheat -- the kind used by Valorant (Vanguard) and a handful of other titles -- cannot run on Linux at all. This is a hard architectural limit, not a compatibility layer gap. Vanguard requires Windows kernel access by design. These titles will not run on Linux and cannot be made to run through any available tool.
The Are We Anti-Cheat Yet? (opens in new tab) site maintains a real-time list with per-game status. Check it before buying any multiplayer title you plan to play on Linux.
Step 7: Performance Monitoring and Tuning
MangoHud gives you a real-time overlay showing FPS, GPU and CPU load, temperatures, and frame times. Launch any game with mangohud %command% to enable it. The overlay is configurable through ~/.config/MangoHud/MangoHud.conf.
GameMode, developed by Feral Interactive, applies a set of optimizations including setting the CPU governor to performance mode, renice-ing the game process, and disabling certain power management behaviors. Add gamemoderun before %command% to activate it. On Ubuntu:
$ sudo apt install gamemode $ gamemoded -t # run self-test to confirm it's working
For GPU monitoring beyond what MangoHud shows, radeontop gives detailed AMD GPU utilization stats, and nvtop covers both AMD and Nvidia in an interactive terminal interface:
$ sudo apt install radeontop nvtop $ nvtop # interactive GPU monitor (AMD and Nvidia) $ nvidia-smi dmon # Nvidia-only continuous monitoring
Frame time spikes are often more meaningful than average FPS. A game averaging 90 FPS with regular 50ms frame time spikes feels worse than a game at 60 FPS with consistent 16ms frames. Watch frame time in MangoHud, not just the FPS counter.
Common Problems and Their Fixes
A few issues recur frequently enough across the Linux gaming community to be worth listing directly.
Game launches then immediately closes. First, check ProtonDB for known fixes. If none exist, enable PROTON_LOG=1 and search the log for "err:" entries. Then try switching Proton versions -- start with Proton Experimental, then try the latest GE-Proton build.
Severe stuttering on first run. This is almost always shader compilation. Wait for the Steam shader pre-cache to complete before launching. If you skipped it, let the game run through the first stuttery session -- the shader cache builds progressively, and subsequent sessions are significantly smoother.
Game runs but cutscenes are black or silent. Switch to GE-Proton. This is the primary use case for which the community builds GE-Proton -- media codec support for video that Valve cannot ship due to licensing.
Controller not recognized. Check Steam's controller settings under Steam > Settings > Controller. If the controller does not appear, add your user to the input group:
$ sudo usermod -aG input $USER # Log out and back in for the change to take effect $ cat /proc/bus/input/devices | grep -A 5 -i gamepad # verify
Game performs noticeably worse than Windows benchmarks suggest. Confirm the correct GPU is rendering. On hybrid laptop setups, the game may be rendering on the integrated GPU. Use prime-run %command% (on Nvidia hybrid systems) or confirm via MangoHud that GPU load is on the discrete card. Also verify your Proton version -- Proton 10 regressed performance for some titles compared to Proton 9, and rolling back to the stable 9.0 series resolves this for the affected games.
The Realistic Picture in 2026
Linux gaming in 2026 is not a compromise for people who do not care about gaming quality. It is a viable primary gaming platform for the vast majority of the Steam library. XDA-Developers reported in early 2026 (opens in new tab) that a solid Vulkan-capable driver stack and Proton support are all that is needed for a complete gaming experience -- kernel tweaks and manual optimizations are largely unnecessary once those foundations are in place.
The tinkering steps in this guide are real, but they are not endless. Set up your drivers once. Enable Steam Play once. Install GE-Proton once. Check ProtonDB before you buy a new title. Most games then simply work. The ones that do not almost always have a documented fix in the ProtonDB community reports. The ones that genuinely cannot work -- kernel-level anti-cheat titles -- are clearly flagged on Are We Anti-Cheat Yet so you know before you spend money.
The time investment is front-loaded. After the initial setup session, the day-to-day experience is clicking Play. If you want a broader post-install checklist beyond gaming, the guide on what to do immediately after installing Linux covers the essential system-level steps worth doing alongside your gaming setup.
Sources
- Linux Gaming Market Share Statistics 2026 -- commandlinux.com — commandlinux.com/statistics/linux-gaming-market-share-steam-survey/ (opens in new tab)
- Proton 10.0-3 released -- GamingOnLinux, November 2025 — gamingonlinux.com (opens in new tab)
- Nearly 90% of Windows Games Now Run on Linux -- Slashdot / Boiling Steam, October 2025 — linux.slashdot.org (opens in new tab)
- Valve/Proton Runtime Configuration Variables -- GitHub — github.com/ValveSoftware/Proton (opens in new tab)
- How to install GE-Proton on Steam Deck, SteamOS, Linux -- GamingOnLinux — gamingonlinux.com/guides (opens in new tab)
- How to Set Up Linux for Gaming with Steam, Proton GE, and GameMode in 2025 -- allthings.how, April 2025 — allthings.how (opens in new tab)
- Gaming with CachyOS Guide -- CachyOS Wiki — wiki.cachyos.org/configuration/gaming/ (opens in new tab)
- AMDGPU -- ArchWiki — wiki.archlinux.org/title/AMDGPU (opens in new tab)
- How to Install GPU Drivers on Ubuntu -- OneUptime blog, January 2026 — oneuptime.com (opens in new tab)
- Anti-Cheat Compatibility List -- linux.org forums — linux.org (opens in new tab)
- Are We Anti-Cheat Yet? — areweanticheatyet.com (opens in new tab)
- Linux runs most PC games now, and you don't need SteamOS to do it -- XDA-Developers, 2026 — xda-developers.com (opens in new tab)
- Optimising gaming performance on Linux with Proton -- lab53.uk — lab53.uk (opens in new tab)
- ProtonDB community database — protondb.com (opens in new tab)
- This is the most effective way to build a Linux gaming machine -- linuxbsdos.com, March 2025 — linuxbsdos.com (opens in new tab)
- Heroic Games Launcher -- official documentation — heroicgameslauncher.com (opens in new tab)
- Lutris -- open gaming platform for Linux — lutris.net (opens in new tab)
- NTSync -- Wine documentation on Windows NT synchronization — wiki.winehq.org/NTSync (opens in new tab)
How to Switch to Linux for Gaming
Step 1: Install GPU drivers
On AMD, the amdgpu driver ships inside the Linux kernel and activates automatically. Install the Mesa Vulkan packages for your distro to complete the stack. On Nvidia, use your distro's driver installer -- ubuntu-drivers autoinstall on Ubuntu -- then verify with nvidia-smi after rebooting. Confirm Vulkan is working by running vulkaninfo.
Step 2: Install Steam and enable Proton for all titles
Install Steam from your distro's package manager or the official installer. Open Steam Settings, go to the Compatibility tab, and enable Steam Play for all titles -- not just Valve-verified ones. Let the shader pre-cache downloads finish before launching games to avoid first-run stutter.
Step 3: Install GE-Proton and configure per-game settings
Install ProtonUp-Qt from your software center or via Flatpak. Use it to download the latest GE-Proton release, which adds media codec support and community patches. For games that need it, right-click the title in Steam, open Properties, go to the Compatibility tab, and select the GE-Proton version. Add launch option flags such as PROTON_USE_NTSYNC=1 or mangohud before %command% as needed for individual games.
Frequently Asked Questions
Do most games work on Linux through Proton?
Nearly 90% of Windows games run on Linux through Proton as of early 2026. Valve's Steam Play covers the vast majority of the Steam library, and the ProtonDB community database tracks compatibility ratings -- Platinum through Borked -- for individual titles. Games using kernel-level anti-cheat such as Valorant are the main exception and cannot run on Linux.
What is GE-Proton and when should I use it?
GE-Proton is a community-maintained fork of Valve's official Proton, built by GloriousEggroll. It includes additional patches, media codecs for video cutscenes that Valve cannot ship due to licensing, and fixes that have not yet been merged into the official release. Use GE-Proton when a game has black-screen cutscenes, crashes that do not reproduce on the official build, or when ProtonDB reports recommend a specific GE-Proton version.
Does anti-cheat software work on Linux?
Easy Anti-Cheat and BattlEye both have official support for Proton on Linux, but that support is opt-in per developer. Games where the developer has enabled Linux support -- including Elden Ring, Apex Legends, and PUBG -- work through Proton. Games using kernel-level anti-cheat, such as Valorant with Vanguard, cannot run on Linux due to an architectural incompatibility. The Are We Anti-Cheat Yet (opens in new tab) website tracks the status of individual titles.
Can I run non-Steam games on Linux?
Yes. Heroic Games Launcher handles Epic Games Store and GOG libraries, applying Proton or Wine on your behalf for Windows titles. Lutris covers a broader range of storefronts and includes community install scripts for games with complex setup steps. Both tools accept the same environment variable flags used in Steam's launch options, and ProtonUp-Qt manages GE-Proton installs for both Heroic and Steam from a single interface.
Should I dual-boot or go Linux-only?
Dual-booting is the practical starting point for anyone who is not certain their full game library is covered. You keep Windows available for kernel-level anti-cheat titles and any software with no Linux equivalent, while testing the Linux setup at your own pace. The main constraints are disk partitioning (plan for at least 150 GB on the Linux side) and understanding that NTFS game installs shared between both systems will hit edge cases with some Proton games that expect POSIX file semantics. For a clean gaming experience, install games fresh on the Linux ext4 or btrfs partition rather than pointing Steam at an existing NTFS library.