13 KiB
NixOS Gaming Base
Diese Basis-Config ist als wiederverwendbare Vorlage für ein NixOS-Gaming-Desktop-System gedacht und nutzt nixos-unstable, Chaotic-Nyx und getrennte Desktop-/Treiber-Configs. Fokus:
- aktueller Kernel
- umschaltbare Grafik-Configs für AMD oder Nvidia
- Chaotic
mesa-gitund 32-Bit-Libs für Steam/Proton - PipeWire + Gaming-/Desktop-Audio-Tools
- Steam, Gamescope, MangoHud, Lutris, Heroic, LACT
- Basis für RGB- und Gaming-Peripherie
- Desktop-Auswahl zwischen KDE, GNOME, Budgie, Hyprland und COSMIC
Struktur
flake.nix: Einstieg übernixos-unstable+chaotic-cx/nyxconfiguration.nix: Host-spezifische Einstiegsdateimodules/base.nix: Boot, Locale, Nix, Firmware, Governor, Basis-Tweaksmodules/packages.nix: zentraler Ort für eigene Zusatzpaketemodules/chaotic-nyx.nix: Chaotic-Nyx Aktivierung,allowUnfree,mesa-gitmodules/graphics/mesa-amd.nix: AMDGPU + Mesa/RADV Basismodules/graphics/mesa-amd-opencl.nix: AMD mit AMDVLK + OpenCL/ROCmmodules/graphics/nvidia.nix: Nvidia-Treiber Basis mit proprietären Modulenmodules/graphics/nvidia-open.nix: Nvidia mit offenen Kernel-Modulenmodules/audio/pipewire.nix: PipeWire, JACK, Pulse, Audio-Toolsmodules/gaming.nix: Steam, Gamescope, Launcher-Stackmodules/gaming/wine-proton.nix: Wine-, Proton- und Compatibility-Toolsmodules/containers/podman-distrobox.nix: Podman Container Runtime + Distroboxmodules/kernel/linux-default.nix: Standard Linux Kernel (stabil)modules/kernel/linux-zen.nix: Linux Zen (Gaming-optimiert)modules/kernel/linux-hardened.nix: Linux Hardened (Sicherheit)modules/gaming-tweaks.nix: optionale Extra-Parameter für Gaming-Performancemodules/kernel/linux-cachyos.nix: aktiver Gaming-Kernel inconfiguration.nixmodules/desktop/common.nix: gemeinsame Desktop-Paketemodules/desktop/kde.nix: KDE Plasma 6 + SDDMmodules/desktop/gnome.nix: GNOME + GDMmodules/desktop/budgie.nix: Budgiemodules/desktop/hyprland.nix: Hyprland + SDDMmodules/desktop/cosmic.nix: schlanke COSMIC-Basismodules/desktop/cosmic-max.nix: COSMIC DE + Cosmic-Greeter (Wayland-native)modules/peripherals.nix: RGB-, Maus- und USB-Helfer
Quick Start - So nutzt ihr dieses Repo
Ihr möchtet diese Config für euer NixOS-Gaming-System nutzen? Hier geht's los:
1. Repo klonen
git clone <DIESES-REPO> ~/nixos-config
cd ~/nixos-config
2. Hardware-Konfiguration hinzufügen
Nach einer frischen NixOS-Installation:
sudo cp /etc/nixos/hardware-configuration.nix ./hardware-configuration.nix
3. Basis-Einstellungen anpassen (configuration.nix)
Öffnet configuration.nix und ändert diese Werte:
hostName = "euer-computer-name"; # z.B. "gaming-rig"
userName = "euer-nutzername"; # z.B. "max"
fullName = "Euer Name"; # z.B. "Max Mustermann"
4. Desktop und GPU wählen
Ändert diese Zeilen nach eurer Hardware:
desktopConfig = ./modules/desktop/kde.nix; # oder: cosmic-max.nix, gnome.nix, hyprland.nix
graphicsConfig = ./modules/graphics/mesa-amd.nix; # oder: nvidia.nix, nvidia-open.nix, mesa-amd-opencl.nix
kernelConfig = ./modules/kernel/linux-cachyos.nix; # oder: linux-zen.nix, linux-default.nix
enableExtraGamingTweaks = true; # false für konservativere Defaults
Nicht sicher? Empfehlungen:
- AMD-GPU:
mesa-amd.nix+kde.nix - NVIDIA-GPU:
nvidia.nix+kde.nix - Modern/Wayland:
cosmic-max.nix(Achtung: weniger Gaming-optimiert als KDE) - Kernel:
linux-cachyos.nixfür Gaming,linux-zen.nixals konservative Alternative
5. System bauen
sudo nixos-rebuild switch --flake .#template
sudo reboot
Das war's! Nach dem Neustart startet euer neues System.
Weitere Infos
- Gaming-Setup & Customization: Siehe
docs/GAMING_CUSTOMIZATION_GUIDE.md - Zu COSMIC wechseln: Siehe
docs/COSMIC_SETUP_ANLEITUNG.md - Mehr Pakete installieren: Edit
modules/packages.nix
Vorlage anpassen
Die wichtigsten Platzhalter stehen direkt in configuration.nix:
hostName = "example-host";
userName = "gamer";
fullName = "Gaming User";
Passe diese Werte vor dem ersten Build an. In modules/base.nix sind Europe/Berlin, de_DE.UTF-8 und de als Defaults gesetzt und können überschrieben werden.
Zusätzliche allgemeine Pakete kannst du in modules/packages.nix eintragen.
Desktop und GPU auswählen
Die Auswahl passiert direkt oben in configuration.nix. Du änderst diese Zeilen:
desktopConfig = ./modules/desktop/kde.nix;
graphicsConfig = ./modules/graphics/mesa-amd.nix;
kernelConfig = ./modules/kernel/linux-cachyos.nix;
enableExtraGamingTweaks = true;
Für den Desktop sind diese Werte möglich:
./modules/desktop/kde.nix./modules/desktop/gnome.nix./modules/desktop/budgie.nix./modules/desktop/hyprland.nix./modules/desktop/cosmic.nix./modules/desktop/cosmic-max.nix
Für die GPU bzw. den Treiber sind diese Werte möglich:
./modules/graphics/mesa-amd.nix./modules/graphics/mesa-amd-opencl.nix./modules/graphics/nvidia.nix./modules/graphics/nvidia-open.nix
Beispiele:
KDE + AMD
desktopConfig = ./modules/desktop/kde.nix;
graphicsConfig = ./modules/graphics/mesa-amd.nix;
KDE + AMD mit OpenCL/AMDVLK
desktopConfig = ./modules/desktop/kde.nix;
graphicsConfig = ./modules/graphics/mesa-amd-opencl.nix;
GNOME + Nvidia
desktopConfig = ./modules/desktop/gnome.nix;
graphicsConfig = ./modules/graphics/nvidia.nix;
Hyprland + Nvidia
desktopConfig = ./modules/desktop/hyprland.nix;
graphicsConfig = ./modules/graphics/nvidia.nix;
KDE + Nvidia Open Kernel Module
desktopConfig = ./modules/desktop/kde.nix;
graphicsConfig = ./modules/graphics/nvidia-open.nix;
COSMIC (Modern Wayland-Native) + AMD
desktopConfig = ./modules/desktop/cosmic.nix;
graphicsConfig = ./modules/graphics/mesa-amd.nix;
COSMIC Max + AMD
desktopConfig = ./modules/desktop/cosmic-max.nix;
graphicsConfig = ./modules/graphics/mesa-amd.nix;
COSMIC Max + Nvidia
desktopConfig = ./modules/desktop/cosmic-max.nix;
graphicsConfig = ./modules/graphics/nvidia.nix;
Es wird dabei immer genau ein Desktop-Modul und genau ein Grafik-Modul importiert, nicht alle auf einmal.
In modules/graphics/nvidia.nix sind modesetting, nvidiaSettings und nvidiaPackages.latest bereits gesetzt.
Kernel auswählen
Der aktive Kernel wird in configuration.nix über kernelConfig gewählt. Standard in diesem Repo ist CachyOS:
kernelConfig = ./modules/kernel/linux-cachyos.nix;
Empfehlungen:
linux-cachyos.nix: beste Standardwahl für diesen Gaming-Desktoplinux-zen.nix: konservative Gaming-Alternative, wenn CachyOS Probleme machtlinux-default.nix: stabiler Fallbacklinux-hardened.nix: Security-Fokus, nicht ideal für Gaminglinux-xanmod.nix: experimenteller Performance-Kernel
Weitere Details stehen in docs/KERNEL_GAMING_TWEAKS.md.
Empfehlung für AMD
mesa-amd.nixist die einfachste und sinnvollste Standardwahl für die meisten Gaming-Systeme mit AMD.mesa-amd-opencl.nixist interessant, wenn du zusätzlich OpenCL/ROCm brauchst oder explizit AMDVLK testen willst.- Wenn du nur spielen willst und keinen speziellen Compute- oder Vulkan-Workaround brauchst, nimm zuerst
mesa-amd.nix.
Empfehlung für Nvidia
nvidia.nixist die Standardwahl für die meisten Systeme, wenn du maximale Kompatibilität mit aktuellen Spielen willst.nvidia-open.nixist für Systeme gedacht, auf denen du die offenen Nvidia-Kernel-Module nutzen möchtest.- Wenn du nicht gezielt testen willst, nimm zuerst
nvidia.nix.
Empfehlung für COSMIC
cosmic.nixist die schlanke COSMIC-Variante mit den wichtigsten Desktop-Helfern.cosmic-max.nixist die vollere COSMIC-Variante mit zusätzlichen COSMIC-Tools und Applets.- Geeignet für Linux-Puristen und AMD-Benutzer; mit XWayland-Fallback auch für NVIDIA möglich.
- Wenn du einfach nur COSMIC nutzen willst, starte mit
cosmic.nix. - Wenn du gezielt die COSMIC-Extras willst, nimm
cosmic-max.nix. - Gaming: 7/10 – Solide für Linux-Native und Proton-Spiele, aber weniger spezialisiert als KDE.
- Tipp: Für maximale Gaming-Kompatibilität und Tweakbarkeit nimm KDE Plasma statt COSMIC.
Wine und Proton
Die Wine-/Proton-Helfer liegen jetzt in modules/gaming/wine-proton.nix und werden automatisch über modules/gaming.nix importiert.
Enthalten sind aktuell:
wineWow64Packages.stablewinetricksprotontricksprotonplusumu-launcherdxvkvkd3d-protonsteam-run
Damit hast du direkt die typischen Werkzeuge für:
- Steam Proton mit
protontricks - zusätzliche Compatibility Tools über
protonplus - Wine-/Non-Steam-Starts über
umu-launcher - manuelles Debugging und Prefix-Arbeit mit
winetricks
Chaotic-Nyx & Mesa-Git
Die Flake bindet github:chaotic-cx/nyx/nyxpkgs-unstable direkt ein und importiert
chaotic.nixosModules.default.
Mesa-Git aktivieren/deaktivieren: Siehe modules/chaotic-nyx.nix und die Datei docs/MESA_GIT_ANLEITUNG.md.
Was ist Mesa-Git?
- Neueste tägliche GPU-Treiber-Builds von der Mesa-Entwicklung
- Ideal für moderne AMD-GPUs mit aktuellen Spielen
- Fallback-Option falls Probleme auftreten
- Wichtig: NVIDIA-Nutzer brauchen Mesa-Git nicht (benutzen proprietäre Treiber)
Nach der Installation
- Die vom Installer erzeugte
hardware-configuration.nixnach./hardware-configuration.nixkopieren. hostName,userNameundfullNameinconfiguration.nixanpassen.- In
configuration.nixdesktopConfigundgraphicsConfigauf die gewünschten Module setzen. - Optional Locale, Tastatur und Zeitzone anpassen.
- Passwort für den Benutzer setzen:
passwd <dein-userName>
- Optional die Flake-Inputs aktualisieren:
nix flake update
- System aktivieren:
sudo nixos-rebuild switch --flake .#template
Dokumentation & Guides
Alle Guides sind im docs/-Verzeichnis. Wähle basierend auf deinem Bedarf:
🚀 SETUP_FUER_FREUNDE.md – Hier anfangen!
Komplette Schritt-für-Schritt Anleitung für alle, die dieses Repo nutzen möchten:
- Was beim Klonen passiert
- Warum
flake.lockim Repo mit versioniert ist nixos-unstablevsnixos-stableerklärt- Kompletter Setup-Prozess (Phase 1-4)
- Häufige Probleme & Lösungen
- 👉 Hier sollten Freunde ZUERST nachschauen!
🏎️ CACHIX_ANLEITUNG.md – Schnellere Builds
Wie Cachix & vorkompilierte Pakete funktionieren:
- Was ist Cachix? (vorkompilierte Binaries)
- Warum ist es im Repo aktiviert?
- Performance: 90 Min → 15-30 Min (4-6x schneller!)
- Cache-Status prüfen
- Optional: Eigene Caches erstellen
- 👉 Wichtig zu wissen für schnellere Builds!
🎮 GAMING_CUSTOMIZATION_GUIDE.md – Gaming & Anpassung
Alles zum Gaming-Setup und Desktop-Customization:
- Steam & Proton einrichten
- GameMode & Performance-Tools
- Desktop-spezifische Customization (KDE, GNOME, Hyprland, COSMIC)
- Performance-Optimierungen
- Troubleshooting Spiele-Probleme
- 👉 Nachdem das System läuft, hier Tipps holen!
🚀 MESA_GIT_ANLEITUNG.md – GPU-Treiber
Erklärung von Mesa-Git (neueste GPU-Treiber):
- Was ist Mesa-Git? (Tägliche GPU-Treiber-Updates)
- Warum es in der Config ist
- Wie man es aktiviert/deaktiviert
- Fallback-Specialisation (Auto-Fallback bei Crashes)
- Performance-Unterschiede
- Für welche GPUs geeignet (AMD ja, NVIDIA nein)
- 👉 Für AMD-Nutzer interessant, NVIDIA-Nutzer können skippen!
🌀 COSMIC_SETUP_ANLEITUNG.md – COSMIC Desktop
Spezielle Anleitung für den Umstieg zu COSMIC DE:
- Installation & erste Einrichtung
- Gaming-Setup mit COSMIC
- Customization (Themes, Shortcuts, Tools)
- Troubleshooting
- 👉 Nur wenn ihr zu COSMIC wechseln möchtet!
⚙️ KERNEL_GAMING_TWEAKS.md – Kernel & Performance
Kernel-Auswahl und Gaming-Optimierungen:
- Linux Default, Zen, Hardened erklärt
- Kernel wechseln
- Gaming-Tweaks (CPU-Governor, Network-Buffer, etc.)
- Performance-Vergleich
- 👉 Für maximale Gaming-Performance!
📦 PODMAN_DISTROBOX.md – Container
Podman & Distrobox für Container-Workloads:
- Was ist Podman? (Docker-Ersatz)
- Was ist Distrobox? (einfache Container)
- Praktische Beispiele
- Troubleshooting
- 👉 Falls du Container brauchst (nicht für Gaming!)
Schnelle Orientierung
| Situation | Lies das... |
|---|---|
| Bin neu und weiß nicht, wo anfangen | SETUP_FUER_FREUNDE.md |
| Mein Build dauert zu lange | CACHIX_ANLEITUNG.md |
| Ich will zocken / customizen | GAMING_CUSTOMIZATION_GUIDE.md |
| Fragen zu GPU-Treibern | MESA_GIT_ANLEITUNG.md |
| Ich möchte zu COSMIC wechseln | COSMIC_SETUP_ANLEITUNG.md |
| Ich will Kernel / Gaming-Performance optimieren | KERNEL_GAMING_TWEAKS.md |
| Ich brauche Container (Podman/Distrobox) | PODMAN_DISTROBOX.md |
Späterer Ausbau
- Desktop-spezifische Pakete und Defaults weiter tunen, z. B. Autologin, Keyring-Policy, Flatpak
- OBS / Discord / OpenRGB-Profile / Fancontrol
- Btrfs-Subvolumes, Snapshots, Impermanence
- spezielle Kernel- oder Scheduler-Tweaks, falls du sie wirklich brauchst