fix(fnm): load managed Node from always-on zsh layer

fnm lived in interactive-only ~/.config/zshrc, so ssh/agents/zsh -c
missed fnm-managed node. Source ~/.config/zsh/*.zsh from .zshenv and
install the fragment as zsh/fnm instead.
This commit is contained in:
Jeffrey
2026-08-07 14:08:07 +08:00
parent 7a43940317
commit 42c8305871
6 changed files with 104 additions and 30 deletions
+8 -3
View File
@@ -23,10 +23,11 @@ From a git checkout:
| Path | Role | Reinstall |
| --- | --- | --- |
| `~/.zshenv` | Always-on: Homebrew, `~/.local/bin`, source `local.zsh` | Overwritten |
| `~/.zshenv` | Always-on: Homebrew, `~/.local/bin`, `~/.config/zsh/*.zsh`, then `local.zsh` | Overwritten |
| `~/.zshrc` | Interactive: omz, plugins, aliases, fzf, zoxide | Overwritten |
| `~/.config/zsh/*.zsh` | Always-on tool fragments (e.g. `fnm.zsh`) | Left alone (via `patch.sh`) |
| `~/.config/zsh/local.zsh` | Machine-local overrides (every zsh, including agents) | **Never overwritten** |
| `~/.config/zshrc/*.zsh` | Personal/tool overlays before oh-my-zsh | Left alone |
| `~/.config/zshrc/*.zsh` | Personal/tool overlays before oh-my-zsh (interactive) | Left alone |
| `~/.local/bin/` | User tools + shims (e.g. `grok``~/.grok/bin/grok`) | Left alone |
easyzsh does **not** manage `~/.zprofile`. Put machine/login hooks in `local.zsh`.
@@ -44,5 +45,9 @@ plugins+=(docker)
Tool fragments from this repo:
```bash
curl -fsSL https://git.miomio.moe/mio/easyzsh/raw/branch/master/patch.sh | bash -s -- fnm pyenv
# always-on (sourced from ~/.zshenv)
curl -fsSL https://git.miomio.moe/mio/easyzsh/raw/branch/master/patch.sh | bash -s -- zsh/fnm
# interactive-only (sourced from ~/.zshrc)
curl -fsSL https://git.miomio.moe/mio/easyzsh/raw/branch/master/patch.sh | bash -s -- pyenv
```