fix(first-run): move fish-config.1 symlink install to first-run

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.
This commit is contained in:
2026-06-12 19:37:30 -04:00
parent 654503062b
commit 953aafd055
2 changed files with 11 additions and 7 deletions
+10
View File
@@ -22,6 +22,16 @@ end
# leave the shell in a state that re-triggers everything next session.
set -U __fish_config_first_run_complete 1
# ──────────────────────────── Man page symlink ──────────────────────────
# Install fish-config.1 into the user man database once, like an install step.
# Unconditional: standard enough that no category gate is warranted.
set -l _man1 ~/.local/share/man/man1
set -l _src ~/.config/fish/docs/fish-config.1
if test -f $_src; and not test -L $_man1/fish-config.1
mkdir -p $_man1
ln -sf $_src $_man1/fish-config.1
end
# ──────────────────────────── Welcome message ───────────────────────────
# Printing a first-run welcome banner is opinionated (C6 greeting). The
# first-run state variable is already set unconditionally above, so
+1 -7
View File
@@ -17,16 +17,10 @@ end
fish_add_path ~/.local/bin
fish_add_path ~/Applications/depot_tools
# Expose user-local man pages and keep fish-config.1 symlink current
# Expose user-local man pages
if not contains ~/.local/share/man $MANPATH
set -gx MANPATH ~/.local/share/man $MANPATH
end
set -l _man1 ~/.local/share/man/man1
set -l _src ~/.config/fish/docs/fish-config.1
if test -f $_src; and not test -L $_man1/fish-config.1
mkdir -p $_man1
ln -sf $_src $_man1/fish-config.1
end
# Format man pages using bat (only if bat is installed)
# Overriding $MANPAGER is opinionated (C3 overrides)