/ system / nixos / nvidia.nix
nvidia.nix
 1  {
 2    config,
 3    lib,
 4    pkgs,
 5    ...
 6  }:
 7  let
 8    cfg = config.dusk.system.nixos;
 9  in
10  {
11    config = lib.mkIf cfg.nvidia.enable {
12      boot.kernelParams = [ "nvidia_drm.fbdev=1" ];
13  
14      environment = {
15        sessionVariables = {
16          GBM_BACKEND = "nvidia-drm";
17          __GLX_VENDOR_LIBRARY_NAME = "nvidia";
18          NVD_BACKEND = "direct";
19        };
20  
21        systemPackages = with pkgs; [ nvtopPackages.nvidia ];
22      };
23  
24      hardware = {
25        graphics = {
26          enable = true;
27          extraPackages = with pkgs; [ vaapiVdpau ];
28        };
29  
30        nvidia = {
31          package = config.boot.kernelPackages.nvidiaPackages.beta;
32          open = false;
33          gsp.enable = true;
34          forceFullCompositionPipeline = false;
35          modesetting.enable = true;
36          powerManagement = {
37            enable = true;
38            finegrained = false;
39          };
40        };
41  
42        nvidia-container-toolkit.enable = cfg.virtualisation.enable;
43      };
44  
45      services.xserver.videoDrivers = [ "nvidia" ];
46    };
47  }