summaryrefslogtreecommitdiff
path: root/modules/nixos
diff options
context:
space:
mode:
authorseth <[email protected]>2024-09-04 09:03:16 -0400
committerseth <[email protected]>2024-09-04 13:27:46 -0400
commit05efcab310a2ae34f8c8c9b7d4c8d9358078b30b (patch)
tree29daaeb82370c3654afdbd8890ea9b30dc4423be /modules/nixos
parentf9afa0ea60b2937f2902663daf861e3138d686cc (diff)
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:
Diffstat (limited to 'modules/nixos')
-rw-r--r--modules/nixos/traits/nvidia.nix15
1 files changed, 9 insertions, 6 deletions
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;
};
}