Personal dotfiles for macOS, managed with Dotbot.
git clone --recursive https://github.com/alexchen/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install~/.dotfiles/
βββ install # Dotbot installation script
βββ offload # Convert symlinks β real files (remove from repo)
βββ install.conf.yaml # Dotbot symlink configuration
β
βββ config/
β βββ alacritty/ # Terminal emulator (TOML)
β βββ ghostty/ # Terminal emulator
β βββ nvim/ # Neovim editor (Lua config, lazy.nvim)
β βββ pip/ # Python package manager
β βββ starship.toml # Shell prompt
β βββ tmuxthemes/ # Tmux themes
β βββ yazi/ # File manager
β βββ zsh/ # Shell environment
β βββ env.zsh # PATH and environment variables
β βββ tools.zsh # Aliases, functions, tool inits
β βββ plugins.zsh # antidote plugin manager
β
βββ zshrc # Zsh entry point (sources config/zsh/*)
βββ zsh_plugins.txt # antidote plugin list
βββ bash_profile # Bash shell
βββ vimrc # Vim/Neovim stub
βββ tmux.conf # Terminal multiplexer
βββ gitconfig # Git configuration
βββ inputrc # readline settings
βββ condarc # Conda configuration
βββ npmrc # NPM configuration
β
βββ dotbot/ # Dotbot submodule (v1.24.0)
βββ MIGRATION_HISTORY.md # Migration history and details
Shell (zsh)
- antidote plugin manager (zsh-autosuggestions, zsh-syntax-highlighting, zsh-history-substring-search)
- starship prompt
- Tool integrations (fzf, zoxide, yazi, conda)
Editor (Neovim)
- lazy.nvim plugin manager (~25 plugins)
- LSP support (pyright, ruff, lua_ls, texlab, bashls)
- Key:
<leader> = ,
Terminal
- Alacritty (Gruvbox theme, TOML config)
- Ghostty (Gruvbox theme)
- Tmux (seamless vim/tmux navigation, prefix: Ctrl-a)
Tools
- eza (modern ls)
- zoxide (smart cd)
- yazi (file manager)
- fzf (fuzzy finder)
Edit files in the repo, then run ./install to apply changes.
To remove a config from the repo: ./offload <config-name>
- All configs follow XDG Base Directory standard where possible
- Local secrets go in
~/.zshrc.local(gitignored) - See
MIGRATION_HISTORY.mdfor migration history