70 lines
2 KiB
Nix
70 lines
2 KiB
Nix
|
{ lib, config, ... }:
|
||
|
let
|
||
|
inherit (lib)
|
||
|
mkOption
|
||
|
types
|
||
|
;
|
||
|
|
||
|
cfg = config.valhalla;
|
||
|
in {
|
||
|
options = {
|
||
|
valhalla = {
|
||
|
software =
|
||
|
let
|
||
|
inherit (cfg.software)
|
||
|
common
|
||
|
school
|
||
|
;
|
||
|
in {
|
||
|
essential = mkOption {
|
||
|
type = types.bool;
|
||
|
description = "A value indicating whether essentials should be installed.";
|
||
|
default = true;
|
||
|
};
|
||
|
|
||
|
common = mkOption {
|
||
|
type = types.bool;
|
||
|
description = "A value indicating whether common software should be installed.";
|
||
|
default = true;
|
||
|
};
|
||
|
|
||
|
school = mkOption {
|
||
|
type = types.bool;
|
||
|
description = "A value indicating whether software for studies should be installed.";
|
||
|
default = false;
|
||
|
};
|
||
|
|
||
|
productivity = mkOption {
|
||
|
type = types.bool;
|
||
|
description = "A value indicating whether productivity apps should be installed.";
|
||
|
default = common || school;
|
||
|
};
|
||
|
|
||
|
socialMedia = mkOption {
|
||
|
type = types.bool;
|
||
|
description = "A value indicating whether social media apps should be installed.";
|
||
|
default = common;
|
||
|
};
|
||
|
|
||
|
media = mkOption {
|
||
|
type = types.bool;
|
||
|
description = "A value indicating whether media apps should be installed.";
|
||
|
default = common;
|
||
|
};
|
||
|
|
||
|
gaming = mkOption {
|
||
|
type = types.bool;
|
||
|
description = "A value indicating whether gaming apps should be installed.";
|
||
|
default = common;
|
||
|
};
|
||
|
|
||
|
coding = mkOption {
|
||
|
type = types.bool;
|
||
|
description = "A value indicating whether development apps should be installed.";
|
||
|
default = common;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|