Skip to content
chengboPublic

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

84 Commits

Folders and files

Repository files navigation

This is my personal dotfiles, managed with chezmoi.

Setup on a new machine

sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply --source ~/dotfiles chengbo/dotfiles

--source ~/dotfiles makes chezmoi clone the repo straight into ~/dotfiles, so that's the one and only clone on the machine. Don't separately git clone this repo elsewhere — a second clone can drift out of sync with the one chezmoi actually manages.

Dependencies

This repo only manages config files — it doesn't install the tools it configures. Everything below needs to be installed separately on a new machine.

Required everywhere:

  • chezmoi — manages this whole repo
  • zsh + Oh My Zsh — shell and framework (dot_zshrc)
  • git — plus git-delta (delta) as the diff pager, and tig as the git TUI
  • Neovim (0.10+) — config lives in dot_config/nvim, bootstrapped via lazy.nvim/LazyVim; plugins install themselves on first launch, no separate install step needed
  • ripgrep and fd — power Neovim's Snacks picker (find/grep) and its .gitignore-aware file filtering; without them it silently falls back to plain find, which ignores .gitignore entirely. On Ubuntu/Debian: sudo apt install ripgrep fd-find (the package installs as fdfind; symlink it to fd on PATH if some other tool expects the bare name)
  • lsd — replaces ls/ll/l
  • bat — aliased from bat; on Ubuntu/Debian the package installs as batcat (same name clash as fd/fdfind above): sudo apt install bat
  • A Nerd Font in your terminal — needed for the bo prompt theme's icon, lsd's icons, and Neovim's UI (bufferline/neo-tree/dashboard) to render instead of showing blank boxes
  • 1Password — backs SSH auth (SSH_AUTH_SOCK) and SSH commit/tag signing (commit.gpgsign = true in dot_gitconfig.tmpl); the allowedSignersFile also has a specific pubkey hardcoded in private_dot_ssh/allowed_signers

Required for the AI CLI / MCP setup:

  • Claude Code CLI (claude)
  • jq — parses Claude Code's status-line input in dot_claude/executable_statusline.sh
  • Codex CLI (codex)
  • Node.js (so npx is available) — both dot_claude/private_mcp.json and dot_codex/modify_private_config.toml run npx -y @azure-devops/mcp on demand
  • Azure CLI (az), logged in via az login — the ado MCP server authenticates with --authentication azcli

Optional (guarded — harmless if missing):

  • dotnet SDK — dot_path.zsh adds ~/.dotnet and ~/.dotnet/tools to PATH; also needed for Neovim's C# tooling (OmniSharp, csharpier, easy-dotnet.nvim) in dot_config/nvim
  • Rust/Cargo — dot_path.zsh adds ~/.cargo/bin to PATH
  • nvm — dot_path.zsh sources it only if present
  • Worktrunk (wt) — shell integration in dot_zshrc only loads if wt is on PATH
  • OpenCode (opencode) — dot_path.zsh adds ~/.opencode/bin to PATH
  • tmux — config in dot_tmux.conf; install TPM at ~/.tmux/plugins/tpm and use prefix + I to install tmux-resurrect and tmux-continuum for session saving/restoring
  • snap — only relevant on Linux distros that use it

WSL-only:

  • socat and npiperelay.exe — bridge the WSL Unix socket to the Windows-side 1Password SSH agent named pipe (dot_zshrc)
  • op-ssh-sign-wsl.exe — 1Password's SSH commit-signing helper, wired into dot_gitconfig.tmpl only when .chezmoi.os == "linux"

macOS-only:

  • reattach-to-user-namespace — used by dot_tmux-macos.conf for clipboard integration with pbcopy

Usage

chezmoi edit ~/.zshrc   # edit a managed file (edits the source, not the target)
chezmoi diff            # preview what would change
chezmoi apply           # apply the source state to the home directory
chezmoi update          # pull the latest changes from the repo and apply them
chezmoi cd              # cd into the source directory to commit/push changes

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages