| name | add-config |
| description | Add config to this macOS dotfiles repo. Use for env vars, fish
abbreviations/functions/plugins, direct symlinked config files, tool
integrations, shared agent config, and app config such as Neovim, Ghostty,
Warp, Git, Bat, Atuin, tealdeer, and gh.
|
add-config
Add or update dotfiles config in the repo source. Target files under
~/.config, ~/.warp, and ~/.local/bin are generated by symlinks; do not
edit them directly.
File Map
| Concern | Edit |
|---|
| Fish init, env vars, abbreviations, integrations | fish/config.fish |
| Fish plugins | fish/fish_plugins |
| Fish functions | fish/functions/*.fish |
| Fish conf.d patches | fish/conf.d/*.fish |
| Neovim plugins/options/keymaps | nvim/lua/... |
| Ghostty | ghostty/config |
| Warp keybindings/themes/workflows | warp/keybindings.yaml, warp/themes/*.yaml, warp/workflows/*.yaml |
| Git/GitHub config | git/config, gh/config.yml |
| Bat/Atuin/tealdeer | bat/config, atuin/config.toml, tealdeer/config.toml |
| Shared agent config | .agents/agents/, .agents/rules/, .agents/docs/, .agents/skills/ |
| Bootstrap/link behavior | scripts/bootstrap.sh, scripts/link.sh |
| Packages | Brewfile via add-package |
Patterns
-
Fish abbreviation or env var: edit fish/config.fish, preserving the
existing grouped style.
-
Fish function: add or update fish/functions/<name>.fish. When adding or
removing function files, run ./scripts/link.sh.
-
Fish plugin: edit fish/fish_plugins, then run:
fish scripts/install-fish-plugins.fish
-
Symlinked app config: edit the repo file, then restart the app or open a
new shell. If adding/removing a linked file, update scripts/link.sh and
run it.
-
Neovim config: plugin specs go under nvim/lua/plugins/. Keep LazyVim
conventions and existing keymap prefixes.
-
Package plus config: add the package with add-package, then add the
config in the relevant repo path.
Apply
./scripts/link.sh
Use targeted app reloads when an existing symlinked file changed and no new
link is needed.
Validation
Fish:
fish -n fish/config.fish
for f in fish/functions/*.fish; do fish -n "$f" || exit 1; done
Neovim:
stylua --check nvim/lua
nvim --headless '+lua print("nvim-config-ok")' +qa
Packages:
brew bundle check --file Brewfile
Symlink/bootstrap changes:
./scripts/link.sh
fish scripts/install-fish-plugins.fish
brew bundle check --file Brewfile
Don't
- Do not edit
archive/ unless the user explicitly asks.
- Do not edit generated target files directly.
- Do not symlink writable cache/state directories unless the tool expects it.
- Do not reformat or refactor unrelated config.