Personal dotfiles managed by chezmoi.
This repository contains my development environment configuration, designed to be portable across macOS and Linux (Ubuntu/Debian) systems. A single command sets up the entire environment from scratch.
# Install chezmoi and apply dotfiles in one command
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply shungo0222This will:
- Install chezmoi
- Clone this repository
- Apply all configuration files
- Run the bootstrap script to install required tools
chezmoi init shungo0222 --applychezmoi update --apply| Component | Description |
|---|---|
| Zsh | Default shell with extensive customization |
| Oh My Zsh | Zsh framework for managing configuration |
| Starship | Fast, customizable prompt with gruvbox-rainbow preset |
| fzf | Fuzzy finder for files, history, and more |
Core / Utility:
git- Git integration and aliasesaliases- Enhanced alias supportyou-should-use- Suggests better shell commandschezmoi- Dotfile manager integrationcolored-man-pages- Colorized man pages
Developer Experience:
zsh-syntax-highlighting- Syntax highlighting in terminalzsh-autosuggestions- Fish-like autosuggestionszsh-bat- Pretty cat with syntax highlightingfzf- Fuzzy finder integration
File & Clipboard:
copyfile- Copy file contents to clipboardcopypath- Copy file path to clipboard
Container & Cloud:
docker- Docker aliases and helpersdocker-compose- Docker Compose supportaws- AWS CLI auto-completion
Terminal:
ssh- SSH host completionstmux- Tmux integrationstarship- Starship prompt integration
| Component | Description |
|---|---|
| tmux | Terminal multiplexer for session management |
| Tmuxifier | Tmux session/window layout manager |
| Component | Description |
|---|---|
| Neovim | Modern Vim-based editor |
| lazy.nvim | Plugin manager |
- alpha.lua - Dashboard/start screen
- catppuccin.lua - Color scheme
- claudecode.lua - Claude Code AI integration
- completions.lua - Auto-completion
- debugging.lua - Debug adapter protocol
- diffview.lua - Git diff viewer
- gitgraph.lua - Git commit graph visualization
- gitsigns.lua - Git signs in gutter
- lazygit.lua - Lazygit integration
- lsp-config.lua - Language Server Protocol
- lualine.lua - Status line
- neo-tree.lua - File explorer
- none-ls.lua - Null-ls for formatters/linters
- telescope.lua - Fuzzy finder UI
- treesitter.lua - Syntax highlighting
- vim-tmux-navigator.lua - Seamless tmux/vim navigation
- which-key.lua - Keybinding hints
| Tool | Description |
|---|---|
| colorls | Colorized ls with icons (aliased as lc) |
| Claude Code | AI pair programming CLI |
| CodexBar | macOS menu bar app for monitoring AI coding tool usage limits (macOS only) |
| File | Description |
|---|---|
| starship.toml | Starship prompt configuration |
| iTerm2 State | iTerm2 settings export (macOS) |
~/.local/share/chezmoi/
├── README.md # This file
├── .chezmoiignore # Files to ignore
├── run_once_install-packages.sh.tmpl # Bootstrap script (runs once)
├── dot_zshrc # → ~/.zshrc
├── dot_tmux.conf # → ~/.tmux.conf
├── dot_config/
│ ├── starship.toml # → ~/.config/starship.toml
│ └── nvim/ # → ~/.config/nvim/
│ ├── init.lua
│ └── lua/
│ ├── vim-options.lua
│ └── plugins/
│ └── *.lua
└── iTerm2 State.itermexport # iTerm2 settings
The run_once_install-packages.sh.tmpl script automatically installs all required tools on first run:
- git, zsh, fzf, neovim, tmux, ruby, node
- CodexBar (
brew install --cask steipete/tap/codexbar) — AI usage limit monitor
- git, zsh, fzf, neovim, tmux, ruby-full, nodejs, npm, curl, build-essential, locales
- Oh My Zsh + custom plugins
- Starship prompt
- colorls (Ruby gem)
- Tmuxifier
- TPM (Tmux Plugin Manager)
- Claude Code CLI
- Sets Zsh as default shell
| Alias | Command | Description |
|---|---|---|
lc |
colorls -lA --sd |
List files with colors and icons |
All Claude Code keybindings are under <leader>a:
| Key | Action |
|---|---|
<leader>ac |
Toggle Claude Code panel |
<leader>af |
Focus Claude Code |
<leader>ar |
Resume Claude session |
<leader>aC |
Continue Claude session |
<leader>am |
Select Claude model |
<leader>ab |
Add current buffer to context |
<leader>as |
Send selection to Claude (visual mode) |
<leader>aa |
Accept diff |
<leader>ad |
Deny diff |
| Platform | Status |
|---|---|
| macOS (Apple Silicon) | ✅ Fully supported |
| macOS (Intel) | ✅ Fully supported |
| Ubuntu/Debian | ✅ Fully supported |
| Other Linux |
curl- For downloading installersgit- For cloning repositories- Internet connection - For downloading packages
-
Add the file to chezmoi:
chezmoi add ~/.config/some-tool/config -
Edit and commit:
chezmoi edit ~/.config/some-tool/config chezmoi cd git add -A && git commit -m "Add some-tool config" git push
Edit run_once_install-packages.sh.tmpl to add new tools. The script uses chezmoi's run_once_ prefix, meaning it only runs once per machine. To re-run after changes:
chezmoi state delete-bucket --bucket=scriptState
chezmoi applyPersonal configuration files. Feel free to use as inspiration for your own dotfiles.