summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-05-15 19:00:20 +0300
committerKyren223 <Kyren223@proton.me>2025-05-15 19:00:20 +0300
commitde4af3398c5ef69a604f221436d74bbfc453359c (patch)
tree85ebf3e6949bbabffbe7af315497271cc1a6ccd3
parent884a6d1e92a7cf0ebd2997a3f0c1c202c0791607 (diff)
Added nvidia drivers for NixOS so the GPU will actually work properly
-rw-r--r--hosts/desktop.nix1
-rw-r--r--modules/desktop.nix7
-rw-r--r--modules/nvidia.nix42
3 files changed, 50 insertions, 0 deletions
diff --git a/hosts/desktop.nix b/hosts/desktop.nix
index ef02c63..1698ad3 100644
--- a/hosts/desktop.nix
+++ b/hosts/desktop.nix
@@ -5,6 +5,7 @@
../modules/common.nix
../modules/kde.nix
../modules/networking.nix
+ ../modules/desktop.nix
inputs.home-manager.nixosModules.default
];
diff --git a/modules/desktop.nix b/modules/desktop.nix
new file mode 100644
index 0000000..5956666
--- /dev/null
+++ b/modules/desktop.nix
@@ -0,0 +1,7 @@
+{ ... }: {
+
+ imports = [
+ ./nvidia.nix
+ ];
+
+}
diff --git a/modules/nvidia.nix b/modules/nvidia.nix
new file mode 100644
index 0000000..9d052ad
--- /dev/null
+++ b/modules/nvidia.nix
@@ -0,0 +1,42 @@
+{ config, ... }: {
+
+ # Enable OpenGL
+ hardware.graphics = {
+ enable = true;
+ };
+
+ # Load nvidia driver for Xorg and Wayland
+ services.xserver.videoDrivers = ["nvidia"];
+
+ hardware.nvidia = {
+
+ # Modesetting is required.
+ modesetting.enable = true;
+
+ # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
+ # Enable this if you have graphical corruption issues or application crashes after waking
+ # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
+ # of just the bare essentials.
+ powerManagement.enable = false;
+
+ # Fine-grained power management. Turns off GPU when not in use.
+ # Experimental and only works on modern Nvidia GPUs (Turing or newer).
+ powerManagement.finegrained = false;
+
+ # Use the NVidia open source kernel module (not to be confused with the
+ # independent third-party "nouveau" open source driver).
+ # Support is limited to the Turing and later architectures. Full list of
+ # supported GPUs is at:
+ # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
+ # Only available from driver 515.43.04+
+ open = false;
+
+ # Enable the Nvidia settings menu,
+ # accessible via `nvidia-settings`.
+ nvidiaSettings = true;
+
+ # Optionally, you may need to select the appropriate driver version for your specific GPU.
+ package = config.boot.kernelPackages.nvidiaPackages.stable;
+ };
+
+}