This file provides guidance to AI coding agents when working with code in this repository.
Personal dotfiles repository organized by topic (tool-based) rather than by purpose. Each tool has its own directory containing related configurations and scripts.
# macOS/Linux
./install.sh
# Windows (PowerShell as admin)
./install.ps1The install script:
- Installs Homebrew (or winget on Windows) if missing
- Installs packages from
packages/Brewfile(andBrewfile.macoson macOS) - Creates symlinks from config files to their expected locations
- Backs up existing files with
.backupsuffix before replacing
Post-install steps:
source ~/.bashrcto load shell config- In tmux:
Ctrl-a + Ito install plugins - Open nvim to auto-install plugins via lazy.nvim
bash/- Shell configuration (.bash_profile,.bashrc)nvim/- Neovim config using lazy.nvim plugin managertmux/- Tmux configuration with TPMgit/- Git config, gitignore, and aliasesdocker/- Docker compose aliasesopencode/- OpenCode configuration (theme, provider settings)claude/- Claude Code settings and status line scriptpackages/- Package definitions (Brewfile, winget.json)
Auto-sourcing: .bashrc auto-discovers and sources */env and */aliases files from all topic directories. Environment files are loaded before aliases.
Symlink-based: Configs are symlinked (not copied) so changes in this repo are immediately reflected.
Cross-platform: OS detection in install scripts with conditional behavior for macOS, Linux, and Windows.
init.lua- Entry point, requires config moduleslua/config/vim.lua- Core settings (leader=space, relative numbers, color columns at 81/121)lua/config/lazy.lua- lazy.nvim bootstraplua/plugins/*.lua- Individual plugin configurations
LSP servers: lua_ls, ts_ls, phpactor, cssls, html (managed via mason)
Catppuccin theme used across both Neovim and Tmux.
Tmux (prefix: Ctrl-a):
|/-for splits (instead of"/%)Alt+1-9for quick window switching
Neovim (leader: space):
Khover docs,gdgo to definition<leader>haadd to Harpoon,<leader>hhHarpoon menu<leader>1-5quick Harpoon file selection