mirror of
https://github.com/aviallon/nixos-lib.git
synced 2026-04-05 17:27:50 +00:00
52 lines
1 KiB
Nix
52 lines
1 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
myLib,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
cfg = config.aviallon.programs.nvtop;
|
|
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;
|
|
description = "Which nvtop package to use";
|
|
default = pkgs.nvtopPackages.amd;
|
|
type = myLib.types.package';
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
# If an Nvidia GPU is used, use the full nvtop package
|
|
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
|
|
];
|
|
};
|
|
}
|