diff --git a/hosts/pinwheel/modules/ai/default.nix b/hosts/pinwheel/modules/ai/default.nix index e246ea1..a038b11 100644 --- a/hosts/pinwheel/modules/ai/default.nix +++ b/hosts/pinwheel/modules/ai/default.nix @@ -47,6 +47,8 @@ let ]; }; }; + + settingsFile = pkgs.writeText "claude-settings.json" settings; in { options = { @@ -68,8 +70,18 @@ in pclaude = "CLAUDE_CONFIG_DIR=$HOME/.claude-personal command claude"; }; - home.file.".claude-work/settings.json".text = settings; - home.file.".claude-personal/settings.json".text = settings; + home.activation.claudeSettings = { + after = [ "linkGeneration" ]; + before = [ ]; + data = '' + for f in "$HOME"/.claude-{work,personal}/settings.json; do + current="$(cat "$f" 2>/dev/null || echo '{}')" + run mkdir -p "$(dirname "$f")" + run rm -f "$f" + echo "$current" | ${pkgs.jq}/bin/jq -s '.[0] * .[1]' ${settingsFile} - | run tee "$f" > /dev/null + done + ''; + }; programs.ct = { enable = true;