wifi: Make more user-friendly
This commit is contained in:
parent
097d53807d
commit
ee4e45905a
5 changed files with 65 additions and 30 deletions
54
os/wireless/default.nix
Normal file
54
os/wireless/default.nix
Normal file
|
@ -0,0 +1,54 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
(pkgs.writeShellApplication {
|
||||
name = "install-wifi";
|
||||
text = ''
|
||||
temp="$(mktemp --directory --suffix="-install-wifi")"
|
||||
cd "$temp"
|
||||
${
|
||||
pkgs.writers.writePython3 "install-wifi-import" {
|
||||
libraries = [ pkgs.python3Packages.pyaml ];
|
||||
} (builtins.readFile ./import.py)
|
||||
}
|
||||
sudo chown root:root wireless_networks.{env,json}
|
||||
sudo chmod "u=r" wireless_networks.env
|
||||
sudo chmod "u=r,g=r,o=r" wireless_networks.json
|
||||
sudo mkdir -p /etc/keys
|
||||
sudo mv -f wireless_networks.{env,json} /etc/keys
|
||||
cd -
|
||||
rmdir "$temp"
|
||||
rb
|
||||
'';
|
||||
# This relies on multiple off-repo things:
|
||||
# - pass password store with wifi/${name} entries, containing wpa_supplicant networks
|
||||
# loosely converted to YAML (see import.py script)
|
||||
# - In a (private) flake:
|
||||
# inputs.wirelessNetworks.url = "path:/etc/keys/wireless_networks.json";
|
||||
# inputs.wirelessNetworks.flake = false;
|
||||
# - In NixOS config (using flake inputs):
|
||||
# networking.wireless.environmentFile = "/etc/keys/wireless_networks.env";
|
||||
# networking.wireless.networks = builtins.fromJSON (builtins.readFile wirelessNetworks);
|
||||
})
|
||||
];
|
||||
# wireless support via wpa_supplicant
|
||||
networking.wireless = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
country=NL
|
||||
'';
|
||||
# Public wireless networks
|
||||
networks = lib.genAttrs [
|
||||
"EurostarTrainsWiFi"
|
||||
"_SNCF gare-gratuit"
|
||||
"_SNCF_WIFI_INOUI"
|
||||
"Wifi in de trein"
|
||||
"WiFi in de trein"
|
||||
"_WIFI_LYRIA"
|
||||
"WIFIonICE"
|
||||
]
|
||||
(ssid: { });
|
||||
userControlled.enable = true; # Allow some control with wpa_cli
|
||||
};
|
||||
services.chrony.serverOption = "offline";
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue