PortValhalla/lib/modules/valhalla.nix

108 lines
2.9 KiB
Nix
Raw Normal View History

{ lib, config, ... }:
2024-07-11 19:58:46 +00:00
let
inherit (lib)
mkOption
types
;
cfg = config.valhalla;
2024-07-11 19:58:46 +00:00
in {
imports = [
2024-07-15 12:11:44 +00:00
./git.nix
2024-07-11 19:58:46 +00:00
./i18n.nix
./partition.nix
];
options = {
valhalla = {
2024-07-13 07:52:30 +00:00
setupUser = {
name = mkOption {
type = types.str;
description = "The name of the user used to set up the system.";
default = "heimdall";
};
id = mkOption {
type = types.int;
description = "The UID of the user used to set up the system.";
default = 420;
};
};
2024-07-11 19:58:46 +00:00
timeZone = mkOption {
type = types.nullOr types.str;
description = "The time zone of the system.";
default = null;
};
2024-07-11 20:05:36 +00:00
keyMap = mkOption {
type = types.nullOr types.str;
description = "The console key map of the system.";
default = null;
};
keyboardLayout = mkOption {
type = types.nullOr types.str;
description = "The X11 keyboard layout of the system.";
default = null;
};
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;
};
};
2024-07-11 19:58:46 +00:00
};
};
}