# AGENTS.md Guidance for coding agents working in this repository. ## What this is Ayo's personal dotfiles — configuration for vim/neovim, tmux, mutt (email), and various desktop tools. There is no build or test step; the "product" is the config files themselves, which are deployed to the home directory via symlinks. ## Deploying changes `install.sh` symlinks the tracked dotfiles into `~` (and shares `.vimrc` with neovim via `~/.config/nvim/init.vim`). Symlinks are relative (`ln -rsf`), so editing a file in this repo immediately affects the live config — no re-run needed after the initial link. Re-run `install.sh` only when adding a *new* file that needs linking. ```bash sh install.sh ``` Node/pnpm are present only for husky git hooks (`pnpm install` runs `husky` via the `prepare` script). There is no application code and `pnpm test` is a stub that always fails. ## Layout notes - **`.vimrc`** — shared verbatim by both vim and neovim. Plugins are managed by **Vundle** (`:PluginInstall` after editing the plugin list). Uses ALE for linting/fixing with `fix_on_save` on (JS: eslint + prettier; all files: trim whitespace). NERDTree opens on startup; leader-style window nav is remapped to `g h/j/k/l`; `jj`-style escapes and `J`/`K` = 5-line jumps are the core custom motions. - **`vscode-settings.json`** — mirrors the same vim motions (`jj` to escape, `J`/`K` jumps, `gj`/`gk`) via the VSCode vim extension, kept intentionally consistent with `.vimrc`. It is *not* symlinked by `install.sh`; copy it into VSCode's settings manually. - **`.tmux.conf`** — plugins via **tpm** (` I` to install). Split binds are `\` and `-`; pane nav is `Ctrl-h/j/k/l`; theme is tmux-nova. Requires Nerd Fonts and, for the git segment, the `gitmux` binary (see README). - **`.muttrc`** — depends on files NOT in this repo: `~/.mutt/secrets.rc` (smtp/imap creds), `~/.mutt/gpg.rc`, and `~/.mutt/aliases`. HTML mail is rendered through `.mailcap` (links2). Signs mail with PGP. Folder shortcuts are `g` (gh inbox, ga archive, etc.). ## Conventions - Vim-style motion remaps (`jj` escape, `J`/`K` = 5 lines, `gj`/`gk` visual line movement) are duplicated across `.vimrc` and `vscode-settings.json` — keep them in sync when changing one. - Themes are toggled by commenting/uncommenting blocks rather than deleting (see the tmux theme section and the vim `colorscheme` lines); preserve that pattern.