The games room

Gaming on NixOS: get a round in.

Steam, Proton, Heroic and Lutris are all switched on from your config. Every change is a save point, so if a driver update hurts your frame rate you can boot the previous setup.

The house pour

This is a full gaming setup in one file. Save it as gaming.nix, import it from your configuration.nix, and rebuild.

{ pkgs, ... }: {
  programs.steam = {
    enable = true;
    remotePlay.openFirewall = true;
    gamescopeSession.enable = true;
  };
  programs.gamemode.enable = true;
  hardware.graphics.enable = true;

  environment.systemPackages = with pkgs; [
    mangohud heroic lutris protonup-qt
  ];
}
  1. Steam with Proton built in, plus ports opened for Remote Play.
  2. gamemode nudges your CPU into performance mode while you play.
  3. gamescope gives you a couch-friendly, Steam Deck-style session.
  4. MangoHud shows FPS and temperatures; Heroic covers Epic and GOG.

Will my games run?

Mostly, yes. When a game doesn’t run, the cause is usually its anti-cheat, which blocks Linux in general. Check your exact titles on ProtonDB and Are We Anti-Cheat Yet? before you switch.

On tap

Most single-player and many multiplayer games via Proton, plus native Linux titles.

e.g. Counter-Strike 2, Baldur’s Gate 3, Cyberpunk 2077, Elden Ring, Hades II

Needs a tweak

Games that want a specific Proton version, a launch option, or a launcher like Heroic or Lutris.

Tip: ProtonUp-Qt installs GE-Proton in two clicks.

Not served here

Games whose kernel-level anti-cheat blocks Linux. That’s the publisher’s decision, and nothing in your config can change it.

e.g. Valorant, Fortnite, League of Legends. Keep a Windows partition if these matter.

Your graphics card

AMD and Intel: drivers are open source and built into the kernel. hardware.graphics.enable = true; in the setup above is all you need.

NVIDIA: add three lines for the proprietary driver. Recent cards (RTX 20-series and newer) can use NVIDIA’s open kernel module:

services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.modesetting.enable = true;
hardware.nvidia.open = true;

Launchers

You useOn NixOSAdd to your config
SteamSteam (with Proton)programs.steam.enable
Epic, GOG, AmazonHeroic Games Launcherheroic
Battle.net, EA, UbisoftLutrislutris
MinecraftPrism Launcherprismlauncher
DiscordDiscord (or Vesktop)discord

The landlord's rig

endgame: Ryzen 7 7800X3D · Radeon RX 9070 XT

My own gaming desktop, which runs NixOS every day. Read the config and borrow what you like.

Read the config →