diff --git a/modules/misc/news/2025/12/2025-12-01_16-08-56.nix b/modules/misc/news/2025/12/2025-12-01_16-08-56.nix new file mode 100644 index 000000000000..d8e07bc6916c --- /dev/null +++ b/modules/misc/news/2025/12/2025-12-01_16-08-56.nix @@ -0,0 +1,8 @@ +{ + time = "2025-12-01T15:08:56+00:00"; + condition = true; + message = '' + The option 'services.clipmenu.launcher' has been deprecated, please + use 'services.clipmenu.environmentVariables.CM_LAUNCHER' instead. + ''; +} diff --git a/modules/services/clipmenu.nix b/modules/services/clipmenu.nix index 922abb31f8ce..f8c2e1059dba 100644 --- a/modules/services/clipmenu.nix +++ b/modules/services/clipmenu.nix @@ -12,18 +12,24 @@ in { meta.maintainers = [ lib.maintainers.DamienCassou ]; + imports = [ + (lib.mkRenamedOptionModule + [ "services" "clipmenu" "launcher" ] + [ "services" "clipmenu" "environmentVariables" "CM_LAUNCHER" ] + ) + ]; + options.services.clipmenu = { enable = lib.mkEnableOption "clipmenu, the clipboard management daemon"; package = lib.mkPackageOption pkgs "clipmenu" { }; - launcher = mkOption { - type = types.nullOr types.str; - default = null; - example = "rofi"; + environmentVariables = mkOption { + type = types.attrsOf types.str; + default = { }; + example = "{ CM_LAUNCHER = \"rofi\"; }"; description = '' - Launcher command, if not set, {command}`dmenu` - will be used by default. + Environment variables to pass to the clipmenu daemon. ''; }; }; @@ -35,8 +41,6 @@ in home.packages = [ cfg.package ]; - home.sessionVariables = lib.mkIf (cfg.launcher != null) { CM_LAUNCHER = cfg.launcher; }; - systemd.user.services.clipmenu = { Unit = { Description = "Clipboard management daemon"; @@ -58,7 +62,8 @@ in ] ) }" - ]; + ] + ++ (lib.mapAttrsToList (name: value: "${name}=${value}") cfg.environmentVariables); }; Install = {