Skip to content

Networking

WiFi with iwd

The laptop uses iwd (iNet Wireless Daemon) instead of wpa_supplicant or NetworkManager:

nix
networking.wireless.iwd = {
  enable = true;
  settings = {
    general = {
      EnableNetworkConfiguration = true;
      AddressRandomization = "network";
    };
    network = {
      NameResolvingService = "resolvconf";
    };
  };
};

Configuration Details

SettingValueEffect
EnableNetworkConfigurationtrueiwd handles DHCP directly (no NetworkManager needed)
AddressRandomization"network"MAC address is randomised per network SSID
NameResolvingService"resolvconf"DNS resolution via resolvconf

MAC Randomisation

The "network" randomisation mode generates a persistent random MAC for each SSID. This means:

  • You get a different MAC on every network you connect to.
  • The MAC is stable for a given SSID (so DHCP leases persist).
  • Your hardware MAC is never exposed on the air.

Why iwd over NetworkManager?

iwd is leaner (single binary, no D-Bus dependency for basic operation) and handles network configuration natively without needing a separate DHCP client.

IPv6

IPv6 is disabled:

nix
networking.enableIPv6 = false;

WiFi Management

The impala TUI is included in packages for interactive WiFi management:

bash
impala  # Launch WiFi TUI

For command-line management, use iwctl directly:

bash
iwctl station wlan0 scan
iwctl station wlan0 get-networks
iwctl station wlan0 connect "SSID"