Personal configuration files for daily development tools.
The repo uses Makefile as the source of truth for what gets linked into $HOME.
make install: auto-detect macOS, Arch Linux, or WSL and link managed dotfilesmake macos: set up macOS-specific Zsh, Fish, Mise, and VS Code configurationmake vscode-macos: link macOS VS Code settings and install declared extensionsmake vim: link Vim configuration, install vim-plug, and install declared pluginsmake arch: link Arch Linux-specific Zsh configurationmake wsl: link WSL-specific Fish and Mise configurationmake clean: remove only repo-managed symlinks
These paths are currently managed by Makefile:
.tmux.conf->~/.tmux.conf.gitconfig->~/.gitconfig.zshenv->~/.zshenv.vimrc->~/.vimrc.config/nvim/->~/.config/nvim.config/herdr/config.toml->~/.config/herdr/config.toml.config/herdr/plugins/config/cloudmanic.herdr-plus->~/.config/herdr/plugins/config/cloudmanic.herdr-plus.config/ghostty/->~/.config/ghostty.config/zed/->~/.config/zed.config/emacs/->~/.config/emacs.config/starship.toml->~/.config/starship.toml.config/gh/config.yml->~/.config/gh/config.yml.config/jj/config.toml->~/.config/jj/config.toml.config/sqlfluff/->~/.config/sqlfluff/.pi/agent/settings.jsonseeds mutable~/.pi/agent/settings.jsonwhen missing.pi/web-search.json->~/.pi/web-search.json.config/fish/macos/config.fish->~/.config/fish/config.fishon macOS.config/fish/macos/fish_plugins->~/.config/fish/fish_pluginson macOS.config/mise/macos/config.toml->~/.config/mise/config.tomlon macOSvscode/macos/settings.json->~/Library/Application Support/Code/User/settings.jsonon macOSvscode/macos/keybindings.json->~/Library/Application Support/Code/User/keybindings.jsonon macOS.config/mise/wsl/config.toml->~/.config/mise/config.tomlon WSL.config/fish/wsl/config.fish->~/.config/fish/config.fishon WSLzshrc/macos/.zshrc->~/.zshrcon macOSzshrc/arch-i3/.zshrc->~/.zshrcon Arch Linux
.tmux.conf: tmux configuration.gitconfig: Git configuration.zshenv: non-interactive-safe Zsh environment and PATH setup.vimrc: Vim 9.2 configuration managed with vim-plug.config/nvim/: Neovim configuration.config/herdr/: Herdr and Herdr Plus configuration.config/ghostty/: Ghostty terminal configuration.config/zed/: Zed editor configuration.config/emacs/: Emacs configuration.config/starship.toml: Starship prompt configuration.config/gh/config.yml: GitHub CLI preferences (authentication stays outside the repo).config/jj/config.toml: Jujutsu user configuration.config/mise/{macos,wsl}/config.toml: Platform-specific global Mise toolsvscode/macos/: macOS VS Code settings, keybindings, and extension declarations.config/fish/macos/: macOS Fish configuration and Fisher plugin declarations.config/fish/wsl/config.fish: WSL Fish configuration.config/sqlfluff/.sqlfluff: sqlfluff configuration.pi/agent/settings.json: Initial Pi preferences and package declarations; runtime state stays local.pi/web-search.json: Pi web-search plugin preferenceszshrc/macos/.zshrc: macOS Zsh configurationzshrc/arch-i3/.zshrc: Arch Linux Zsh configuration
Neovim is a compact single-file config using native vim.pack.
init.lua: options, keymaps, autocmds, plugins, LSP, completion, and snippetsnvim-pack-lock.json: lockfile managed byvim.pack
See .config/nvim/README.md for plugin install/remove notes.
See AGENTS.md for the repo-wide edit map for automated changes.
Vim 9.2 uses vim-plug for vim-tmux-navigator; run make vim to install both.
Use :RepoDiff or <leader>gg to open the current JJ or Git working-copy diff
in a disposable tab. Pass an optional directory, such as :RepoDiff .config/nvim,
to use the nearest repository containing that directory and limit the diff to
that path. Changed files start collapsed; use Vim's standard z commands to
reveal a complete file entry, and press q to close the tab.
Use :JjDiff or :GitDiff for explicit revision comparisons. Both accept
no arguments for current working-copy changes, from REV [directory] for a
working-copy baseline, show REV [directory] for one revision's patch, or
between REV1 REV2 [directory] to compare endpoints.