My personal dotfiles, managed with chezmoi.
Install chezmoi using the recommended method for your platform, then initialize this repo and apply the files you want. This repo does not provide installer scripts. It mainly exists as a backup of my personal configuration.
chezmoi init BarryYangi/chezmoi-dotfiles
chezmoi applyWorks on both macOS and Linux.
Install what is needed for the configs you actually plan to use:
- Shell:
zsh,oh-my-zsh,spaceship-prompt,zsh-autosuggestions,zsh-syntax-highlighting,gh,hub,fzf,zoxide,eza,diff-so-fancy - CLI tools:
nvim(package name may beneovim),yazi,zellij,fastfetch,btop,nvm,bun - Optional Yazi extras:
mpv,mediainfo,unar,exiftool - Fonts:
Maple Mono NF CN,Maple Mono NF - Manual GUI apps:
ghostty,kitty,wezterm,zed,visual-studio-code,cursor
batforcatfdforfindrgforgrepezaforlszoxidefor smartercdbtopfortopjqfor JSON processingtldrfor concise command examplesdiff-so-fancyfor cleanergit difflazygitfor a terminal Git UIuvfor modern Python package and project management
Worth considering if you want to swap parts of the stack later: delta as a fuller diff viewer, and fnm as a lighter/faster alternative to nvm.
zsh: shell aliases, prompt, completions, and daily CLI workflow. Depends onzsh,oh-my-zsh,spaceship-prompt,zsh-autosuggestions,zsh-syntax-highlighting,gh,hub,fzf,zoxide,eza,diff-so-fancy, and optionallynvmandbun.nvim: editor config based on AstroNvim. Depends on thenvimcommand, which may be packaged asneovim.yazi: file manager config. Depends onyazi.mpv,mediainfo,unar, andexiftoolare optional extras for opener and preview integrations.zellij: terminal multiplexer config. Depends onzellij.fastfetch: system info config. Depends onfastfetch.btop: system monitor config. Depends onbtop.ghostty,kitty,wezterm: terminal emulator configs. Install the app manually first, then apply the matching config.zed,visual-studio-code,cursor: editor configs. Install the app manually first, then apply the matching config.
You can apply only specific configs:
chezmoi apply ~/.config/ghostty # Ghostty only
chezmoi apply ~/.config/nvim # nvim only
chezmoi apply ~/.zshrc # zsh only- Shell: zsh, aliases, prompt, completions
- Terminals: Ghostty, Kitty, WezTerm
- Editors: nvim, Zed, VS Code, Cursor
- CLI tools: Yazi, Zellij, Fastfetch, Btop
- Other: bun config, Claude Code instructions
- macOS - Homebrew
- Linux - system package manager, primarily
aptandpacman, withdnf/zypper/apkas best-effort fallbacks
This repo does not try to automate software installation. VS Code / Cursor config paths are automatically resolved per platform.
# Sync local changes to chezmoi
chezmoi re-add
# Push to remote
chezmoi cd && git add -A && git commit -m "update" && git pushIf an agent is setting up this repo on a machine:
- Read this README first.
- Ask the user which config groups they actually want before installing anything.
- Detect the current platform.
- Choose the package manager based on platform.
- Install only the dependencies that are actually needed for the selected configs.
- If the user selects
zsh, install the zsh-related dependencies first. - After zsh dependencies are installed, make zsh the default login shell and continue the setup in a zsh session.
- Treat GUI apps like terminal emulators and GUI editors as manual installs.