diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-01-29 20:15:19 -0600 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-01-30 08:38:21 -0600 |
| commit | c9a1d2da80bca0a85e8c18f6d2db71c4d1127eda (patch) | |
| tree | 9da79e318ff0533a3708aee85a0b6a6d7f1d1036 /modules/system/options.nix | |
| parent | c81952cbcb6c6f1b41c2b6e2a366891991cceaee (diff) | |
Spring Cleaning
- create new module, `system`, that consumes the `boot` module and takes
in the more system-interested services from the `services` module
- touch up left over services (which are more self-hosting interested)
- touch up yo and yoshi configs
Diffstat (limited to 'modules/system/options.nix')
| -rw-r--r-- | modules/system/options.nix | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/modules/system/options.nix b/modules/system/options.nix new file mode 100644 index 0000000..72d0392 --- /dev/null +++ b/modules/system/options.nix @@ -0,0 +1,68 @@ +{ + lib, + my-lib, + config, + ... +}: let + inherit (lib) mkOption mkEnableOption; + inherit (my-lib.netTypes {inherit lib;}) ipAddr ipAddrCidr; + inherit (my-lib.options {inherit lib config;}) mkThemeOption; +in { + options.collinux.system = { + boot = { + systemd-boot.enable = mkOption { + description = "Whether to use systemd-boot on this system"; + default = true; + }; + timeout = mkOption { + description = "bootloader timeout"; + type = lib.types.int; + default = 0; + }; + plymouth = { + enable = mkEnableOption "plymouth bootsplash"; + theme = mkThemeOption "plymouth"; + }; + secureBoot.enable = mkEnableOption "lanzaboote"; + }; + + network = { + iwd.enable = mkEnableOption "lightweight wifi daemon"; + networkmanager.enable = mkEnableOption "heavier wifi daemon"; + networkd = { + enable = mkEnableOption "use systemd-networkd"; + ssid = mkOption { + description = "SSID for this network"; + type = lib.types.str; + }; + pskFile = mkOption { + description = "Absolute path to a file containing the pre-shared key for this network in the form `psk:<wifi psk>`"; + type = lib.types.str; + example = "/run/secrets.d/wifi-psk"; + }; + + static = lib.mkOption { + description = "Set a static IP address for this device on this network. Leave unset to use DHCP"; + type = lib.types.nullOr (lib.types.submodule { + options = { + ip = mkOption { + description = "IP address"; + type = ipAddrCidr; + }; + gateway = mkOption { + description = "default gateway"; + type = ipAddr; + }; + }; + }); + default = null; + }; + }; + + tailscale.enable = mkEnableOption "tailscale"; + }; + + audio.enable = mkEnableOption "pipewire and wireplumber"; + bluetooth.enable = mkEnableOption "bluetooth"; + }; +} |
