Initial template repo
This commit is contained in:
@@ -0,0 +1,387 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
git clone <DIESES-REPO> ~/nixos-config
|
||||
cd ~/nixos-config
|
||||
```
|
||||
|
||||
### 2. Hardware-Konfiguration hinzufügen
|
||||
|
||||
Nach einer frischen NixOS-Installation:
|
||||
|
||||
```bash
|
||||
sudo cp /etc/nixos/hardware-configuration.nix ./hardware-configuration.nix
|
||||
```
|
||||
|
||||
### 3. Basis-Einstellungen anpassen (configuration.nix)
|
||||
|
||||
Öffnet `configuration.nix` und ändert diese Werte:
|
||||
|
||||
```nix
|
||||
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:
|
||||
|
||||
```nix
|
||||
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
|
||||
|
||||
```bash
|
||||
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`](docs/GAMING_CUSTOMIZATION_GUIDE.md)
|
||||
- **Zu COSMIC wechseln**: Siehe [`docs/COSMIC_SETUP_ANLEITUNG.md`](docs/COSMIC_SETUP_ANLEITUNG.md)
|
||||
- **Mehr Pakete installieren**: Edit `modules/packages.nix`
|
||||
|
||||
## 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 `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:
|
||||
|
||||
```nix
|
||||
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
|
||||
|
||||
```nix
|
||||
desktopConfig = ./modules/desktop/kde.nix;
|
||||
graphicsConfig = ./modules/graphics/mesa-amd.nix;
|
||||
```
|
||||
|
||||
KDE + AMD mit OpenCL/AMDVLK
|
||||
|
||||
```nix
|
||||
desktopConfig = ./modules/desktop/kde.nix;
|
||||
graphicsConfig = ./modules/graphics/mesa-amd-opencl.nix;
|
||||
```
|
||||
|
||||
GNOME + Nvidia
|
||||
|
||||
```nix
|
||||
desktopConfig = ./modules/desktop/gnome.nix;
|
||||
graphicsConfig = ./modules/graphics/nvidia.nix;
|
||||
```
|
||||
|
||||
Hyprland + Nvidia
|
||||
|
||||
```nix
|
||||
desktopConfig = ./modules/desktop/hyprland.nix;
|
||||
graphicsConfig = ./modules/graphics/nvidia.nix;
|
||||
```
|
||||
|
||||
KDE + Nvidia Open Kernel Module
|
||||
|
||||
```nix
|
||||
desktopConfig = ./modules/desktop/kde.nix;
|
||||
graphicsConfig = ./modules/graphics/nvidia-open.nix;
|
||||
```
|
||||
|
||||
COSMIC (Modern Wayland-Native) + AMD
|
||||
|
||||
```nix
|
||||
desktopConfig = ./modules/desktop/cosmic.nix;
|
||||
graphicsConfig = ./modules/graphics/mesa-amd.nix;
|
||||
```
|
||||
|
||||
COSMIC Max + AMD
|
||||
|
||||
```nix
|
||||
desktopConfig = ./modules/desktop/cosmic-max.nix;
|
||||
graphicsConfig = ./modules/graphics/mesa-amd.nix;
|
||||
```
|
||||
|
||||
COSMIC Max + Nvidia
|
||||
|
||||
```nix
|
||||
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:
|
||||
|
||||
```nix
|
||||
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`](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`](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:
|
||||
|
||||
```bash
|
||||
passwd <dein-userName>
|
||||
```
|
||||
|
||||
6. Optional die Flake-Inputs aktualisieren:
|
||||
|
||||
```bash
|
||||
nix flake update
|
||||
```
|
||||
|
||||
7. System aktivieren:
|
||||
|
||||
```bash
|
||||
sudo nixos-rebuild switch --flake .#template
|
||||
```
|
||||
|
||||
## Dokumentation & Guides
|
||||
|
||||
Alle Guides sind im `docs/`-Verzeichnis. Wähle basierend auf deinem Bedarf:
|
||||
|
||||
### 🚀 **[SETUP_FUER_FREUNDE.md](docs/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](docs/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](docs/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](docs/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](docs/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](docs/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](docs/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
|
||||
Reference in New Issue
Block a user