cliphist: support multiple systemdTargets properly
Using a space separated list of targets as a single string element in the list doesn't work properly. Change property to support list of targets and backwards compatibility with warning for single string.
This commit is contained in:
parent
304a011325
commit
8934adc524
|
@ -3,6 +3,14 @@ let cfg = config.services.cliphist;
|
|||
in {
|
||||
meta.maintainers = [ lib.hm.maintainers.janik ];
|
||||
|
||||
imports = [
|
||||
(lib.mkRenamedOptionModule [ "services" "cliphist" "systemdTarget" ] [
|
||||
"services"
|
||||
"cliphist"
|
||||
"systemdTargets"
|
||||
])
|
||||
];
|
||||
|
||||
options.services.cliphist = {
|
||||
enable =
|
||||
lib.mkEnableOption "cliphist, a clipboard history “manager” for wayland";
|
||||
|
@ -25,16 +33,18 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
systemdTarget = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "graphical-session.target";
|
||||
systemdTargets = lib.mkOption {
|
||||
type = with lib.types; either (listOf str) str;
|
||||
default = [ "graphical-session.target" ];
|
||||
example = "sway-session.target";
|
||||
description = ''
|
||||
The systemd target that will automatically start the cliphist service.
|
||||
The systemd targets that will automatically start the cliphist service.
|
||||
|
||||
When setting this value to `"sway-session.target"`,
|
||||
When setting this value to `["sway-session.target"]`,
|
||||
make sure to also enable {option}`wayland.windowManager.sway.systemd.enable`,
|
||||
otherwise the service may never be started.
|
||||
|
||||
Note: A single string value is deprecated, please use a list.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -61,7 +71,7 @@ in {
|
|||
Restart = "on-failure";
|
||||
};
|
||||
|
||||
Install = { WantedBy = [ cfg.systemdTarget ]; };
|
||||
Install = { WantedBy = lib.toList cfg.systemdTargets; };
|
||||
};
|
||||
|
||||
systemd.user.services.cliphist-images = lib.mkIf cfg.allowImages {
|
||||
|
@ -77,7 +87,7 @@ in {
|
|||
Restart = "on-failure";
|
||||
};
|
||||
|
||||
Install = { WantedBy = [ cfg.systemdTarget ]; };
|
||||
Install = { WantedBy = lib.toList cfg.systemdTargets; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
services.cliphist = {
|
||||
enable = true;
|
||||
|
||||
systemdTargets = [ "sway-session.target" "hyprland-session.target" ];
|
||||
};
|
||||
|
||||
test.stubs = {
|
||||
cliphist = { };
|
||||
wl-clipboard = { };
|
||||
};
|
||||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.config/systemd/user/cliphist.service
|
||||
assertFileExists home-files/.config/systemd/user/sway-session.target.wants/cliphist.service
|
||||
assertFileExists home-files/.config/systemd/user/hyprland-session.target.wants/cliphist.service
|
||||
'';
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
{ ... }:
|
||||
{ lib, options, ... }:
|
||||
|
||||
{
|
||||
services.cliphist = {
|
||||
|
@ -13,5 +13,13 @@
|
|||
|
||||
nmt.script = ''
|
||||
assertFileExists home-files/.config/systemd/user/cliphist.service
|
||||
assertFileExists home-files/.config/systemd/user/sway-session.target.wants/cliphist.service
|
||||
'';
|
||||
|
||||
test.asserts.warnings.expected = [
|
||||
"The option `services.cliphist.systemdTarget' defined in ${
|
||||
lib.showFiles options.services.cliphist.systemdTarget.files
|
||||
} has been renamed to `services.cliphist.systemdTargets'."
|
||||
];
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
cliphist-sway-session-target = ./cliphist-sway-session-target.nix;
|
||||
cliphist-extra-options = ./cliphist-extra-options.nix;
|
||||
cliphist-multiple-session-targets = ./cliphist-multiple-session-targets.nix;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue