This commit is contained in:
2026-06-10 19:59:29 +02:00
parent bb427145df
commit 118a00f6d7
7 changed files with 163 additions and 21 deletions
+81 -13
View File
@@ -18,9 +18,12 @@ Diese Basis-Config ist als wiederverwendbare Vorlage für ein NixOS-Gaming-Deskt
- `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/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, Wine/Launcher-Stack
- `modules/gaming.nix`: Steam, Gamescope, Launcher-Stack
- `modules/gaming/wine-proton.nix`: Wine-, Proton- und Compatibility-Tools
- `modules/desktop/common.nix`: gemeinsame Desktop-Pakete
- `modules/desktop/kde.nix`: KDE Plasma 6 + SDDM
- `modules/desktop/gnome.nix`: GNOME + GDM
@@ -41,37 +44,102 @@ 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
## Desktop und GPU auswählen
Die Auswahl passiert zentral in `configuration.nix` über `desktopConfig`:
Die Auswahl passiert direkt oben in `configuration.nix`. Du änderst nur diese beiden Zeilen:
```nix
desktopConfig = ./modules/desktop/kde.nix;
graphicsConfig = ./modules/graphics/mesa-amd.nix;
```
Mögliche Werte sind:
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`
Es wird damit immer genau ein Desktop-Modul importiert, nicht alle auf einmal.
Für die GPU bzw. den Treiber sind diese Werte möglich:
## Grafiktreiber auswählen
- `./modules/graphics/mesa-amd.nix`
- `./modules/graphics/mesa-amd-opencl.nix`
- `./modules/graphics/nvidia.nix`
- `./modules/graphics/nvidia-open.nix`
Die Grafik-Konfiguration läuft genauso über `graphicsConfig`:
Beispiele:
KDE + AMD
```nix
desktopConfig = ./modules/desktop/kde.nix;
graphicsConfig = ./modules/graphics/mesa-amd.nix;
```
Mögliche Werte sind:
KDE + AMD mit OpenCL/AMDVLK
- `./modules/graphics/mesa-amd.nix`
- `./modules/graphics/nvidia.nix`
```nix
desktopConfig = ./modules/desktop/kde.nix;
graphicsConfig = ./modules/graphics/mesa-amd-opencl.nix;
```
In `modules/graphics/nvidia.nix` sind `modesetting`, `nvidiaSettings` und das stabile Treiberpaket bereits gesetzt.
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;
```
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.
### 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`.
## 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:
- `wineWowPackages.stable`
- `winetricks`
- `protontricks`
- `protonup-qt`
- `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 `protonup-qt`
- Wine-/Non-Steam-Starts über `umu-launcher`
- manuelles Debugging und Prefix-Arbeit mit `winetricks`
## Chaotic-Nyx Hinweis
@@ -83,7 +151,7 @@ Die Flake bindet `github:chaotic-cx/nyx/nyxpkgs-unstable` direkt ein und importi
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.
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:
+6 -2
View File
@@ -5,14 +5,18 @@ let
userName = "gamer";
fullName = "Gaming User";
# Desktop-Auswahl:
# Desktop auswählen, indem du genau diese Zeile änderst:
# ./modules/desktop/kde.nix
# ./modules/desktop/gnome.nix
# ./modules/desktop/budgie.nix
# ./modules/desktop/hyprland.nix
desktopConfig = ./modules/desktop/kde.nix;
# Grafiktreiber-Auswahl:
# GPU/Treiber auswählen, indem du genau diese Zeile änderst:
# ./modules/graphics/mesa-amd.nix
# ./modules/graphics/mesa-amd-opencl.nix
# ./modules/graphics/nvidia.nix
# ./modules/graphics/nvidia-open.nix
graphicsConfig = ./modules/graphics/mesa-amd.nix;
in
+4 -6
View File
@@ -1,6 +1,10 @@
{ pkgs, ... }:
{
imports = [
./gaming/wine-proton.nix
];
programs = {
appimage = {
enable = true;
@@ -14,7 +18,6 @@
dedicatedServer.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession.enable = true;
protontricks.enable = true;
};
};
@@ -23,13 +26,8 @@
gamemode
goverlay
heroic
lact
lutris
mangohud
prismlauncher
protontricks
steam-run
wineWowPackages.stable
winetricks
];
}
+20
View File
@@ -0,0 +1,20 @@
{ pkgs, ... }:
{
programs.steam.protontricks.enable = true;
environment.systemPackages = with pkgs; [
dxvk
protontricks
protonplus
steam-run
umu-launcher
vkd3d-proton
wineWowPackages.stable
winetricks
];
environment.sessionVariables = {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "$HOME/.steam/root/compatibilitytools.d";
};
}
+29
View File
@@ -0,0 +1,29 @@
{ pkgs, ... }:
{
hardware.graphics = {
enable = true;
enable32Bit = true;
extraPackages = [
pkgs.amdvlk
pkgs.rocmPackages.clr
pkgs.rocmPackages.clr.icd
];
extraPackages32 = [
pkgs.driversi686Linux.amdvlk
];
};
services.xserver.videoDrivers = [ "amdgpu" ];
hardware.amdgpu = {
initrd.enable = true;
opencl.enable = true;
};
environment.systemPackages = with pkgs; [
lact
mesa-demos
vulkan-tools
];
}
+1
View File
@@ -9,6 +9,7 @@
services.xserver.videoDrivers = [ "amdgpu" ];
environment.systemPackages = with pkgs; [
lact
mesa-demos
vulkan-tools
];
+22
View File
@@ -0,0 +1,22 @@
{ config, pkgs, ... }:
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia = {
modesetting.enable = true;
nvidiaSettings = true;
open = true;
package = config.boot.kernelPackages.nvidiaPackages.latest;
};
environment.systemPackages = with pkgs; [
mesa-demos
vulkan-tools
];
}