diff options
author | Luca Bruno <lucabru@src.gnome.org> | 2014-04-09 00:02:20 +0200 |
---|---|---|
committer | Luca Bruno <lucabru@src.gnome.org> | 2014-04-09 00:36:53 +0200 |
commit | a3115707dd1563cfdab75ae716a33aeba4c651ce (patch) | |
tree | d0aef79d8e467c8157d7c446a3baa27df6ae9aeb | |
parent | ba200a2c3cfe1e122eec30e588f37430a50feff7 (diff) | |
download | nixpkgs-a3115707dd1563cfdab75ae716a33aeba4c651ce.tar nixpkgs-a3115707dd1563cfdab75ae716a33aeba4c651ce.tar.gz nixpkgs-a3115707dd1563cfdab75ae716a33aeba4c651ce.tar.bz2 nixpkgs-a3115707dd1563cfdab75ae716a33aeba4c651ce.tar.lz nixpkgs-a3115707dd1563cfdab75ae716a33aeba4c651ce.tar.xz nixpkgs-a3115707dd1563cfdab75ae716a33aeba4c651ce.tar.zst nixpkgs-a3115707dd1563cfdab75ae716a33aeba4c651ce.zip |
Add environment.gnome3.excludePackages
Give the user a full desktop, and the possibility to exclude non-base packages from the default list of packages.
-rw-r--r-- | lib/lists.nix | 3 | ||||
-rw-r--r-- | nixos/modules/services/x11/desktop-managers/gnome3.nix | 43 |
2 files changed, 33 insertions, 13 deletions
diff --git a/lib/lists.nix b/lib/lists.nix index 71a89702796..6c7773304de 100644 --- a/lib/lists.nix +++ b/lib/lists.nix @@ -226,4 +226,7 @@ in rec { deepSeqList = xs: y: if any (x: deepSeq x false) xs then y else y; crossLists = f: foldl (fs: args: concatMap (f: map f args) fs) [f]; + + # List difference, xs - ys. Removes elements of ys from xs. + difference = xs: ys: filter (y: !(builtins.elem y ys)) xs; } diff --git a/nixos/modules/services/x11/desktop-managers/gnome3.nix b/nixos/modules/services/x11/desktop-managers/gnome3.nix index 0a4afcd81a3..bebda772352 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome3.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome3.nix @@ -15,6 +15,13 @@ in { description = "Enable Gnome 3 desktop manager."; }; + environment.gnome3.excludePackages = mkOption { + default = []; + example = "[ pkgs.gnome3.totem ]"; + type = types.listOf types.package; + description = "Which packages gnome should exclude from the default environment"; + }; + }; config = mkIf cfg.enable { @@ -51,25 +58,35 @@ in { environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules" "${pkgs.glib_networking}/lib/gio/modules" ]; environment.systemPackages = - [ gnome3.evince + [ gnome3.dconf + pkgs.glib_networking + pkgs.ibus + gnome3.gnome-backgrounds + gnome3.gnome_control_center + gnome3.gnome_icon_theme + gnome3.gnome_settings_daemon + gnome3.gnome_shell + gnome3.gnome_themes_standard + ] ++ (lists.difference [ + gnome3.baobab gnome3.eog - gnome3.dconf - gnome3.vino gnome3.epiphany - gnome3.baobab + gnome3.evince gnome3.gucharmap gnome3.nautilus + gnome3.totem + gnome3.vino gnome3.yelp - pkgs.glib_networking - pkgs.ibus - gnome3.gnome-backgrounds - gnome3.gnome_shell - gnome3.gnome_settings_daemon + gnome3.gnome-calculator + gnome3.gnome-contacts + gnome3.gnome-font-viewer + gnome3.gnome-screenshot + gnome3.gnome-system-log + gnome3.gnome-system-monitor gnome3.gnome_terminal - gnome3.gnome_icon_theme - gnome3.gnome_themes_standard - gnome3.gnome_control_center - ]; + + gnome3.file-roller + ] config.environment.gnome3.excludePackages); }; |