From 557f5e38ce94ef0f02f05de7ae65057d4b2a89a6 Mon Sep 17 00:00:00 2001 From: oneorseveralcats <170012754+oneorseveralcats@users.noreply.github.com> Date: Sat, 28 Mar 2026 00:07:26 -0400 Subject: [PATCH] swayidle: allow multiple systemd targets --- modules/services/swayidle.nix | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/modules/services/swayidle.nix b/modules/services/swayidle.nix index 3b96da01..381300e3 100644 --- a/modules/services/swayidle.nix +++ b/modules/services/swayidle.nix @@ -18,6 +18,14 @@ in { meta.maintainers = [ lib.maintainers.c0deaddict ]; + imports = [ + (lib.mkChangedOptionModule + [ "services" "swayidle" "systemdTarget" ] + [ "services" "swayidle" "systemdTargets" ] + (config: lib.toList (lib.getAttrFromPath [ "services" "swayidle" "systemdTarget" ] config)) + ) + ]; + options.services.swayidle = let @@ -124,13 +132,13 @@ in description = "Extra arguments to pass to swayidle."; }; - systemdTarget = mkOption { - type = types.str; - default = config.wayland.systemd.target; - defaultText = literalExpression "config.wayland.systemd.target"; - example = "sway-session.target"; + systemdTargets = mkOption { + type = with types; listOf str; + default = [ config.wayland.systemd.target ]; + defaultText = literalExpression "[ config.wayland.systemd.target ]"; + example = [ "sway-session.target" ]; description = '' - Systemd target to bind to. + Systemd targets to bind to. ''; }; @@ -148,8 +156,8 @@ in Description = "Idle manager for Wayland"; Documentation = "man:swayidle(1)"; ConditionEnvironment = "WAYLAND_DISPLAY"; - PartOf = [ cfg.systemdTarget ]; - After = [ cfg.systemdTarget ]; + PartOf = cfg.systemdTargets; + After = cfg.systemdTargets; }; Service = { @@ -187,7 +195,7 @@ in }; Install = { - WantedBy = [ cfg.systemdTarget ]; + WantedBy = cfg.systemdTargets; }; }; };