{
  config,
  pkgs,
  ...
}: {
  sops.templates = let
    placeholder = config.sops.placeholder;
  in {
    "home.nmconnection".content = ''
      [connection]
      id=${placeholder."home/ssid"}
      type=wifi
      autoconnect-priority=10

      [wifi]
      mode=infrastructure
      ssid=${placeholder."home/ssid"}

      [wifi-security]
      key-mgmt=wpa-psk
      psk=${placeholder."home/psk"}
    '';
    "parents.nmconnection".content = ''
      [connection]
      id=${placeholder."parents/ssid"}
      type=wifi
      autoconnect-priority=10

      [wifi]
      mode=infrastructure
      ssid=${placeholder."parents/ssid"}

      [wifi-security]
      key-mgmt=wpa-psk
      psk=${placeholder."parents/psk"}
    '';
    "eduroam.nmconnection".content = ''
      [connection]
      id=eduroam
      type=wifi
      autoconnect-priority=0

      [wifi]
      mode=infrastructure
      ssid=eduroam

      [wifi-security]
      auth-alg=open
      key-mgmt=wpa-eap

      [802-1x]
      anonymous-identity=anonymous@uni-hannover.de
      ca-cert=${./T-TeleSec_GlobalRoot_Class_2.crt}
      domain-suffix-match=radius-dfn.luis.uni-hannover.de
      eap=ttls;
      identity=${placeholder."eduroam/ident"}
      password=${placeholder."eduroam/psk"}
      phase2-auth=mschapv2
    '';
    "luhbots.nmconnection".content = ''
      [connection]
      id=${placeholder."luhbots/ssid"}
      type=wifi
      autoconnect-priority=5

      [wifi]
      mode=infrastructure
      ssid=${placeholder."luhbots/ssid"}
      autoconnect-priority=0

      [wifi-security]
      key-mgmt=wpa-psk
      psk=${placeholder."luhbots/psk"}
    '';
    "luhbots5.nmconnection".content = ''
      [connection]
      id=${placeholder."luhbots/ssid5"}
      type=wifi
      autoconnect-priority=10

      [wifi]
      mode=infrastructure
      ssid=${placeholder."luhbots/ssid5"}
      autoconnect-priority=0

      [wifi-security]
      key-mgmt=wpa-psk
      psk=${placeholder."luhbots/psk"}
    '';
  };
  environment.etc = let
    template = config.sops.templates;
    base = "NetworkManager/system-connections";
  in {
    "${base}/home.nmconnection".source = template."home.nmconnection".path;
    "${base}/parents.nmconnection".source = template."parents.nmconnection".path;
    "${base}/eduroam.nmconnection".source = template."eduroam.nmconnection".path;
    "${base}/luhbots.nmconnection".source = template."luhbots.nmconnection".path;
    "${base}/luhbots5.nmconnection".source = template."luhbots5.nmconnection".path;
  };
  networking.networkmanager.enable = true;

  environment.systemPackages = with pkgs; [
    nm-tray
  ];
}
