>

Dotfiles

ENTRY
LOGGED

A versioned home directory. Keeping editor, shell, and CLI configuration in a single repo means that any new machine — work laptop, personal desktop, a fresh WSL install — can be productive in a few minutes instead of an evening.

What I reach for daily

  • Editor — LazyVim. A Neovim distribution that ships sane defaults, lazy-loaded plugins, and an LSP setup that just works. Modal editing without the year of yak-shaving.
  • Prompt — Starship. A single TOML configures the prompt across every shell, with git status, language version, and runtime info. Fast and identical wherever I land.
  • Shell — Fish. Sensible defaults, autosuggestions, and syntax highlighting out of the box.
  • Terminal — Ghostty / WezTerm. GPU-accelerated, fast scrollback, predictable keybindings.
  • Multiplexer — tmux. Persistent sessions across SSH and reboots; one window manager I never have to fight.
  • Git UI — Lazygit. Stage hunks, rebase interactively, and resolve conflicts faster than typing the equivalent git commands.
  • AI pair — Claude Code. For everything from one-shot refactors to end-to-end implementation. Settings and per-repo CLAUDE.md files live alongside the dotfiles.
  • CLI sharpening — fzf, ripgrep, eza, bat, zoxide. Replacements and supplements for find / grep / ls / cat / cd that are an order of magnitude nicer to use.

Why bother

Dotfiles are the small percentage of your tooling that has the biggest leverage on every other percent. A keymap that’s just slightly wrong, a shell prompt that’s a bit too noisy, a missing git alias — they’re paper cuts that compound over a decade. Treating these settings as code (versioned, diffed, reviewed) keeps them deliberate.

Status

Currently maintained on GitHub — public for anyone curious to copy a snippet. The setup evolves slowly: I’d rather change one thing a quarter and live with it than re-tile the floor every weekend.