annotate nvidia.nix @ 0:6b272b83e13f default tip

initial import
author Yasuri <linuxoverwindows@charliesmp.net>
date Sat, 05 Sep 2026 10:05:05 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
1 { pkgs, config, libs, ... }:
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
2
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
3 {
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
4
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
5
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
6
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
7 # Enable OpenGL
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
8 hardware.graphics.enable = true;
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
9
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
10 # Load nvidia driver for Xorg and Wayland
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
11 services.xserver.videoDrivers = ["nvidia"];
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
12
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
13 hardware.nvidia = {
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
14
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
15 # Modesetting is required.
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
16 modesetting.enable = true;
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
17
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
18 # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
19 powerManagement.enable = false;
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
20 # Fine-grained power management. Turns off GPU when not in use.
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
21 # Experimental and only works on modern Nvidia GPUs (Turing or newer).
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
22 powerManagement.finegrained = false;
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
23
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
24 # Use the NVidia open source kernel module (not to be confused with the
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
25 # independent third-party "nouveau" open source driver).
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
26 # Support is limited to the Turing and later architectures. Full list of
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
27 # supported GPUs is at:
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
28 # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
29 # Only available from driver 515.43.04+
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
30 # Currently alpha-quality/buggy, so false is currently the recommended setting.
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
31 open = false;
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
32
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
33 # Enable the Nvidia settings menu,
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
34 # accessible via `nvidia-settings`.
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
35 nvidiaSettings = true;
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
36
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
37 # Optionally, you may need to select the appropriate driver version for your specific GPU.
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
38 package = config.boot.kernelPackages.nvidiaPackages.stable;
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
39
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
40 prime = {
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
41 # Make sure to use the correct Bus ID values for your system!
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
42 intelBusId = "PCI:00:02.0";
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
43 nvidiaBusId = "PCI:01:00.0";
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
44 };
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
45
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
46 };
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
47
6b272b83e13f initial import
Yasuri <linuxoverwindows@charliesmp.net>
parents:
diff changeset
48 }