From 3c79a42686239c84ab6531f21f51882e4c622732 Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Tue, 30 Dec 2025 10:26:25 -0600 Subject: allow for configuring dhcp via networkd --- modules/services/nixos/networking/networkd.nix | 50 ++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 modules/services/nixos/networking/networkd.nix (limited to 'modules/services/nixos/networking/networkd.nix') diff --git a/modules/services/nixos/networking/networkd.nix b/modules/services/nixos/networking/networkd.nix new file mode 100644 index 0000000..df14a08 --- /dev/null +++ b/modules/services/nixos/networking/networkd.nix @@ -0,0 +1,50 @@ +{ + lib, + config, + ... +}: let + cfg = config.collinux.services.networking.networkd; + + dhcp_enabled = cfg.static == null; +in + lib.mkIf cfg.enable { + networking = { + wireless = { + enable = true; + networks.${cfg.ssid}.pskRaw = "ext:psk"; + secretsFile = cfg.pskFile; + }; + + # Disable default networking stuff + dhcpcd.enable = false; + useDHCP = false; + networkmanager.enable = false; + }; + + systemd.network = { + enable = true; + networks."10-static-lan" = { + name = "wl*"; + + networkConfig = + ( + if dhcp_enabled + then { + DHCP = "yes"; + } + else { + Address = cfg.static.ip; + Gateway = cfg.static.gateway; + # DNS is managed by systemd-resolvd + DHCP = "no"; + } + ) + // { + # diable ipv6 addresses + IPv6AcceptRA = "no"; + IPv6PrivacyExtensions = "no"; + LinkLocalAddressing = "no"; + }; + }; + }; + } -- cgit v1.3.1