[Hardware/Nvidia] rework Nvidia driver selection with a more versatile "variant" option

This commit is contained in:
Antoine Viallon 2023-10-31 23:24:30 +01:00
parent 8c76734e33
commit 1ab3401832
Signed by: aviallon
GPG key ID: 186FC35EDEB25716
3 changed files with 13 additions and 4 deletions

View file

@ -13,13 +13,23 @@ in {
options.aviallon.hardware.nvidia = { options.aviallon.hardware.nvidia = {
enable = mkEnableOption "enable Nvidia hardware config"; enable = mkEnableOption "enable Nvidia hardware config";
useProprietary = mkEnableOption "nvidia proprietary drivers"; useProprietary = mkEnableOption "nvidia proprietary drivers" // {
default = (cfg.variant == "proprietary");
};
variant = mkOption {
type = with types; enum [ "proprietary" "open" "nouveau" ];
description = "What driver variant to use";
default = "proprietary";
example = "nouveau";
};
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
hardware.opengl.driSupport32Bit = true; hardware.opengl.driSupport32Bit = true;
aviallon.programs.nvtop.enable = true; aviallon.programs.nvtop.enable = true;
aviallon.hardware.nvidia.useProprietary = mkForce ( cfg.variant == "proprietary" );
}; };
} }

View file

@ -3,7 +3,7 @@ with lib;
let let
cfg = config.aviallon.hardware.nvidia; cfg = config.aviallon.hardware.nvidia;
in { in {
config = mkIf (cfg.enable && !cfg.useProprietary) { config = mkIf (cfg.enable && cfg.variant == "nouveau") {
boot.initrd.kernelModules = [ "nouveau" ]; boot.initrd.kernelModules = [ "nouveau" ];
aviallon.boot.cmdline = { aviallon.boot.cmdline = {

View file

@ -11,7 +11,6 @@ let
in { in {
options = { options = {
aviallon.hardware.nvidia.proprietary = { aviallon.hardware.nvidia.proprietary = {
#enable = mkEnableOption "Wether to user NVidia proprietary drivers";
gsync = mkEnableOption "Screen is GSYNC monitor"; gsync = mkEnableOption "Screen is GSYNC monitor";
vsync = mkOption { vsync = mkOption {
description = "Wether to enable or disable vsync"; description = "Wether to enable or disable vsync";
@ -38,7 +37,7 @@ in {
}; };
}; };
config = mkIf (cfg.enable && cfg.useProprietary) { config = mkIf (cfg.enable && cfg.variant == "proprietary") {
assertions = []; assertions = [];