{ povSelf, pkgs, lib, config, hostConfig, ... }: let inherit (lib) types; cfg = lib.getAttrFromPath povSelf config; in { options = { enable = { type = types.bool; default = false; }; username.type = types.str; envFile.type = types.path; }; config = lib.mkIf cfg.enable { networking.networkmanager.ensureProfiles = { environmentFiles = [ cfg.envFile ]; profiles.ccc-da-wifi = { connection = { id = "darmstadt.ccc.de"; type = "wifi"; uuid = "945c40f1-a800-4619-8276-1002a718a9f2"; autoconnect = "true"; }; "wifi" = { ssid = "darmstadt.ccc.de"; mode = "infrastructure"; }; "wifi-security" = { "auth-alg" = "open"; "key-mgmt" = "wpa-eap"; }; "802-1x" = { "eap" = "ttls"; "phase2-auth" = "pap"; "ca-cert" = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"; "altsubject-matches" = "DNS:radius.cccda.de"; "identity" = cfg.username; "password" = "$PASSWORD"; }; ipv4.method = "auto"; ipv6.method = "auto"; }; }; }; }