From 1c5e23c40559f0711b3a5b5ee94c230a5c852683 Mon Sep 17 00:00:00 2001 From: Paul Stadig Date: Sun, 23 Jul 2023 17:52:41 -0400 Subject: [PATCH 1/2] nixos/xfce: add environment.xfce.excludePackages option Packages in environment.xfce.excludePackages will be excluded from the default environment. Fixes #91169 --- .../modules/services/x11/desktop-managers/xfce.nix | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index eee1f63ebdcc..d15c6d183f0a 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, utils, ... }: with lib; @@ -69,10 +69,17 @@ in description = lib.mdDoc "Enable the XFCE screensaver."; }; }; + + environment.xfce.excludePackages = mkOption { + default = []; + example = literalExpression "[ pkgs.xfce.xfce4-volumed-pulse ]"; + type = types.listOf types.package; + description = lib.mdDoc "Which packages XFCE should exclude from the default environment"; + }; }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs.xfce // pkgs; [ + environment.systemPackages = utils.removePackagesByName (with pkgs.xfce // pkgs; [ glib # for gsettings gtk3.out # gtk-update-icon-cache @@ -121,7 +128,7 @@ in ] ++ optionals (!cfg.noDesktop) [ xfce4-panel xfdesktop - ] ++ optional cfg.enableScreensaver xfce4-screensaver; + ] ++ optional cfg.enableScreensaver xfce4-screensaver) config.environment.xfce.excludePackages; programs.xfconf.enable = true; programs.thunar.enable = true; From cb2f5313320368ab0324958733d5f41cc59587c7 Mon Sep 17 00:00:00 2001 From: Paul Stadig Date: Mon, 24 Jul 2023 07:55:10 -0400 Subject: [PATCH 2/2] nixos/xfce: allow exclusion of xfce4-notifyd Use `environment.xfce.excludePackages` with `systemd.packages` so `xfce4-notifyd` can be excluded from installation. --- nixos/modules/services/x11/desktop-managers/xfce.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index d15c6d183f0a..191b3690c02f 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -4,6 +4,7 @@ with lib; let cfg = config.services.xserver.desktopManager.xfce; + excludePackages = config.environment.xfce.excludePackages; in { @@ -128,7 +129,7 @@ in ] ++ optionals (!cfg.noDesktop) [ xfce4-panel xfdesktop - ] ++ optional cfg.enableScreensaver xfce4-screensaver) config.environment.xfce.excludePackages; + ] ++ optional cfg.enableScreensaver xfce4-screensaver) excludePackages; programs.xfconf.enable = true; programs.thunar.enable = true; @@ -172,9 +173,9 @@ in programs.zsh.vteIntegration = mkDefault true; # Systemd services - systemd.packages = with pkgs.xfce; [ + systemd.packages = utils.removePackagesByName (with pkgs.xfce; [ xfce4-notifyd - ]; + ]) excludePackages; security.pam.services.xfce4-screensaver.unixAuth = cfg.enableScreensaver; };