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/packages.nix`: zentraler Ort für eigene Zusatzpakete
|
||||||
- `modules/chaotic-nyx.nix`: Chaotic-Nyx Aktivierung, `allowUnfree`, `mesa-git`
|
- `modules/chaotic-nyx.nix`: Chaotic-Nyx Aktivierung, `allowUnfree`, `mesa-git`
|
||||||
- `modules/graphics/mesa-amd.nix`: AMDGPU + Mesa/RADV Basis
|
- `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/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/common.nix`: gemeinsame Desktop-Pakete
|
||||||
- `modules/desktop/kde.nix`: KDE Plasma 6 + SDDM
|
- `modules/desktop/kde.nix`: KDE Plasma 6 + SDDM
|
||||||
- `modules/desktop/gnome.nix`: GNOME + GDM
|
- `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.
|
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.
|
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
|
```nix
|
||||||
desktopConfig = ./modules/desktop/kde.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/kde.nix`
|
||||||
- `./modules/desktop/gnome.nix`
|
- `./modules/desktop/gnome.nix`
|
||||||
- `./modules/desktop/budgie.nix`
|
- `./modules/desktop/budgie.nix`
|
||||||
- `./modules/desktop/hyprland.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
|
```nix
|
||||||
|
desktopConfig = ./modules/desktop/kde.nix;
|
||||||
graphicsConfig = ./modules/graphics/mesa-amd.nix;
|
graphicsConfig = ./modules/graphics/mesa-amd.nix;
|
||||||
```
|
```
|
||||||
|
|
||||||
Mögliche Werte sind:
|
KDE + AMD mit OpenCL/AMDVLK
|
||||||
|
|
||||||
- `./modules/graphics/mesa-amd.nix`
|
```nix
|
||||||
- `./modules/graphics/nvidia.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
|
## 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.
|
1. Die vom Installer erzeugte `hardware-configuration.nix` nach `./hardware-configuration.nix` kopieren.
|
||||||
2. `hostName`, `userName` und `fullName` in `configuration.nix` anpassen.
|
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.
|
4. Optional Locale, Tastatur und Zeitzone anpassen.
|
||||||
5. Passwort für den Benutzer setzen:
|
5. Passwort für den Benutzer setzen:
|
||||||
|
|
||||||
|
|||||||
+6
-2
@@ -5,14 +5,18 @@ let
|
|||||||
userName = "gamer";
|
userName = "gamer";
|
||||||
fullName = "Gaming User";
|
fullName = "Gaming User";
|
||||||
|
|
||||||
# Desktop-Auswahl:
|
# Desktop auswählen, indem du genau diese Zeile änderst:
|
||||||
|
# ./modules/desktop/kde.nix
|
||||||
# ./modules/desktop/gnome.nix
|
# ./modules/desktop/gnome.nix
|
||||||
# ./modules/desktop/budgie.nix
|
# ./modules/desktop/budgie.nix
|
||||||
# ./modules/desktop/hyprland.nix
|
# ./modules/desktop/hyprland.nix
|
||||||
desktopConfig = ./modules/desktop/kde.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.nix
|
||||||
|
# ./modules/graphics/nvidia-open.nix
|
||||||
graphicsConfig = ./modules/graphics/mesa-amd.nix;
|
graphicsConfig = ./modules/graphics/mesa-amd.nix;
|
||||||
in
|
in
|
||||||
|
|
||||||
|
|||||||
+4
-6
@@ -1,6 +1,10 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
./gaming/wine-proton.nix
|
||||||
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
appimage = {
|
appimage = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -14,7 +18,6 @@
|
|||||||
dedicatedServer.openFirewall = true;
|
dedicatedServer.openFirewall = true;
|
||||||
localNetworkGameTransfers.openFirewall = true;
|
localNetworkGameTransfers.openFirewall = true;
|
||||||
gamescopeSession.enable = true;
|
gamescopeSession.enable = true;
|
||||||
protontricks.enable = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -23,13 +26,8 @@
|
|||||||
gamemode
|
gamemode
|
||||||
goverlay
|
goverlay
|
||||||
heroic
|
heroic
|
||||||
lact
|
|
||||||
lutris
|
lutris
|
||||||
mangohud
|
mangohud
|
||||||
prismlauncher
|
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" ];
|
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
lact
|
||||||
mesa-demos
|
mesa-demos
|
||||||
vulkan-tools
|
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