Update
This commit is contained in:
@@ -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
@@ -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
@@ -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
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
@@ -9,6 +9,7 @@
|
||||
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
lact
|
||||
mesa-demos
|
||||
vulkan-tools
|
||||
];
|
||||
|
||||
@@ -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
|
||||
];
|
||||
}
|
||||
Reference in New Issue
Block a user