Skip to content

iwd 🔹

Automatically provisions wifi credentials

Categories

Network

Warning

If you've been using network manager + wpa_supplicant and now are switching to IWD read this migration guide: https://iwd.wiki.kernel.org/networkmanager#converting_network_profiles

Usage via Inventory

Roles

This module can be used via predefined roles

- `default`

Every role has its own configuration options. Which are each listed below.

For more information, see the inventory guide.

Example

For example the admin module adds the following options globally to all machines where it is used.

clan.admin.allowedkeys

This means there are two equivalent ways to set the allowedkeys option. Either via a nixos module or via the inventory interface. But it is recommended to keep together imports and config to preserve locality of the module configuration.

clan-core.lib.buildClan {
    inventory.services = {
        admin.me = {
            roles.default.machines = [ "jon" ];
            config.allowedkeys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD..." ];
        };
    };
};
clan-core.lib.buildClan {
    machines = {
        jon = {
            clan.admin.allowedkeys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQD..." ];
            imports = [ clanModules.admin ];
        };
    };
};

Options of default role

The following options are available when using the default role.

clan.iwd.networks

Wifi networks to predefine

Type: attribute set of (submodule)

Default:

{ }

default.nix

clan.iwd.networks.<name>.AutoConnect

Automatically try to join this wifi network

Type: boolean

Default:

true

default.nix

clan.iwd.networks.<name>.ssid

The name of the wifi network

Type: string

Default:

"‹name›"

default.nix

Usage via Nix

This module can be also imported directly in your nixos configuration. Although it is recommended to use the inventory interface if available.

Some modules are considered 'low-level' or 'expert modules' and are not available via the inventory interface.

{config, lib, inputs, ...}: {
    imports = [ inputs.clan-core.clanModules.iwd ];
    # ...
}

Module Options

The following options are available for this module.

clan.iwd.networks

Wifi networks to predefine

Type: attribute set of (submodule)

Default:

{ }

default.nix

clan.iwd.networks.<name>.AutoConnect

Automatically try to join this wifi network

Type: boolean

Default:

true

default.nix

clan.iwd.networks.<name>.ssid

The name of the wifi network

Type: string

Default:

"‹name›"

default.nix