Files
daniel e884e4a88f Manage Claude Code config + add Justfile via bombadil
Bring ~/.claude config under bombadil management across both machines:
- claude/shared/: converged settings.json (union of both hosts) and a single
  Catppuccin-powerline statusline merged from the two machines' versions
- claude/xps, claude/desktop: per-host agents/skills behind [profiles.xps]/
  [profiles.desktop]; each host links only its own via `bombadil link -p <theme> <host>`

Linked at file granularity because bombadil 4.2.0 can't create directory
symlinks for new targets, and to keep ~/.claude/{agents,skills} real dirs.

Add a Justfile (symlinked to ~/.justfile, usable via `just -g`) with link/
dark/light/watch/unlink/update/status/edit recipes; host auto-detected from
hostname. Recipes use exported shell vars to avoid bombadil's Tera engine
mis-parsing just's double-brace interpolation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 17:17:17 -05:00

56 lines
1.5 KiB
Makefile

# Dotfiles task runner (bombadil + git).
#
# Symlinked to ~/.justfile by bombadil, so it works as just's global justfile:
# just -g <recipe> # from anywhere
# just <recipe> # from $HOME
#
# Recipes reference exported variables as shell $vars rather than just's
# double-brace interpolation: bombadil renders every dotfile through Tera, which
# would try to evaluate a double-brace expression as a template variable.
# Theme profile to link with: dark or light.
export theme := "dark"
# Host profile, auto-detected from hostname. Each machine links only its own
# Claude agents/skills; everything else is shared.
export host := if `hostname` == "daniel-desktop" { "desktop" } else { "xps" }
# List available recipes.
default:
@just -g --list
# Re-link all dotfiles for this host and theme.
link:
bombadil link -f -p "$theme" "$host"
alias relink := link
# Re-link with the dark theme.
dark:
bombadil link -f -p dark "$host"
# Re-link with the light theme.
light:
bombadil link -f -p light "$host"
# Watch dotfiles and re-link automatically on change.
watch:
bombadil watch -f -p "$theme" "$host"
# Remove all bombadil-managed symlinks.
unlink:
bombadil unlink
# Pull the latest dotfiles from the remote and re-link.
update:
git -C ~/src/dotfiles pull --ff-only
bombadil link -f -p "$theme" "$host"
# Show the dotfiles repo's git status.
status:
git -C ~/src/dotfiles status
# Open the bombadil config in $EDITOR.
edit:
$EDITOR ~/src/dotfiles/bombadil.toml