diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-07-29 06:54:49 -0500 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2026-07-29 06:54:49 -0500 |
| commit | e29dd8a2283399b7e046937340509d5aec4b52ba (patch) | |
| tree | aa679e70fe55cb620698ab1695eadf23f8a2cdba /modules/networking/options.nix | |
| parent | d2aecd69c17fa64305c07333686576152432993d (diff) | |
changes
Diffstat (limited to 'modules/networking/options.nix')
| -rw-r--r-- | modules/networking/options.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/modules/networking/options.nix b/modules/networking/options.nix new file mode 100644 index 0000000..cc4864b --- /dev/null +++ b/modules/networking/options.nix @@ -0,0 +1,58 @@ +{ + lib, + my-lib, + ... +}: let + inherit (my-lib.netTypes {inherit lib;}) ipAddr ipAddrCidr; + inherit (lib) mkOption mkEnableOption; +in { + options.collinux.system.network = { + dns.areYouAServer = mkEnableOption "Set up unbound with the *.ganymede resolver and disable resolved stub"; + + 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; + }; + + wireless = { + static = lib.mkOption { + description = "Set a preconfigured SSID and PSK for the wireless config"; + type = lib.types.nullOr (lib.types.submodule { + options = { + 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"; + }; + }; + }); + default = null; + }; + dynamic = mkEnableOption "Enable dynamically joining wireless networks with iwd"; + }; + + wireguard = { + enable = mkEnableOption "Whether to enable Wireguard on this device"; + # peers = lib.types.listOf (lib.types.submodule { + # options = { + # }; + # }); + }; + }; +} |
