[Programs/Nvtop] refactor to intelligently enable the required backends

This commit is contained in:
Antoine Viallon 2024-06-01 17:34:39 +02:00
parent 5fa9147e02
commit d9ea216ea8
Signed by: aviallon
GPG key ID: 186FC35EDEB25716
5 changed files with 23 additions and 9 deletions

View file

@ -5,6 +5,12 @@ let
in {
options.aviallon.programs.nvtop = {
enable = mkEnableOption "nvtop";
backend = mkOption {
description = "Which backend to enable";
type = with types; listOf (enum [ "nvidia" "amd" "intel" "panthor" "panfrost" "msm" ]);
default = [ "amd" ];
};
nvidia = mkEnableOption "Nvidia GPU with proprietary drivers is used";
package = mkOption {
internal = true;
@ -16,7 +22,11 @@ in {
config = mkIf cfg.enable {
# If an Nvidia GPU is used, use the full nvtop package
aviallon.programs.nvtop.package = mkIf cfg.nvidia pkgs.nvtop;
aviallon.programs.nvtop.package = mkDefault (
if (length cfg.backend > 1) then
pkgs.nvtopPackages.full
else pkgs.nvtopPackages.${elemAt cfg.backend 0}
);
environment.systemPackages = [
cfg.package