From 05efcab310a2ae34f8c8c9b7d4c8d9358078b30b Mon Sep 17 00:00:00 2001 From: seth Date: Wed, 4 Sep 2024 09:03:16 -0400 Subject: nixos/nvidia: use nixpkgs defaults; set `hardware.nvidia.open` nixpkgs now requires the user to explicitly define whether or not to use the open modules, as they will not be supported for some cards. i can make this true by default though :normal: --- modules/nixos/traits/nvidia.nix | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'modules/nixos/traits') diff --git a/modules/nixos/traits/nvidia.nix b/modules/nixos/traits/nvidia.nix index 517d023..dab26c8 100644 --- a/modules/nixos/traits/nvidia.nix +++ b/modules/nixos/traits/nvidia.nix @@ -1,25 +1,28 @@ { config, lib, ... }: let cfg = config.traits.nvidia; - usingNvidia = lib.elem "nvidia" config.services.xserver.videoDrivers; in { options.traits.nvidia = { enable = lib.mkEnableOption "NVIDIA drivers"; - nvk.enable = lib.mkEnableOption "NVK specialisation"; + + openModules.enable = lib.mkEnableOption "open kernel modules for the proprietary driver" // { + # unlike nixpkgs, i know all of my nvidia cards should prefer the open modules after 560 + default = lib.versionAtLeast config.hardware.nvidia.package.version "560"; + }; + + nvk.enable = lib.mkEnableOption "an NVK specialisation"; }; config = lib.mkIf cfg.enable ( lib.mkMerge [ { - # NOTE: this is experiemental - boot.kernelParams = lib.optional usingNvidia "nvidia_drm.fbdev=1"; - services.xserver.videoDrivers = [ "nvidia" ]; hardware.nvidia = { package = lib.mkDefault config.boot.kernelPackages.nvidiaPackages.latest; - modesetting.enable = true; + + open = cfg.openModules.enable; }; } -- cgit v1.2.3