From 6dcd036bc3f6f3c610edafc4764651d84c4ca431 Mon Sep 17 00:00:00 2001 From: NullBite Date: Fri, 29 Dec 2023 04:37:47 -0500 Subject: [PATCH] Install NVIDIA driver on desktop --- flake.nix | 1 + fragments/hardware/nvidia-modeset.nix | 37 +++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 fragments/hardware/nvidia-modeset.nix diff --git a/flake.nix b/flake.nix index cddca88..da09cbb 100644 --- a/flake.nix +++ b/flake.nix @@ -27,6 +27,7 @@ ./hosts/nullbox/configuration.nix ./roles/remote.nix ./roles/desktop.nix + ./fragments/hardware/nvidia-modeset.nix ]; }; }; diff --git a/fragments/hardware/nvidia-modeset.nix b/fragments/hardware/nvidia-modeset.nix new file mode 100644 index 0000000..04d2dbd --- /dev/null +++ b/fragments/hardware/nvidia-modeset.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, ...}: +{ + imports = [ + ../opengl.nix + ]; + + # Load nvidia driver for Xorg and Wayland + services.xserver.videoDrivers = ["nvidia"]; + + hardware.nvidia = { + + # Modesetting is required. + modesetting.enable = lib.mkDefault true; + + # Nvidia power management. Experimental, and can cause sleep/suspend to fail. + powerManagement.enable = lib.mkDefault 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 = lib.mkDefault 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+ + # Currently alpha-quality/buggy, so false is currently the recommended setting. + open = lib.mkDefault false; + + # Enable the Nvidia settings menu, + # accessible via `nvidia-settings`. + nvidiaSettings = lib.mkDefault true; + + # Optionally, you may need to select the appropriate driver version for your specific GPU. + package = lib.mkDefault config.boot.kernelPackages.nvidiaPackages.stable; + }; +}