2024-07-16 12:34:32 +00:00
|
|
|
{ lib, config, ... }:
|
2024-10-06 19:25:34 +00:00
|
|
|
let
|
2024-10-13 20:04:43 +00:00
|
|
|
inherit (lib) mkOption types;
|
2024-10-06 19:25:34 +00:00
|
|
|
cfg = config.valhalla;
|
|
|
|
in {
|
2024-10-13 18:15:40 +00:00
|
|
|
imports = [
|
2024-10-13 20:04:43 +00:00
|
|
|
./programs.nix
|
2024-10-13 18:15:40 +00:00
|
|
|
];
|
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
options = {
|
|
|
|
valhalla = {
|
|
|
|
software = let
|
|
|
|
inherit (cfg.software) coding common desktopExperience school server;
|
|
|
|
in {
|
|
|
|
essential = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether essentials should be installed.";
|
|
|
|
default = true;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
common = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether common software should be installed.";
|
|
|
|
default = true;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
server = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether server applications should be installed.";
|
|
|
|
default = false;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
desktopExperience = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether GUI apps should be installed.";
|
|
|
|
default = common && !server;
|
|
|
|
};
|
2024-07-16 12:36:53 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
fileSync = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether file syncs should be installed.";
|
|
|
|
default = common && !server;
|
|
|
|
};
|
2024-07-16 12:36:53 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
school = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether software for studies should be installed.";
|
|
|
|
default = false;
|
|
|
|
};
|
2024-07-17 12:18:27 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
productivity = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether productivity apps should be installed.";
|
|
|
|
default = common || school;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
socialMedia = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether social media apps should be installed.";
|
|
|
|
default = common && desktopExperience;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
media = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether media apps should be installed.";
|
|
|
|
default = common && desktopExperience;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
gaming = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether gaming apps should be installed.";
|
|
|
|
default = common && desktopExperience;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
coding = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether development apps should be installed.";
|
|
|
|
default = common;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
|
2024-10-06 19:25:34 +00:00
|
|
|
python = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
description = "A value indicating whether apps for coding python should be installed.";
|
|
|
|
default = coding;
|
|
|
|
};
|
2024-07-16 12:34:32 +00:00
|
|
|
};
|
|
|
|
};
|
2024-10-06 19:25:34 +00:00
|
|
|
};
|
|
|
|
}
|