Skip to content

Instantly share code, notes, and snippets.

@worldofpeace
Last active September 29, 2019 23:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save worldofpeace/c1f6c14b890e687f459b92120c9fcd32 to your computer and use it in GitHub Desktop.
Save worldofpeace/c1f6c14b890e687f459b92120c9fcd32 to your computer and use it in GitHub Desktop.
diff --git a/nixos/modules/services/networking/networkmanager.nix b/nixos/modules/services/networking/networkmanager.nix
index a137045834b..bcf36753471 100644
--- a/nixos/modules/services/networking/networkmanager.nix
+++ b/nixos/modules/services/networking/networkmanager.nix
@@ -5,6 +5,12 @@ with lib;
let
cfg = config.networking.networkmanager;
+ basePackages = with pkgs; [
+ networkmanager
+ modemmanager
+ crda
+ ] ++ optional (!delegateWireless) wpa_supplicant;
+
dynamicHostsEnabled =
cfg.dynamicHosts.enable && cfg.dynamicHosts.hostsDirs != {};
@@ -176,16 +182,13 @@ in {
'';
};
- # Ugly hack for using the correct gnome3 packageSet
- basePackages = mkOption {
- type = types.attrsOf types.package;
- default = { inherit (pkgs)
- networkmanager modemmanager crda
- networkmanager-openvpn networkmanager-vpnc
- networkmanager-openconnect networkmanager-fortisslvpn
- networkmanager-l2tp networkmanager-iodine; }
- // optionalAttrs (!delegateWireless) { inherit (pkgs) wpa_supplicant; };
+ useGnome = mkOption {
+ type = types.bool;
+ default = false;
internal = true;
+ description = ''
+ Whether to use the Gnome 3 package set of networkmanager plugins.
+ '';
};
packages = mkOption {
@@ -194,7 +197,7 @@ in {
description = ''
Extra packages that provide NetworkManager plugins.
'';
- apply = list: (attrValues cfg.basePackages) ++ list;
+ apply = list: basePackages ++ list;
};
dhcp = mkOption {
@@ -395,7 +398,19 @@ in {
}
];
- environment.etc = with cfg.basePackages; [
+ nixpkgs.overlays = mkIf cfg.useGnome [
+ (self: super: {
+ networkmanager-openvpn = self.gnome3.networkmanager-openvpn;
+ networkmanager-vpnc = self.gnome3.networkmanager-vpnc;
+ networkmanager-openconnect = self.gnome3.networkmanager-openconnect;
+ networkmanager-fortisslvpn = self.gnome3.networkmanager-fortisslvpn;
+ networkmanager-l2tp = self.gnome3-networkmanager-l2tp;
+ networkmanager-iodine = self.networkmanager-iodine;
+ networkmanagerapplet = self.gnome3.networkmanagerapplet;
+ })
+ ];
+
+ environment.etc = with pkgs; [
{ source = configFile;
target = "NetworkManager/NetworkManager.conf";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment