Managed with Chezmoi. This setup is fish-first, with zsh kept as a secondary shell.
sh -c "$(curl -fsLS get.chezmoi.io)" -- -b ~/.local/bin
chezmoi init --apply https://github.com/thedavidharris/dotfiles.git
exec fishchezmoi diff # Preview changes
chezmoi apply # Apply changes
chezmoi edit ~/.config/fish/config.fish
chezmoi status # Check source vs target drift- Shell: fish (primary), zsh (secondary)
- Editor: Neovim (LazyVim)
- Prompt/theme: Starship + Catppuccin Macchiato
- Tool/runtime manager: mise
- Secrets and signing: 1Password CLI + SSH agent
- Package managers:
- macOS: Homebrew (
packages.yaml->Brewfile.tmpl) - WSL/Linux: apt (base dependencies) + Homebrew (shared CLI tools)
- macOS: Homebrew (
Use local machine overrides in ~/.config/chezmoi/chezmoi.toml for values that
must differ across systems.
[data]
# Optional profile hint: macos | wsl | linux
profile = "wsl"
# Optional overrides used by templates.
ssh_signing_program = "/opt/1Password/op-ssh-sign"
ssh_agent_sock = "~/.1password/agent.sock"Template defaults are already defined for macOS and Linux/WSL, and these keys allow per-machine overrides when paths differ.
See docs/WSL.md for full setup, including apt bootstrap, optional Linuxbrew,
chezmoi initialization, and SSH signing verification.
dot_config/fish: primary fish shell config and plugin setupdot_config/zsh: secondary zsh compatibility configdot_config/mise: runtime/tool versions and env injectiondot_config/git: git behavior, aliases, and signing configdot_config/brew: Brewfile template rendered from package datadot_config/nvim: Neovim (LazyVim) configurationdot_agents: home-synced agent rules and skillsdocs: repo documentation and privacy policybin: executable helper scripts.chezmoidata: data inputs for templates and package inventory
catppuccin/fishfranciscolourenco/donejorgebucaran/autopair.fishjorgebucaran/fishermattmc3/macos.fishmattmc3/magic-enter.fishmattmc3/up.fish
See docs/PRIVACY.md for the current privacy/work-config policy and local-only
patterns for internal endpoints and credentials.
docs-gen
docs-lintdocs-gen refreshes generated sections in README.md and AGENTS.md.
docs-lint checks that generated docs are current and referenced paths exist.