Jace Babin's dotfiles, managed with Dotbot via uv.
- Zsh with Antidote plugin manager
- Starship prompt
- Ghostty terminal (with Kitty as an alternative)
- mise for tool version management (uv, .NET)
- Karabiner-Elements keyboard customization
- Homebrew package management via Brewfile
- Lefthook git hooks with Prettier, Shellcheck, and markdownlint
- fastfetch system information
- Neovim with LazyVim
- bat syntax-highlighted file viewer
- btop system monitor
- Clone this repository:
git clone https://github.com/jbabin91/dotfiles.git ~/.dotfiles
cd ~/.dotfiles- Run the install script to symlink configuration files:
./install- Install Homebrew packages:
brew bundle --global- Install development dependencies:
pnpm install- Restart your shell:
exec zsh~/.dotfiles/
├── config/
│ ├── bat/ # bat syntax highlighter
│ ├── fastfetch/ # System information display
│ ├── ghostty/ # Ghostty terminal
│ ├── btop/ # btop system monitor
│ ├── karabiner/ # Keyboard customization (copy-synced)
│ ├── kitty/ # Kitty terminal
│ ├── mise/ # Tool version manager (uv, dotnet)
│ ├── nvim/ # Neovim config (LazyVim)
│ ├── starship/ # Starship prompt
│ └── zsh/ # Zsh shell config + Antidote plugins
├── general/
│ ├── git/ # Git config, attributes, ignore
│ ├── .cspell/ # Spell checking dictionaries
│ └── Brewfile # Homebrew packages, casks, VS Code extensions
├── install.conf.yaml # Dotbot symlink configuration
├── lefthook.yml # Git hooks
├── prettier.config.js # Code formatting
└── .markdownlint-cli2.mjs # Markdown lintingKarabiner-Elements replaces symlinks when it writes config, so it uses a
bidirectional copy sync instead of a symlink. Running ./install will sync
the latest version in either direction.
All tool versions are managed through mise:
- Python — uv with automatic version switching
- Node.js — managed via mise;
.nvmrc/.node-versionauto-switching enabled viaidiomatic_version_file_enable_tools - .NET — SDK managed via mise
pnpm run format # Format JSON/YAML/MD files
pnpm run format:check # Check formatting
pnpm run lint # Run all linting
pnpm run lint:shell # Lint shell scripts
pnpm run lint:md # Lint markdown filesPre-commit hooks automatically:
- Format files with Prettier
- Lint shell scripts with Shellcheck
- Lint markdown with markdownlint
- Validate commit messages with commitlint (conventional commits)
MIT