Files
homelab/modules/core/options.nix
T
2026-07-05 23:27:25 -05:00

95 lines
2.1 KiB
Nix

{
lib,
shared,
...
}:
{
options.homelab.core = {
kernel = lib.mkOption {
type = with lib.types; enum (builtins.attrNames shared.kernelOptions);
default = "lts";
description = "The kernel of the machine";
};
bootloader = {
type = lib.mkOption {
type = lib.types.enum [
"grub"
"systemd"
];
default = "grub";
description = "Which bootloader to use (grub or systemd-boot)";
};
grub = lib.mkOption {
type = lib.types.submodule {
options = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
};
device = lib.mkOption {
type = lib.types.str;
default = "nodev";
description = "Device to install GRUB on";
};
};
};
default = { };
description = "GRUB configuration block";
};
systemd = lib.mkOption {
type = lib.types.submodule {
options = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
};
efiSupport = lib.mkOption {
type = lib.types.bool;
default = true;
};
};
};
default = { };
description = "systemd-boot configuration block";
};
};
user = {
name = lib.mkOption {
type = lib.types.str;
default = "river";
description = "The username of the primary user";
};
fullName = lib.mkOption {
type = lib.types.str;
default = "Maaz Khokhar";
description = "The full name of the user";
};
shell = lib.mkOption {
type = with lib.types; listOf str;
default = "fish";
description = "The shell the primary user uses";
};
};
allowUnfree = lib.mkEnableOption {
enable = true;
default = true;
};
ssh = {
permitRootLogin = lib.mkEnableOption {
enable = true;
default = false;
};
};
};
}