This repository manages system and development configuration files (dotfiles) using Bombadil for symlink management.
Bombadil is a dotfile manager that:
- Stores your configuration files in this repository
- Creates symlinks from their target locations (~/.config/, ~/.*) to this repo
- Allows centralized version control of all your configurations
# List all managed dotfiles
cat bombadil.toml
# Check what a specific config file links to
ls -la ~/.gitconfigCritical Rule: Always edit source files in this repository, never the symlink targets.
# 1. Edit the source file in this repository
# Example: Edit git configuration
vim git/gitconfig
# 2. Apply changes to symlinks
bombadil link
# Or use the alias
bldotfiles/
├── .dots/ # Source files for Bombadil-managed configs
├── bin/ # Utility scripts
├── claude-code/ # Claude Code configuration and agents
├── doc/ # Documentation
│ ├── guides/ # How-to guides
│ ├── architecture/ # Architecture decisions
│ ├── research/ # Research documents
│ └── reviews/ # Code reviews
├── openspec/ # OpenSpec change management
├── utils/ # Additional utilities
├── zsh/ # Zsh configuration
├── nvim/ # Neovim configuration
├── git/ # Git configuration
├── opencode/ # OpenCode configuration
└── bombadil.toml # Bombadil configuration
| Config | Source Location | Target Location |
|---|---|---|
| Git | git/gitconfig |
~/.gitconfig |
| Zsh | zsh/zshrc, zsh/aliases |
~/.zshrc, ~/.zsh/ |
| Neovim | nvim/ |
~/.config/nvim/ |
| OpenCode | opencode/ |
~/.config/opencode/ |
| Vim | vim/vimrc |
~/.vimrc |
See bombadil.toml for the complete list.
The bin/ directory contains utility scripts:
- bl (bombadil link) - Update symlinks after editing configs
- packages - List/manage installed packages
- disk-overview - Show disk usage
- disk-health-setup - Setup disk health monitoring
- projects-setup - Initialize project directories
See bin/README.md for details.
Always use project-specific binstubs:
bin/railsinstead ofrailsbin/bundleinstead ofbundle
These ensure proper Ruby version management via RVM.
For proposals and changes, use OpenSpec:
- See
openspec/AGENTS.mdfor detailed instructions - Use
openspec listto see active changes - Use
openspec validate <change> --strictto validate proposals
- doc/guides/dotfiles-management.md - How to manage dotfiles with Bombadil
- doc/guides/tmux-i3-workflow.md - Tmux session profiles and i3 integration
- doc/guides/browser-window-workspace-recovery.md - Restore browser windows to remembered i3 workspaces
- doc/guides/openspec-usage.md - How to use OpenSpec for changes
- doc/architecture/overview.md - Architecture decisions and structure
- doc/rvm-management.md - Ruby Version Manager setup
- doc/sudo.md - Sudo authentication troubleshooting
bombadil.toml- Defines which files are managedbin/prehooks- Runs beforebombadil linkbin/posthooks- Runs afterbombadil linkTODO.md- Future ideas and improvements backlogFREIGHT.md- Known issues and workarounds