{ lib, config, ... }: let inherit (lib) mkDefault; cfg = config.networking.wifi; in { options = { networking.wifi.enable = lib.mkEnableOption "Enable wifi via NetworkManager"; }; config = lib.mkIf cfg.enable { networking.networkmanager = { enable = true; # ensureProfiles = { # profiles = { # home-wifi = { # id="home-wifi"; # permissions = ""; # type = "wifi"; # }; # wifi = { # ssid = ""; # }; # wifi-security = { # # auth-alg = ""; # # key-mgmt = ""; # psk = ""; # }; # }; # }; }; systemd.services.NetworkManager-wait-online.enable = mkDefault false; /* TODO: networking.networkmanager.wifi.backend = "iwd"; ? TODO: powersave? TODO: can I pre-configure my usual wifi networks with SSIDs and PSKs loaded from secrets? */ hardware.wirelessRegulatoryDatabase = true; boot.extraModprobeConfig = '' options cfg80211 ieee80211_regdom="US" ''; }; }