Skip to content

Commit

Permalink
nixos/utils: move removePackagesByName to here from gnome
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperSandro2000 committed Apr 11, 2022
1 parent 28e936b commit 2853984
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 29 deletions.
16 changes: 16 additions & 0 deletions nixos/lib/utils.nix
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,22 @@ rec {
(( ! $inherit_errexit_enabled )) && shopt -u inherit_errexit
'';

/* Remove packages of packagesToRemove from packages, based on their names.
Relies on package names and has quadratic complexity so use with caution!
Type:
removePackagesByName :: [package] -> [package] -> [package]
Example:
removePackagesByName [ nautilus file-roller ] [ file-roller totem ]
=> [ nautilus ]
*/
removePackagesByName = packages: packagesToRemove:
let
namesToRemove = map lib.getName packagesToRemove;
in
lib.filter (x: !(builtins.elem (lib.getName x) namesToRemove)) packages;

systemdUtils = {
lib = import ./systemd-lib.nix { inherit lib config pkgs; };
unitOptions = import ./systemd-unit-options.nix { inherit lib systemdUtils; };
Expand Down
4 changes: 2 additions & 2 deletions nixos/modules/services/x11/desktop-managers/cinnamon.nix
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ in
programs.evince.enable = mkDefault true;
programs.file-roller.enable = mkDefault true;

environment.systemPackages = (with pkgs // pkgs.gnome // pkgs.cinnamon; pkgs.gnome.removePackagesByName [
environment.systemPackages = with pkgs // pkgs.gnome // pkgs.cinnamon; lib.utils.removePackagesByName [
# cinnamon team apps
bulky
blueberry
Expand All @@ -212,7 +212,7 @@ in
# external apps shipped with linux-mint
hexchat
gnome-calculator
] config.environment.cinnamon.excludePackages);
] config.environment.cinnamon.excludePackages;
})
];
}
10 changes: 5 additions & 5 deletions nixos/modules/services/x11/desktop-managers/gnome.nix
Original file line number Diff line number Diff line change
Expand Up @@ -455,7 +455,7 @@ in
(mkIf serviceCfg.core-utilities.enable {
environment.systemPackages =
with pkgs.gnome;
removePackagesByName
lib.utils.removePackagesByName
([
baobab
cheese
Expand Down Expand Up @@ -515,7 +515,7 @@ in
})

(mkIf serviceCfg.games.enable {
environment.systemPackages = (with pkgs.gnome; removePackagesByName [
environment.systemPackages = with pkgs.gnome; lib.utils.removePackagesByName [
aisleriot
atomix
five-or-more
Expand All @@ -536,12 +536,12 @@ in
quadrapassel
swell-foop
tali
] config.environment.gnome.excludePackages);
] config.environment.gnome.excludePackages;
})

# Adapt from https://gitlab.gnome.org/GNOME/gnome-build-meta/-/blob/3.38.0/elements/core/meta-gnome-core-developer-tools.bst
(mkIf serviceCfg.core-developer-tools.enable {
environment.systemPackages = (with pkgs.gnome; removePackagesByName [
environment.systemPackages = with pkgs.gnome; lib.utils.removePackagesByName [
dconf-editor
devhelp
pkgs.gnome-builder
Expand All @@ -550,7 +550,7 @@ in
# in default configurations.
# https://github.com/NixOS/nixpkgs/issues/60908
/* gnome-boxes */
] config.environment.gnome.excludePackages);
] config.environment.gnome.excludePackages;

services.sysprof.enable = notExcluded pkgs.sysprof;
})
Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/x11/desktop-managers/lxqt.nix
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ in
environment.systemPackages =
pkgs.lxqt.preRequisitePackages ++
pkgs.lxqt.corePackages ++
(pkgs.gnome.removePackagesByName
(lib.utils.removePackagesByName
pkgs.lxqt.optionalPackages
config.environment.lxqt.excludePackages);

Expand Down
2 changes: 1 addition & 1 deletion nixos/modules/services/x11/desktop-managers/mate.nix
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ in
# Debugging
environment.sessionVariables.MATE_SESSION_DEBUG = mkIf cfg.debug "1";

environment.systemPackages = pkgs.gnome.removePackagesByName
environment.systemPackages = lib.utils.removePackagesByName
(pkgs.mate.basePackages ++
pkgs.mate.extraPackages ++
[
Expand Down
6 changes: 3 additions & 3 deletions nixos/modules/services/x11/desktop-managers/pantheon.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ config, lib, utils, pkgs, ... }:

with lib;

Expand Down Expand Up @@ -214,7 +214,7 @@ in
elementary-settings-daemon
pantheon-agent-geoclue2
pantheon-agent-polkit
]) ++ (gnome.removePackagesByName [
]) ++ (utils.removePackagesByName [
gnome.gnome-font-viewer
gnome.gnome-settings-daemon338
] config.environment.pantheon.excludePackages);
Expand Down Expand Up @@ -272,7 +272,7 @@ in
})

(mkIf serviceCfg.apps.enable {
environment.systemPackages = with pkgs.pantheon; pkgs.gnome.removePackagesByName ([
environment.systemPackages = with pkgs.pantheon; utils.removePackagesByName ([
elementary-calculator
elementary-calendar
elementary-camera
Expand Down
4 changes: 2 additions & 2 deletions nixos/modules/services/x11/xserver.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ config, lib, utils, pkgs, ... }:

with lib;

Expand Down Expand Up @@ -662,7 +662,7 @@ in
${cfgPath}.source = xorg.xf86inputevdev.out + "/share" + cfgPath;
});

environment.systemPackages = pkgs.gnome.removePackagesByName
environment.systemPackages = utils.removePackagesByName
[ xorg.xorgserver.out
xorg.xrandr
xorg.xrdb
Expand Down
15 changes: 0 additions & 15 deletions pkgs/desktops/gnome/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,6 @@
lib.makeScope pkgs.newScope (self: with self; {
updateScript = callPackage ./update.nix { };

/* Remove packages of packagesToRemove from packages, based on their names
Type:
removePackagesByName :: [package] -> [package] -> [package]
Example:
removePackagesByName [ nautilus file-roller ] [ file-roller totem ]
=> [ nautilus ]
*/
removePackagesByName = packages: packagesToRemove:
let
namesToRemove = map lib.getName packagesToRemove;
in
lib.filter (x: !(builtins.elem (lib.getName x) namesToRemove)) packages;

libsoup = pkgs.libsoup.override { gnomeSupport = true; };
libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };

Expand Down

0 comments on commit 2853984

Please sign in to comment.