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:
@@ -22,6 +22,16 @@ end
|
|||||||
# leave the shell in a state that re-triggers everything next session.
|
# leave the shell in a state that re-triggers everything next session.
|
||||||
set -U __fish_config_first_run_complete 1
|
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 ───────────────────────────
|
# ──────────────────────────── Welcome message ───────────────────────────
|
||||||
# Printing a first-run welcome banner is opinionated (C6 greeting). The
|
# Printing a first-run welcome banner is opinionated (C6 greeting). The
|
||||||
# first-run state variable is already set unconditionally above, so
|
# first-run state variable is already set unconditionally above, so
|
||||||
|
|||||||
+1
-7
@@ -17,16 +17,10 @@ end
|
|||||||
fish_add_path ~/.local/bin
|
fish_add_path ~/.local/bin
|
||||||
fish_add_path ~/Applications/depot_tools
|
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
|
if not contains ~/.local/share/man $MANPATH
|
||||||
set -gx MANPATH ~/.local/share/man $MANPATH
|
set -gx MANPATH ~/.local/share/man $MANPATH
|
||||||
end
|
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)
|
# Format man pages using bat (only if bat is installed)
|
||||||
# Overriding $MANPAGER is opinionated (C3 overrides)
|
# Overriding $MANPAGER is opinionated (C3 overrides)
|
||||||
|
|||||||
Reference in New Issue
Block a user