Files
fish-config/docs/manual/09-installation.md
T
rootiest 63e71ac9dd feat(docs): generate fish-config.md from the manual tree
Adds docs/build-manual.py (--concat) and a round-trip test in
verify-manual.py that reproduces the pre-migration fish-config.md
exactly from docs/manual/.

Fixes found by the round-trip check, applied in split-manual.py and
re-run to regenerate docs/manual/:
- NAME/SYNOPSIS/TABLE OF CONTENTS had no sidebar.order, so they sorted
  after every numbered section instead of interleaving with DESCRIPTION
  in original document order. All manual pages now get sidebar.order
  from a single position counter matching source order.
- split_h1/split_h2 used .strip() on section bodies, which also ate
  leading indentation on the first body line, corrupting the 4-space
  indented code blocks that open SYNOPSIS and TABLE OF CONTENTS.
- The source's leading pandoc metadata block (title/section/header/
  date/author) was discarded entirely by the splitter. It's now parsed
  off via manualtools.parse and stashed on index.md under a "pandoc"
  key; build-manual.py re-emits it verbatim ahead of the first heading.
2026-07-25 21:39:48 -04:00

1.5 KiB

title, manTitle, sidebar, helpKeywords
title manTitle sidebar helpKeywords
Installation 9. INSTALLATION
order
13
installation
install

This configuration is managed as a git repository. To deploy on a new machine:

mv ~/.config/fish ~/.config/fish.bak   # back up any existing config
git clone https://git.rootiest.dev/rootiest/fish-config.git ~/.config/fish

Then open a new Fish shell. Fisher installs automatically on first launch and the Catppuccin Mocha theme is applied. All other plugin functionality is bundled directly with this config and requires no additional installation.

Return Sentinel

config.fish ends with a return sentinel guard. Any lines appended after it by a tool's setup command (starship init fish | source, zoxide init fish | source, etc.) will have no effect. All integrations are managed via conf.d/ files.

If a new tool's shell integration appears to do nothing, check whether its setup command appended an init line below the sentinel and create a dedicated conf.d/.fish instead.

Updating

Pull the latest changes from the upstream repository without needing a configured git remote:

config-update              Fetch and apply the latest commits from upstream
config-update --dry-run    Preview available changes without applying them
config-update --force      Stash local changes, pull, then restore the stash

The remote URL (https://git.rootiest.dev/rootiest/fish-config.git) is hard-coded, so this works on a fresh clone with no origin configured. All git output is suppressed. Run exec fish after a successful update to reload.