configuring-zsh
Zsh Shell Configuration
Quick Reference
| Topic | Reference |
|---|---|
| Startup file order | startup-files.md |
| oh-my-zsh patterns | oh-my-zsh.md |
| powerlevel10k setup | powerlevel10k.md |
| sheldon plugin manager | sheldon.md |
| Plugin load order | plugins.md |
| Performance tuning | performance.md |
Workflow Decision Tree
| Need to... | Action |
|---|---|
| Set env vars / PATH / locales | Read startup-files.md → edit .zshenv or .zprofile |
| Configure aliases, keybinds, completions, prompt | Edit .zshrc |
| Fix performance issues | Read performance.md → profile startup |
| Add/configure plugins | Read plugins.md + relevant manager reference |
Chezmoi Integration
- Edit Zsh configs in the chezmoi source (this repo), not directly in
~ - Respect
{{ ... }}template blocks in files - Source naming:
dot_zshrc→~/.zshrc,private_dot_config/sheldon→~/.config/sheldon - For chezmoi workflows, see
managing-chezmoiskill
Default Guardrails
- Keep
.zshenvidempotent and fast; no external commands - No aliases/functions in
.zshenv - Use
typeset -gx VAR=...orexport VAR=...with defensive checks - Set
fpathbeforecompinit; runcompinitonce only - Document plugin load order (especially
zsh-autocomplete+zsh-syntax-highlighting)
Common Tasks
| Task | Approach |
|---|---|
| Add env var | .zshenv (everywhere) vs .zprofile (login) vs .zshrc (interactive) |
| Fix PATH | Ensure ordering, remove duplicates, avoid PATH=$PATH:... in multiple files |
| Enable completions | Set fpath → compinit once → cache if needed |
| Add plugin | Choose manager → ensure correct load order |
| Setup p10k | Instant prompt block first in .zshrc → source ~/.p10k.zsh after plugins |
More from mrpointer/dotfiles
configuring-github-actions
Create and troubleshoot GitHub Actions workflows. Use when editing .github/workflows files, setting up CI/CD pipelines, configuring matrix builds for multi-platform testing, debugging failing workflows, adding caching or artifacts, running E2E tests in containers, or asking "why is my workflow failing" or "how do I test on multiple OSes".
11managing-chezmoi
Manage dotfiles with chezmoi. Use when adding files to chezmoi, running chezmoi add/apply/diff/status, debugging why changes aren't appearing, working with chezmoi templates or .chezmoiignore, understanding source vs target files, resolving merge conflicts, or asking "how do I manage this file with chezmoi". For chezmoi command uncertainties, use Context7 to fetch latest docs.
2writing-go-tests
Write Go tests following project conventions. Use when creating test files, writing unit or integration tests, choosing mocks, or setting up test fixtures. Covers test naming, assertions, mock usage, table-driven patterns, and common pitfalls.
1writing-go-code
Apply Go coding standards when writing or modifying Go code. Use when implementing functions, using dependency injection, handling errors idiomatically, or working with interfaces. For test conventions, use the `writing-go-tests` skill instead.
1testing-go-code
Run Go unit tests, coverage reports, and benchmarks. Use when you need to run tests, check coverage, run benchmarks, or regenerate mocks after interface changes.
1linting-go-code
Lint and format Go code. Use when you need to run linters, fix lint errors, format code, or understand why a linter is complaining.
1