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>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user