dotfiles/AGENTS.md

2.4 KiB

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.

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 (<prefix> 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<letter> (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.