From 8c9b54504c89f3aec9c82b262c1f4304407fbad6 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sun, 6 Apr 2025 18:36:01 -0700 Subject: [PATCH] swaync: use x-restart-triggers for reload (#6764) Use x-restart-triggers to reload on file change, since users with impermanence setups were running into issues with onChange and calling the `swaync-client` to handle the hot reload. --- modules/services/swaync.nix | 13 +++++++------ tests/modules/services/swaync/swaync.nix | 6 +++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/modules/services/swaync.nix b/modules/services/swaync.nix index e05d10bd2..7e527b4af 100644 --- a/modules/services/swaync.nix +++ b/modules/services/swaync.nix @@ -82,17 +82,13 @@ in { home.packages = [ cfg.package pkgs.at-spi2-core ]; xdg.configFile = { - "swaync/config.json" = { - source = jsonFormat.generate "config.json" cfg.settings; - onChange = "${lib.getExe' cfg.package "swaync-client"} --reload-config"; - }; + "swaync/config.json".source = + jsonFormat.generate "config.json" cfg.settings; "swaync/style.css" = lib.mkIf (cfg.style != null) { - source = if builtins.isPath cfg.style || lib.isStorePath cfg.style then cfg.style else pkgs.writeText "swaync/style.css" cfg.style; - onChange = "${lib.getExe' cfg.package "swaync-client"} --reload-css"; }; }; @@ -103,6 +99,11 @@ in { PartOf = [ config.wayland.systemd.target ]; After = [ config.wayland.systemd.target ]; ConditionEnvironment = "WAYLAND_DISPLAY"; + X-Restart-Triggers = lib.mkMerge [ + [ config.xdg.configFile."swaync/config.json".source ] + (lib.mkIf (cfg.style != null) + [ config.xdg.configFile."swaync/style.css".source ]) + ]; }; Service = { diff --git a/tests/modules/services/swaync/swaync.nix b/tests/modules/services/swaync/swaync.nix index 550e5fed4..cb752e290 100644 --- a/tests/modules/services/swaync/swaync.nix +++ b/tests/modules/services/swaync/swaync.nix @@ -10,8 +10,11 @@ }; nmt.script = '' + serviceFile=home-files/.config/systemd/user/swaync.service + serviceFile=$(normalizeStorePaths $serviceFile) + assertFileContent \ - home-files/.config/systemd/user/swaync.service \ + $serviceFile \ ${ builtins.toFile "swaync.service" '' [Install] @@ -29,6 +32,7 @@ Description=Swaync notification daemon Documentation=https://github.com/ErikReider/SwayNotificationCenter PartOf=graphical-session.target + X-Restart-Triggers=/nix/store/00000000000000000000000000000000-config.json '' } '';