mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-06 01:38:06 +00:00
[Hardware/Nvidia] rework Nvidia driver selection with a more versatile "variant" option
This commit is contained in:
parent
8c76734e33
commit
1ab3401832
3 changed files with 13 additions and 4 deletions
|
|
@ -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" );
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 = {
|
||||||
|
|
|
||||||
|
|
@ -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 = [];
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue