Kieran's opinionated (and probably slightly dumb) nix config
wifi#
Declarative Wi-Fi profile manager using NetworkManager. Supports three ways to supply passwords and has built-in eduroam (WPA-EAP) support.
Options#
All options under atelier.network.wifi:
| Option | Type | Default | Description |
|---|---|---|---|
enable |
bool | false |
Enable Wi-Fi management |
hostName |
string | — | Sets networking.hostName |
nameservers |
list of strings | [] |
Custom DNS servers |
envFile |
path | — | Environment file providing PSK variables for all profiles |
Profiles#
Defined under atelier.network.wifi.profiles.<ssid>:
| Option | Type | Default | Description |
|---|---|---|---|
psk |
string or null | null |
Literal WPA-PSK passphrase |
pskVar |
string or null | null |
Environment variable name containing the PSK (from envFile) |
pskFile |
path or null | null |
Path to file containing the PSK |
eduroam |
bool | false |
Use WPA-EAP with MSCHAPV2 (for eduroam networks) |
identity |
string or null | null |
EAP identity (required when eduroam = true) |
Only one of psk, pskVar, or pskFile should be set per profile.
Example#
atelier.network.wifi = {
enable = true;
hostName = "moonlark";
nameservers = [ "1.1.1.1" "8.8.8.8" ];
envFile = config.age.secrets.wifi.path;
profiles = {
"Home Network" = {
pskVar = "HOME_PSK"; # read from envFile
};
"eduroam" = {
eduroam = true;
identity = "user@university.edu";
pskVar = "EDUROAM_PSK";
};
"Phone Hotspot" = {
pskFile = config.age.secrets.hotspot.path;
};
};
};