{lib, ...}: { networking = { # It's a little too much to define every WiFi network declaratively. # Instead, we enable NetworkManager and the nmtui interface. networkmanager = { enable = true; dns = lib.mkForce "none"; # see modules/base/network.nix }; }; # Allow our user to configure the network users.groups.networkmanager.members = ["caspervk"]; # Persist WiFi passwords and other network configuration environment.persistence."/nix/persist" = { directories = [ { directory = "/etc/NetworkManager/system-connections"; user = "root"; group = "root"; mode = "0700"; } ]; }; # systemd-networkd-wait-online can timeout and fail if there are no network # interfaces available for it to manage. When systemd-networkd is enabled but # a different service is responsible for managing the system's internet # connection (for example, NetworkManager), this service is unnecessary and # can be disabled. # https://search.nixos.org/options?channel=24.05&show=systemd.network.wait-online.enable systemd.network.wait-online.enable = false; }