Moves the fish-config.1 man page symlink creation from conf.d/tricks.fish (every shell start) to conf.d/first_run.fish (once, like a real install step)
MANPATH addition stays in tricks.fish — env var that must be set each session
Symlink creation is unconditional in first-run (no category gate) — standard enough to not warrant one
Updates docs/fish-config.md to reflect the first-run timing
Manual Verification
Reset first-run state: set -Ue __fish_config_first_run_complete
Open a new fish shell — symlink should be recreated and man fish-config should work
Open another new shell — symlink creation should not re-run (first-run guard)
Confirm MANPATH still includes ~/.local/share/man in every shell
## Summary
- Moves the `fish-config.1` man page symlink creation from `conf.d/tricks.fish` (every shell start) to `conf.d/first_run.fish` (once, like a real install step)
- `MANPATH` addition stays in `tricks.fish` — env var that must be set each session
- Symlink creation is unconditional in first-run (no category gate) — standard enough to not warrant one
- Updates `docs/fish-config.md` to reflect the first-run timing
## Manual Verification
- [x] Reset first-run state: `set -Ue __fish_config_first_run_complete`
- [x] Remove existing symlink: `rm ~/.local/share/man/man1/fish-config.1`
- [x] Open a new fish shell — symlink should be recreated and `man fish-config` should work
- [x] Open another new shell — symlink creation should not re-run (first-run guard)
- [x] Confirm `MANPATH` still includes `~/.local/share/man` in every shell
Startup side-effects that modify the filesystem belong in first-run, not
in a recurring conf.d fragment. The symlink is now created once (like a
real install step) instead of being checked on every shell launch.
MANPATH addition stays in tricks.fish — that's an env var that must be
set each session.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
fish-config.1man page symlink creation fromconf.d/tricks.fish(every shell start) toconf.d/first_run.fish(once, like a real install step)MANPATHaddition stays intricks.fish— env var that must be set each sessiondocs/fish-config.mdto reflect the first-run timingManual Verification
set -Ue __fish_config_first_run_completerm ~/.local/share/man/man1/fish-config.1man fish-configshould workMANPATHstill includes~/.local/share/manin every shell