From 09859234f8a8fee31a1e2293f101504324578199 Mon Sep 17 00:00:00 2001 From: Kieran Date: Fri, 13 Jun 2025 02:47:44 +0100 Subject: [PATCH] zed-editor: don't add activation scripts if there is nothing to merge (#7254) --- modules/programs/zed-editor.nix | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/modules/programs/zed-editor.nix b/modules/programs/zed-editor.nix index 04b4ebbf7..16640308d 100644 --- a/modules/programs/zed-editor.nix +++ b/modules/programs/zed-editor.nix @@ -8,6 +8,7 @@ let inherit (lib) literalExpression mkIf + mkMerge mkOption types ; @@ -166,19 +167,23 @@ in } ); - home.activation = { - zedSettingsActivation = lib.hm.dag.entryAfter [ "linkGeneration" ] ( - impureConfigMerger "{}" ".[0] * .[1]" "${config.xdg.configHome}/zed/settings.json" ( - jsonFormat.generate "zed-user-settings" mergedSettings - ) - ); - zedKeymapActivation = lib.hm.dag.entryAfter [ "linkGeneration" ] ( - impureConfigMerger "[]" - ".[0] + .[1] | group_by(.context) | map(reduce .[] as $item ({}; . * $item))" - "${config.xdg.configHome}/zed/keymap.json" - (jsonFormat.generate "zed-user-keymaps" cfg.userKeymaps) - ); - }; + home.activation = mkMerge [ + (mkIf (mergedSettings != { }) { + zedSettingsActivation = lib.hm.dag.entryAfter [ "linkGeneration" ] ( + impureConfigMerger "{}" ".[0] * .[1]" "${config.xdg.configHome}/zed/settings.json" ( + jsonFormat.generate "zed-user-settings" mergedSettings + ) + ); + }) + (mkIf (cfg.userKeymaps != [ ]) { + zedKeymapActivation = lib.hm.dag.entryAfter [ "linkGeneration" ] ( + impureConfigMerger "[]" + ".[0] + .[1] | group_by(.context) | map(reduce .[] as $item ({}; . * $item))" + "${config.xdg.configHome}/zed/keymap.json" + (jsonFormat.generate "zed-user-keymaps" cfg.userKeymaps) + ); + }) + ]; xdg.configFile = lib.mapAttrs' ( n: v: