Files
nixos-vorlagen/README.md
T
2026-06-16 20:55:00 +02:00

13 KiB
Raw Blame History

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-git und 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 über nixos-unstable + chaotic-cx/nyx
  • configuration.nix: Host-spezifische Einstiegsdatei
  • modules/base.nix: Boot, Locale, Nix, Firmware, Governor, Basis-Tweaks
  • modules/packages.nix: zentraler Ort für eigene Zusatzpakete
  • modules/chaotic-nyx.nix: Chaotic-Nyx Aktivierung, allowUnfree, mesa-git
  • modules/graphics/mesa-amd.nix: AMDGPU + Mesa/RADV Basis
  • modules/graphics/mesa-amd-opencl.nix: AMD mit AMDVLK + OpenCL/ROCm
  • modules/graphics/nvidia.nix: Nvidia-Treiber Basis mit proprietären Modulen
  • modules/graphics/nvidia-open.nix: Nvidia mit offenen Kernel-Modulen
  • modules/audio/pipewire.nix: PipeWire, JACK, Pulse, Audio-Tools
  • modules/gaming.nix: Steam, Gamescope, Launcher-Stack
  • modules/gaming/wine-proton.nix: Wine-, Proton- und Compatibility-Tools
  • modules/containers/podman-distrobox.nix: Podman Container Runtime + Distrobox
  • modules/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-Performance
  • modules/kernel/linux-cachyos.nix: aktiver Gaming-Kernel in configuration.nix
  • modules/desktop/common.nix: gemeinsame Desktop-Pakete
  • modules/desktop/kde.nix: KDE Plasma 6 + SDDM
  • modules/desktop/gnome.nix: GNOME + GDM
  • modules/desktop/budgie.nix: Budgie
  • modules/desktop/hyprland.nix: Hyprland + SDDM
  • modules/desktop/cosmic.nix: schlanke COSMIC-Basis
  • modules/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.nix für Gaming, linux-zen.nix als 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

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-Desktop
  • linux-zen.nix: konservative Gaming-Alternative, wenn CachyOS Probleme macht
  • linux-default.nix: stabiler Fallback
  • linux-hardened.nix: Security-Fokus, nicht ideal für Gaming
  • linux-xanmod.nix: experimenteller Performance-Kernel

Weitere Details stehen in docs/KERNEL_GAMING_TWEAKS.md.

Empfehlung für AMD

  • mesa-amd.nix ist die einfachste und sinnvollste Standardwahl für die meisten Gaming-Systeme mit AMD.
  • mesa-amd-opencl.nix ist 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.nix ist die Standardwahl für die meisten Systeme, wenn du maximale Kompatibilität mit aktuellen Spielen willst.
  • nvidia-open.nix ist 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.nix ist die schlanke COSMIC-Variante mit den wichtigsten Desktop-Helfern.
  • cosmic-max.nix ist 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.stable
  • winetricks
  • protontricks
  • protonplus
  • umu-launcher
  • dxvk
  • vkd3d-proton
  • steam-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

  1. Die vom Installer erzeugte hardware-configuration.nix nach ./hardware-configuration.nix kopieren.
  2. hostName, userName und fullName in configuration.nix anpassen.
  3. In configuration.nix desktopConfig und graphicsConfig auf die gewünschten Module setzen.
  4. Optional Locale, Tastatur und Zeitzone anpassen.
  5. Passwort für den Benutzer setzen:
passwd <dein-userName>
  1. Optional die Flake-Inputs aktualisieren:
nix flake update
  1. 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.lock im Repo mit versioniert ist
  • nixos-unstable vs nixos-stable erklä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