From affce9867ca715d7746e0daf678964cfd9e3f62e Mon Sep 17 00:00:00 2001 From: Lin Xianyi Date: Sun, 3 May 2026 11:18:54 +0800 Subject: [PATCH] feat(wrapperModules.niri): hot reload with new config after build --- wrapperModules/n/niri/module.nix | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/wrapperModules/n/niri/module.nix b/wrapperModules/n/niri/module.nix index 91dc131f..36912bf6 100644 --- a/wrapperModules/n/niri/module.nix +++ b/wrapperModules/n/niri/module.nix @@ -363,6 +363,15 @@ in as nix no longer needs to know about this path at build time. ''; }; + disableConfigHotReload = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + When `true`, the wrapper will not hot reload niri with the new config on rebuild. + + Note: Niri 26.04 is required for this functionality. + ''; + }; }; config.filesToPatch = [ "share/applications/*.desktop" @@ -410,6 +419,21 @@ in + "\n" + config.settings.extraConfig; }; + config.buildCommand.niriReloadConfig = + lib.mkIf (!config.disableConfigHotReload && lib.versionAtLeast config.package.version "26.04") + { + after = [ "symlinkScript" ]; + data = '' + chmod +w ${placeholder config.outputName}/share/systemd/user/niri.service + cat >> ${placeholder config.outputName}/share/systemd/user/niri.service<