mirror of
https://github.com/alyraffauf/nixcfg.git
synced 2024-11-24 14:11:55 -05:00
1.4 KiB
1.4 KiB
common
Overview
Common modules for my nix hosts that aren't better expressed as options & flake outputs.
Declarative WiFi Connections
WiFi networks can be configured declaratiely in wifi.nix
using config.networking.networkmanager.ensureProfiles.profiles
, provided by nixpkgs. I also provide helper functions for common wifi security types.
nm2nix can generate nix code for all WiFi networks currently configured in /etc/NetworkManager/system-connections/
and /run/NetworkManager/system-connections
with the following command:
sudo su -c "cd /etc/NetworkManager/system-connections && nix --extra-experimental-features 'nix-command flakes' run github:Janik-Haag/nm2nix | nix --extra-experimental-features 'nix-command flakes' run nixpkgs#nixfmt-rfc-style"
Secrets (passwords, certificates, and identities) are supported, but must be declared and available as variables with agenix. They will be replaced upon activation with envsubst
.
In short,
- Manually configure the WiFi network on one device.
- Export configuration to nix with
nm2nix
. - Add secrets to
secrets/wifi.age
as variables (e.g.MYPSK=1234567890
) - Edit the code generated by
nm2nix
to reference$MYPSK
instead of directly declaring the WPA password. - Commit and push changes.
- Rebuild hosts as required to propogate your new WiFi configuration.