From NixOS Wiki
Jump to: navigation, search

iwd (iNet wireless daemon) is a Linux-only wireless daemon aiming to decrease the time spent making connections.


iwd can be enabled with the following snippet.

networking.wireless.iwd.enable = true;


Connections can be managed using the provided iwctl tool.


iwd as backend for NetworkManager

If iwd is present, it can be used as a backend for NetworkManager through the following snippet.

networking.networkmanager.wifi.backend = "iwd";

iwd as backend for Connman

Iwd could be use as a backend for Connman too.

services.connman.wifi.backend = "iwd";

Note that iwd is experimental and it does not have feature parity with the default backend, wpa_supplicant.


org.freedesktop.service failed

When connecting to a protected network it could happen that no password window appears and the following message is written in the journal:

dbus-daemon[1732]: [session uid=9001 pid=1730] Activated service 'org.freedesktop.secrets' failed: Failed to execute program org.freedesktop.secrets: No such file or directory

Your desktop manager may not enable some secrets management service you may need to enable one:

  services.gnome3.gnome-keyring.enable = true;

rfkill blocks wireless device

If the wi-fi connection is blocked by rf-kill, it it is needed to unblock the the wireless device. A way to do that with Nix is by using system.activationScripts.

  system.activationScripts = {
    rfkillUnblockWlan = {
      text = ''
      rfkill unblock wlan
      deps = [];