Files
nixos/README.md
T
2026-06-10 19:34:36 +02:00

112 lines
3.6 KiB
Markdown

# 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 und Hyprland
## Struktur
- `flake.nix`: Einstieg über `nixos-unstable` + `chaotic-cx/nyx`
- `configuration.nix`: Host-spezifische Einstiegsdatei
- `modules/base.nix`: Boot, Kernel, Locale, Nix, Firmware, Governor
- `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/nvidia.nix`: Nvidia-Treiber Basis
- `modules/audio/pipewire.nix`: PipeWire, JACK, Pulse, Audio-Tools
- `modules/gaming.nix`: Steam, Gamescope, Wine/Launcher-Stack
- `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/peripherals.nix`: RGB-, Maus- und USB-Helfer
## Vorlage anpassen
Die wichtigsten Platzhalter stehen direkt in `configuration.nix`:
```nix
hostName = "example-host";
userName = "gamer";
fullName = "Gaming User";
```
Passe diese Werte vor dem ersten Build an. In `modules/base.nix` sind `UTC`, `en_US.UTF-8` und `us` als neutrale Defaults gesetzt und können ebenfalls überschrieben werden.
Zusätzliche allgemeine Pakete kannst du in `modules/packages.nix` eintragen.
## Desktop auswählen
Die Auswahl passiert zentral in `configuration.nix` über `desktopConfig`:
```nix
desktopConfig = ./modules/desktop/kde.nix;
```
Mögliche Werte sind:
- `./modules/desktop/kde.nix`
- `./modules/desktop/gnome.nix`
- `./modules/desktop/budgie.nix`
- `./modules/desktop/hyprland.nix`
Es wird damit immer genau ein Desktop-Modul importiert, nicht alle auf einmal.
## Grafiktreiber auswählen
Die Grafik-Konfiguration läuft genauso über `graphicsConfig`:
```nix
graphicsConfig = ./modules/graphics/mesa-amd.nix;
```
Mögliche Werte sind:
- `./modules/graphics/mesa-amd.nix`
- `./modules/graphics/nvidia.nix`
In `modules/graphics/nvidia.nix` sind `modesetting`, `nvidiaSettings` und das stabile Treiberpaket bereits gesetzt.
## Chaotic-Nyx Hinweis
Die Flake bindet `github:chaotic-cx/nyx/nyxpkgs-unstable` direkt ein und importiert
`chaotic.nixosModules.default`.
`modules/chaotic-nyx.nix` aktiviert `chaotic.mesa-git.enable = true;`.
## 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. Gewünschten Desktop und ggf. Grafiktreiber in `configuration.nix` auswählen.
4. Optional Locale, Tastatur und Zeitzone anpassen.
5. Passwort für den Benutzer setzen:
```bash
passwd <dein-userName>
```
6. Flake lock erstellen:
```bash
nix flake lock
```
7. System aktivieren:
```bash
sudo nixos-rebuild switch --flake .#template
```
## 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