modules/graphics: add support for NVIDIA

main
Felix Stupp 1 year ago
parent b24fdd1a98
commit c3b40967d4
Signed by: zocker
GPG Key ID: 93E1BD26F6B02FB7

@ -19,6 +19,11 @@ in
intel.enable = lib.mkEnableOption "Intel graphic drivers";
nvidia = {
enable = lib.mkEnableOption "Nvidia graphic drivers (meaning newest drivers by default)";
open = lib.mkEnableOption "open-source kernel module in favor of (check [NixOS Wiki](https://wiki.nixos.org/wiki/Nvidia))";
};
};
};
@ -28,7 +33,7 @@ in
{
assertions = [
{
assertion = cfg.required -> cfg.amd.enable || cfg.intel.enable;
assertion = cfg.required -> cfg.amd.enable || cfg.intel.enable || cfg.nvidia.enable;
message = "'hardware.graphics.required' not fullfilled by any of 'hardware.graphics.*.enable'";
}
];
@ -57,6 +62,30 @@ in
};
})
# source: https://wiki.nixos.org/wiki/Nvidia
(lib.mkIf cfg.nvidia.enable {
hardware = {
# TODO set priority per case
nvidia = lib.mkDefault {
modesetting.enable = true;
powerManagement.enable = false;
powerManagement.finegrained = false;
open = cfg.nvidia.open;
nvidiaSettings = true;
# TODO select driver based on GPU generation
};
opengl = {
enable = true;
};
};
services.xserver.videoDrivers = lib.singleton "nvidia";
x-banananetwork.autoUnfree.names = [
"nvidia-persistenced"
"nvidia-settings"
"nvidia-x11"
];
})
];
}

Loading…
Cancel
Save