[Network] add option to enable many types of VPN support to NetworkManager

This commit is contained in:
Antoine Viallon 2024-02-01 23:16:48 +01:00
parent 0bc9e4cf9e
commit b37f09f519
Signed by: aviallon
GPG key ID: 186FC35EDEB25716

View file

@ -24,6 +24,7 @@ in
description = "Set network DNS"; description = "Set network DNS";
type = types.enum [ "systemd-resolved" "dnsmasq" "unbound" "none" "default" ]; type = types.enum [ "systemd-resolved" "dnsmasq" "unbound" "none" "default" ];
}; };
vpnSupport = mkEnableOption "VPN support of many kinds in NetworkManager" // { default = desktopCfg.enable; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
@ -58,9 +59,16 @@ in
networking.networkmanager = { networking.networkmanager = {
wifi.backend = mkDefault "iwd"; wifi.backend = mkDefault "iwd";
dns = mkDefault cfg.dns; dns = mkDefault cfg.dns;
plugins = with pkgs; concatLists [ plugins = with pkgs; []
(optional (cfg.dns == "dnsmasq") dnsmasq) ++ optional (cfg.dns == "dnsmasq") dnsmasq
]; ++ optionals cfg.vpnSupport [
networkmanager_strongswan
networkmanager-openvpn
networkmanager-openconnect
networkmanager-sstp
networkmanager-l2tp
]
;
}; };
networking.wireless.enable = (cfg.backend != "NetworkManager"); networking.wireless.enable = (cfg.backend != "NetworkManager");
networking.wireless.iwd.enable = true; networking.wireless.iwd.enable = true;