2024-07-14 21:07:02 +00:00
|
|
|
{ lib, config, ... }:
|
2024-07-11 19:58:46 +00:00
|
|
|
let
|
|
|
|
inherit (lib)
|
|
|
|
mkOption
|
|
|
|
types
|
|
|
|
;
|
2024-07-14 21:07:02 +00:00
|
|
|
|
|
|
|
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;
|
|
|
|
};
|
2024-07-11 20:10:57 +00:00
|
|
|
|
|
|
|
keyboardLayout = mkOption {
|
|
|
|
type = types.nullOr types.str;
|
|
|
|
description = "The X11 keyboard layout of the system.";
|
|
|
|
default = null;
|
|
|
|
};
|
2024-07-14 21:07:02 +00:00
|
|
|
|
|
|
|
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
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|