e884e4a88f
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>
86 lines
3.5 KiB
TOML
86 lines
3.5 KiB
TOML
# Path to your dotfiles relative to your $HOME directory
|
|
dotfiles_dir = "src/dotfiles"
|
|
|
|
[settings]
|
|
# An array of toml files paths containing the variables to inject in your templatized dotfiles
|
|
# You can have multiple var files as long as variable names does not colide.
|
|
vars = [ "dark.toml", "vars.toml" ]
|
|
|
|
# An array of post install shell commands
|
|
# hooks = [ "" ]
|
|
|
|
[profiles.light]
|
|
vars = [ "light.toml" ]
|
|
|
|
[profiles.dark]
|
|
vars = [ "dark.toml" ]
|
|
|
|
[settings.dots]
|
|
# A dot entry representing a symlink, `source` is relative to `dotfiles_dir`
|
|
# and `target` shall be relative to $HOME directory or absolute.
|
|
# You can have as many dot entry as you want, linking files or directories
|
|
|
|
# alacritty
|
|
alacritty = { source = "alacritty", target = ".config/alacritty" }
|
|
|
|
# bat
|
|
bat = { source = "bat", target = ".config/bat" }
|
|
|
|
# broot
|
|
broot = { source = "broot", target = ".config/broot" }
|
|
|
|
# git
|
|
git_template = { source = "git_template", target = ".git_template" }
|
|
gitconfig = { source = "gitconfig", target = ".gitconfig" }
|
|
gitignore = { source = "gitignore", target = ".gitignore" }
|
|
gitui = { source = "gitui", target = ".config/gitui" }
|
|
|
|
# gpg
|
|
gpg_agent = { source = "gnupg/gpg-agent.conf", target = ".gnupg/gpg-agent.conf" }
|
|
|
|
# helix
|
|
helix = { source = "helix", target = ".config/helix" }
|
|
|
|
# file handlers
|
|
mimeapps = { source = "mimeapps.list", target = ".config/mimeapps.list" }
|
|
|
|
# navi
|
|
navi = { source = "navi", target = ".config/navi" }
|
|
|
|
# starship
|
|
starship = { source = "starship.toml", target = ".config/starship.toml"}
|
|
|
|
# zellij
|
|
zellij = { source = "zellij", target = ".config/zellij" }
|
|
|
|
# zsh
|
|
zshconfigs = { source = "zsh.d", target = ".config/zsh.d" }
|
|
zshaliases = { source = "aliases.d", target = ".config/aliases.d" }
|
|
zshenv = { source = "zshenv.zsh", target = ".zshenv" }
|
|
zshrc = { source = "zshrc.zsh", target = ".zshrc" }
|
|
|
|
# justfile — task runner, usable from anywhere via `just -g`
|
|
justfile = { source = "Justfile", target = ".justfile" }
|
|
|
|
# claude code (shared across hosts; agents/skills are host-specific, see profiles below)
|
|
claude_settings = { source = "claude/shared/settings.json", target = ".claude/settings.json" }
|
|
claude_statusline = { source = "claude/shared/statusline-command.sh", target = ".claude/statusline-command.sh" }
|
|
|
|
# Host profiles — select one per machine alongside the theme profile (space-separated), e.g.
|
|
# daniel-xps: bombadil link -f -p dark xps
|
|
# daniel-desktop: bombadil link -f -p dark desktop
|
|
# (or just `just -g link`, which auto-detects the host)
|
|
# Each links the host's own Claude agents/skills (the GPU box drives the local
|
|
# model; the laptop is the orchestrator that delegates to it over SSH).
|
|
# Linked at the file level (not as directory dots): bombadil 4.2.0 only symlinks
|
|
# regular files, and this keeps the live ~/.claude/{agents,skills} as real dirs so
|
|
# Claude's own agents/skills coexist with these dotfile-managed ones.
|
|
[profiles.xps.dots]
|
|
claude_agent_desktop_coder = { source = "claude/xps/agents/desktop-coder.md", target = ".claude/agents/desktop-coder.md" }
|
|
claude_skill_desktop_delegate = { source = "claude/xps/skills/desktop-delegate/SKILL.md", target = ".claude/skills/desktop-delegate/SKILL.md" }
|
|
|
|
[profiles.desktop.dots]
|
|
claude_agent_local_coder = { source = "claude/desktop/agents/local-coder.md", target = ".claude/agents/local-coder.md" }
|
|
claude_skill_local_delegate = { source = "claude/desktop/skills/local-delegate/SKILL.md", target = ".claude/skills/local-delegate/SKILL.md" }
|
|
claude_skill_unload_local_model = { source = "claude/desktop/skills/unload-local-model/SKILL.md", target = ".claude/skills/unload-local-model/SKILL.md" }
|