chore(docs): regenerate man page, HTML docs, and wiki

This commit is contained in:
Gitea Actions
2026-06-16 05:30:46 +00:00
parent 429ccc3876
commit 3990bd13b4
5 changed files with 158 additions and 16 deletions
+57 -3
View File
@@ -54,8 +54,9 @@ Drop-in replacements for common Unix tools (ls, cat, rm, du, ping, less)
Deep Kitty and WezTerm terminal integration: tab/window/pane management Deep Kitty and WezTerm terminal integration: tab/window/pane management
from the command line from the command line
.IP \[bu] 2 .IP \[bu] 2
Scrollback history snapshots saved to \[ti]/.terminal_history on session Automatic session logging: terminal scrollback, tmux/zellij panes, and
exit paru/yay output captured to \[ti]/.terminal_history (on by default; see
below)
.IP \[bu] 2 .IP \[bu] 2
Automatic Python virtualenv activation on directory change Automatic Python virtualenv activation on directory change
.IP \[bu] 2 .IP \[bu] 2
@@ -64,6 +65,23 @@ Cross-platform package management via pkg and fish-deps
AI session helpers for Claude Code and Antigravity AI session helpers for Claude Code and Antigravity
.IP \[bu] 2 .IP \[bu] 2
Catppuccin Mocha color theme throughout Catppuccin Mocha color theme throughout
.RS 2
.PP
┌───────────────────────────────────────────────────────────────────────────┐
│ CAUTION - SESSION LOGGING IS ON BY DEFAULT │ │ │ │ This configuration
silently records terminal output to │ │ \[ti]/.terminal_history: Kitty
scrollback on window close, live tmux pane │ │ streams, zellij pane
snapshots on exit, and full paru/yay output.
These │ │ logs can contain command output, file contents, and secrets
printed to │ │ the terminal.
Nothing leaves your machine, but the files persist locally.
│ │ │ │ Disable all logging with: set -U __fish_config_op_logging off │
│ Prefer a menu?
Run the interactive picker: config-toggle │ │ See Section 7 (C5 -
Logging and Capture) for the full breakdown.
└───────────────────────────────────────────────────────────────────────────┘
.RE
.PP .PP
The configuration is split across: The configuration is split across:
.IP .IP
@@ -80,6 +98,8 @@ conf.d/
logging-events.fish C5 --on-variable event handlers; syncs logging state at startup logging-events.fish C5 --on-variable event handlers; syncs logging state at startup
paru-wrapper.fish Auto-generates \[ti]/.local/bin/paru logging wrapper paru-wrapper.fish Auto-generates \[ti]/.local/bin/paru logging wrapper
puffer.fish !! / !$ / ./ expansion (bundled from nickeb96/puffer-fish) puffer.fish !! / !$ / ./ expansion (bundled from nickeb96/puffer-fish)
tmux-logging.fish C5 starts tmux pipe-pane capture when fish runs inside tmux
zellij-logging.fish C5 fish_exit handler dumping zellij pane scrollback on exit
sponge_privacy.fish Sponge privacy patterns; filters credentials from history sponge_privacy.fish Sponge privacy patterns; filters credentials from history
starship.fish fish_prompt with OSC 133 shell-integration markers starship.fish fish_prompt with OSC 133 shell-integration markers
tailscale.fish Tailscale CLI tab completions tailscale.fish Tailscale CLI tab completions
@@ -1973,6 +1993,11 @@ set -U __fish_config_op_greeting 1
\f[R] \f[R]
.fi .fi
.PP .PP
For an interactive alternative to setting these variables by hand, run
config-toggle \[em] a full-screen TUI that flips any category (including
C5 logging) on or off, per session or universally.
See its entry in Section 5.
.PP
Notes: Notes:
.IP \[bu] 2 .IP \[bu] 2
Command shadows (rm, cat, ls, \&...) Command shadows (rm, cat, ls, \&...)
@@ -2116,7 +2141,7 @@ print a colored error to stderr naming the variable that disabled them
rather than silently failing. rather than silently failing.
.SS C5 \[em] Logging and Capture .SS C5 \[em] Logging and Capture
.PP .PP
Three components capture shell output to disk. Five components capture shell output to disk.
Disabling __fish_config_op_logging skips all capture and removes the Disabling __fish_config_op_logging skips all capture and removes the
logging wrappers. logging wrappers.
.IP .IP
@@ -2126,6 +2151,10 @@ Component What it captures
─────────────────────────────────────────────────────────────────────────── ───────────────────────────────────────────────────────────────────────────
Scrollback capture Terminal session output saved to: Scrollback capture Terminal session output saved to:
\[ti]/.terminal_history/scrollback_YYYY-MM-DD_HH-MM-SS.log \[ti]/.terminal_history/scrollback_YYYY-MM-DD_HH-MM-SS.log
tmux pane capture Continuous pane stream via pipe-pane, saved to:
\[ti]/.terminal_history/tmux_<session>-w<win>-p<pane>_YYYY-MM-DD_HH-MM-SS.log
zellij pane capture Pane scrollback snapshot on shell exit, saved to:
\[ti]/.terminal_history/zellij_<session>-p<pane>_YYYY-MM-DD_HH-MM-SS.log
paru wrapper All paru/AUR output captured to: paru wrapper All paru/AUR output captured to:
\[ti]/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log \[ti]/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log
yay wrapper All yay/AUR output captured to: yay wrapper All yay/AUR output captured to:
@@ -2134,6 +2163,27 @@ Kitty watcher watcher.py captures scrollback when Kitty closes
\f[R] \f[R]
.fi .fi
.PP .PP
The tmux capture starts automatically when fish launches inside any tmux
pane ($TMUX is set).
It uses tmux\[cq]s native pipe-pane to stream all pane output directly
to disk without an intermediate process.
Each fish shell session gets its own log file; a new log is created on
each shell start (including exec fish and new splits).
Before each new log, the oldest tmux_*.log files are pruned (by
modification time) to keep the total within
SCROLLBACK_HISTORY_MAX_FILES, matching the paru/yay wrapper behaviour.
.PP
The zellij capture works differently: Zellij has no live
output-streaming facility like pipe-pane, so the log is taken as a
one-shot snapshot when the shell exits, via
\f[V]zellij action dump-screen --full\f[R].
A fish_exit handler (registered whenever $ZELLIJ is set) writes the
pane\[cq]s full scrollback and then prunes old zellij_*.log files the
same way.
Because the capture happens at exit, toggling __fish_config_op_logging
takes effect on the next exit with no restart or sentinel coordination
needed \[em] the C5 guard is re-checked when the handler fires.
.PP
Logging coordination via sentinel file Logging coordination via sentinel file
.PP .PP
C5 uses a sentinel file to synchronize state between the shell and C5 uses a sentinel file to synchronize state between the shell and
@@ -2155,6 +2205,8 @@ Kitty\[cq]s watcher.py reads the sentinel on each save attempt and skips
capture \[em] no Kitty restart required. capture \[em] no Kitty restart required.
4. 4.
smart_exit stops saving scrollback logs. smart_exit stops saving scrollback logs.
5.
Stops tmux pipe-pane capture in every open fish shell inside tmux.
.PP .PP
Re-enabling __fish_config_op_logging: 1. Re-enabling __fish_config_op_logging: 1.
Removes the sentinel in every open shell. Removes the sentinel in every open shell.
@@ -2162,6 +2214,8 @@ Removes the sentinel in every open shell.
Regenerates paru/yay logging wrappers in \[ti]/.local/bin/. Regenerates paru/yay logging wrappers in \[ti]/.local/bin/.
3. 3.
Kitty watcher resumes capture on the next session exit. Kitty watcher resumes capture on the next session exit.
4.
Restarts tmux pipe-pane capture in every open fish shell inside tmux.
.PP .PP
Changes propagate to all running shells through an event handler that Changes propagate to all running shells through an event handler that
fires whenever __fish_config_op_logging changes \[em] no shell restart fires whenever __fish_config_op_logging changes \[em] no shell restart
+30 -1
View File
@@ -576,6 +576,10 @@ set -Ue __fish_config_opinionated
set -U __fish_config_opinionated 0 set -U __fish_config_opinionated 0
set -U __fish_config_op_greeting 1 set -U __fish_config_op_greeting 1
# (erase both to go back to full-flavor defaults)</code></pre> # (erase both to go back to full-flavor defaults)</code></pre>
<p>For an interactive alternative to setting these variables by hand,
run config-toggle — a full-screen TUI that flips any category (including
C5 logging) on or off, per session or universally. See its entry in
Section 5.</p>
<p>Notes:</p> <p>Notes:</p>
<ul> <ul>
<li>Command shadows (rm, cat, ls, ...) react immediately; conf.d-level <li>Command shadows (rm, cat, ls, ...) react immediately; conf.d-level
@@ -690,18 +694,39 @@ upgrade) print a colored error to stderr naming the variable that
disabled them rather than silently failing.</p> disabled them rather than silently failing.</p>
<h4 data-number="11.5.1.5" id="c5--logging-and-capture">C5 — Logging and <h4 data-number="11.5.1.5" id="c5--logging-and-capture">C5 — Logging and
Capture</h4> Capture</h4>
<p>Three components capture shell output to disk. Disabling <p>Five components capture shell output to disk. Disabling
__fish_config_op_logging skips all capture and removes the logging __fish_config_op_logging skips all capture and removes the logging
wrappers.</p> wrappers.</p>
<pre><code>Component What it captures <pre><code>Component What it captures
─────────────────────────────────────────────────────────────────────────── ───────────────────────────────────────────────────────────────────────────
Scrollback capture Terminal session output saved to: Scrollback capture Terminal session output saved to:
~/.terminal_history/scrollback_YYYY-MM-DD_HH-MM-SS.log ~/.terminal_history/scrollback_YYYY-MM-DD_HH-MM-SS.log
tmux pane capture Continuous pane stream via pipe-pane, saved to:
~/.terminal_history/tmux_&lt;session&gt;-w&lt;win&gt;-p&lt;pane&gt;_YYYY-MM-DD_HH-MM-SS.log
zellij pane capture Pane scrollback snapshot on shell exit, saved to:
~/.terminal_history/zellij_&lt;session&gt;-p&lt;pane&gt;_YYYY-MM-DD_HH-MM-SS.log
paru wrapper All paru/AUR output captured to: paru wrapper All paru/AUR output captured to:
~/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log ~/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log
yay wrapper All yay/AUR output captured to: yay wrapper All yay/AUR output captured to:
~/.terminal_history/yay_YYYY-MM-DD_HH-MM-SS.log ~/.terminal_history/yay_YYYY-MM-DD_HH-MM-SS.log
Kitty watcher watcher.py captures scrollback when Kitty closes</code></pre> Kitty watcher watcher.py captures scrollback when Kitty closes</code></pre>
<p>The tmux capture starts automatically when fish launches inside any
tmux pane ($TMUX is set). It uses tmux's native pipe-pane to stream all
pane output directly to disk without an intermediate process. Each fish
shell session gets its own log file; a new log is created on each shell
start (including exec fish and new splits). Before each new log, the
oldest tmux_*.log files are pruned (by modification time) to keep the
total within SCROLLBACK_HISTORY_MAX_FILES, matching the paru/yay wrapper
behaviour.</p>
<p>The zellij capture works differently: Zellij has no live
output-streaming facility like pipe-pane, so the log is taken as a
one-shot snapshot when the shell exits, via
<code>zellij action dump-screen --full</code>. A fish_exit handler
(registered whenever $ZELLIJ is set) writes the pane's full scrollback
and then prunes old zellij_*.log files the same way. Because the capture
happens at exit, toggling __fish_config_op_logging takes effect on the
next exit with no restart or sentinel coordination needed — the C5 guard
is re-checked when the handler fires.</p>
<p>Logging coordination via sentinel file</p> <p>Logging coordination via sentinel file</p>
<p>C5 uses a sentinel file to synchronize state between the shell and <p>C5 uses a sentinel file to synchronize state between the shell and
out-of-process components (the Kitty watcher and all running out-of-process components (the Kitty watcher and all running
@@ -715,12 +740,16 @@ bare /usr/bin/paru and /usr/bin/yay are used instead.</li>
<li>Kitty's watcher.py reads the sentinel on each save attempt and skips <li>Kitty's watcher.py reads the sentinel on each save attempt and skips
capture — no Kitty restart required.</li> capture — no Kitty restart required.</li>
<li>smart_exit stops saving scrollback logs.</li> <li>smart_exit stops saving scrollback logs.</li>
<li>Stops tmux pipe-pane capture in every open fish shell inside
tmux.</li>
</ol> </ol>
<p>Re-enabling __fish_config_op_logging:</p> <p>Re-enabling __fish_config_op_logging:</p>
<ol type="1"> <ol type="1">
<li>Removes the sentinel in every open shell.</li> <li>Removes the sentinel in every open shell.</li>
<li>Regenerates paru/yay logging wrappers in ~/.local/bin/.</li> <li>Regenerates paru/yay logging wrappers in ~/.local/bin/.</li>
<li>Kitty watcher resumes capture on the next session exit.</li> <li>Kitty watcher resumes capture on the next session exit.</li>
<li>Restarts tmux pipe-pane capture in every open fish shell inside
tmux.</li>
</ol> </ol>
<p>Changes propagate to all running shells through an event handler that <p>Changes propagate to all running shells through an event handler that
fires whenever __fish_config_op_logging changes — no shell restart fires whenever __fish_config_op_logging changes — no shell restart
+25 -10
View File
@@ -492,16 +492,29 @@
<p>A production-grade Fish shell configuration targeting Fish 4.x. It <p>A production-grade Fish shell configuration targeting Fish 4.x. It
provides:</p> provides:</p>
<ul> <ul>
<li>Drop-in replacements for common Unix tools (ls, cat, rm, du, ping, <li><p>Drop-in replacements for common Unix tools (ls, cat, rm, du,
less)</li> ping, less)</p></li>
<li>Deep Kitty and WezTerm terminal integration: tab/window/pane <li><p>Deep Kitty and WezTerm terminal integration: tab/window/pane
management from the command line</li> management from the command line</p></li>
<li>Scrollback history snapshots saved to ~/.terminal_history on session <li><p>Automatic session logging: terminal scrollback, tmux/zellij
exit</li> panes, and paru/yay output captured to ~/.terminal_history (on by
<li>Automatic Python virtualenv activation on directory change</li> default; see below)</p></li>
<li>Cross-platform package management via pkg and fish-deps</li> <li><p>Automatic Python virtualenv activation on directory
<li>AI session helpers for Claude Code and Antigravity</li> change</p></li>
<li>Catppuccin Mocha color theme throughout</li> <li><p>Cross-platform package management via pkg and fish-deps</p></li>
<li><p>AI session helpers for Claude Code and Antigravity</p></li>
<li><p>Catppuccin Mocha color theme throughout</p>
<p>┌───────────────────────────────────────────────────────────────────────────┐
│ CAUTION - SESSION LOGGING IS ON BY DEFAULT │ │ │ │ This configuration
silently records terminal output to │ │ ~/.terminal_history: Kitty
scrollback on window close, live tmux pane │ │ streams, zellij pane
snapshots on exit, and full paru/yay output. These │ │ logs can contain
command output, file contents, and secrets printed to │ │ the terminal.
Nothing leaves your machine, but the files persist locally. │ │ │ │
Disable all logging with: set -U __fish_config_op_logging off │ │ Prefer
a menu? Run the interactive picker: config-toggle │ │ See Section 7 (C5
- Logging and Capture) for the full breakdown. │
└───────────────────────────────────────────────────────────────────────────┘</p></li>
</ul> </ul>
<p>The configuration is split across:</p> <p>The configuration is split across:</p>
<pre><code>config.fish Main entry point; sets env vars and PATH <pre><code>config.fish Main entry point; sets env vars and PATH
@@ -515,6 +528,8 @@ conf.d/
logging-events.fish C5 --on-variable event handlers; syncs logging state at startup logging-events.fish C5 --on-variable event handlers; syncs logging state at startup
paru-wrapper.fish Auto-generates ~/.local/bin/paru logging wrapper paru-wrapper.fish Auto-generates ~/.local/bin/paru logging wrapper
puffer.fish !! / !$ / ./ expansion (bundled from nickeb96/puffer-fish) puffer.fish !! / !$ / ./ expansion (bundled from nickeb96/puffer-fish)
tmux-logging.fish C5 starts tmux pipe-pane capture when fish runs inside tmux
zellij-logging.fish C5 fish_exit handler dumping zellij pane scrollback on exit
sponge_privacy.fish Sponge privacy patterns; filters credentials from history sponge_privacy.fish Sponge privacy patterns; filters credentials from history
starship.fish fish_prompt with OSC 133 shell-integration markers starship.fish fish_prompt with OSC 133 shell-integration markers
tailscale.fish Tailscale CLI tab completions tailscale.fish Tailscale CLI tab completions
+28 -1
View File
@@ -101,6 +101,10 @@ Examples:
set -U __fish_config_op_greeting 1 set -U __fish_config_op_greeting 1
# (erase both to go back to full-flavor defaults) # (erase both to go back to full-flavor defaults)
For an interactive alternative to setting these variables by hand, run
config-toggle — a full-screen TUI that flips any category (including C5
logging) on or off, per session or universally. See its entry in Section 5.
Notes: Notes:
- Command shadows (rm, cat, ls, ...) react immediately; conf.d-level - Command shadows (rm, cat, ls, ...) react immediately; conf.d-level
@@ -227,19 +231,40 @@ silently failing.
#### C5 — Logging and Capture #### C5 — Logging and Capture
Three components capture shell output to disk. Disabling Five components capture shell output to disk. Disabling
__fish_config_op_logging skips all capture and removes the logging wrappers. __fish_config_op_logging skips all capture and removes the logging wrappers.
Component What it captures Component What it captures
─────────────────────────────────────────────────────────────────────────── ───────────────────────────────────────────────────────────────────────────
Scrollback capture Terminal session output saved to: Scrollback capture Terminal session output saved to:
~/.terminal_history/scrollback_YYYY-MM-DD_HH-MM-SS.log ~/.terminal_history/scrollback_YYYY-MM-DD_HH-MM-SS.log
tmux pane capture Continuous pane stream via pipe-pane, saved to:
~/.terminal_history/tmux_<session>-w<win>-p<pane>_YYYY-MM-DD_HH-MM-SS.log
zellij pane capture Pane scrollback snapshot on shell exit, saved to:
~/.terminal_history/zellij_<session>-p<pane>_YYYY-MM-DD_HH-MM-SS.log
paru wrapper All paru/AUR output captured to: paru wrapper All paru/AUR output captured to:
~/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log ~/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log
yay wrapper All yay/AUR output captured to: yay wrapper All yay/AUR output captured to:
~/.terminal_history/yay_YYYY-MM-DD_HH-MM-SS.log ~/.terminal_history/yay_YYYY-MM-DD_HH-MM-SS.log
Kitty watcher watcher.py captures scrollback when Kitty closes Kitty watcher watcher.py captures scrollback when Kitty closes
The tmux capture starts automatically when fish launches inside any tmux
pane ($TMUX is set). It uses tmux's native pipe-pane to stream all pane
output directly to disk without an intermediate process. Each fish shell
session gets its own log file; a new log is created on each shell start
(including exec fish and new splits). Before each new log, the oldest
tmux_*.log files are pruned (by modification time) to keep the total within
SCROLLBACK_HISTORY_MAX_FILES, matching the paru/yay wrapper behaviour.
The zellij capture works differently: Zellij has no live output-streaming
facility like pipe-pane, so the log is taken as a one-shot snapshot when the
shell exits, via `zellij action dump-screen --full`. A fish_exit handler
(registered whenever $ZELLIJ is set) writes the pane's full scrollback and
then prunes old zellij_*.log files the same way. Because the capture happens
at exit, toggling __fish_config_op_logging takes effect on the next exit with
no restart or sentinel coordination needed — the C5 guard is re-checked when
the handler fires.
Logging coordination via sentinel file Logging coordination via sentinel file
C5 uses a sentinel file to synchronize state between the shell and C5 uses a sentinel file to synchronize state between the shell and
@@ -254,11 +279,13 @@ Disabling __fish_config_op_logging:
3. Kitty's watcher.py reads the sentinel on each save attempt and 3. Kitty's watcher.py reads the sentinel on each save attempt and
skips capture — no Kitty restart required. skips capture — no Kitty restart required.
4. smart_exit stops saving scrollback logs. 4. smart_exit stops saving scrollback logs.
5. Stops tmux pipe-pane capture in every open fish shell inside tmux.
Re-enabling __fish_config_op_logging: Re-enabling __fish_config_op_logging:
1. Removes the sentinel in every open shell. 1. Removes the sentinel in every open shell.
2. Regenerates paru/yay logging wrappers in ~/.local/bin/. 2. Regenerates paru/yay logging wrappers in ~/.local/bin/.
3. Kitty watcher resumes capture on the next session exit. 3. Kitty watcher resumes capture on the next session exit.
4. Restarts tmux pipe-pane capture in every open fish shell inside tmux.
Changes propagate to all running shells through an event handler that fires Changes propagate to all running shells through an event handler that fires
whenever __fish_config_op_logging changes — no shell restart needed. whenever __fish_config_op_logging changes — no shell restart needed.
+18 -1
View File
@@ -5,12 +5,27 @@ A production-grade Fish shell configuration targeting Fish 4.x. It provides:
- Drop-in replacements for common Unix tools (ls, cat, rm, du, ping, less) - Drop-in replacements for common Unix tools (ls, cat, rm, du, ping, less)
- Deep Kitty and WezTerm terminal integration: tab/window/pane management from - Deep Kitty and WezTerm terminal integration: tab/window/pane management from
the command line the command line
- Scrollback history snapshots saved to ~/.terminal_history on session exit - Automatic session logging: terminal scrollback, tmux/zellij panes, and
paru/yay output captured to ~/.terminal_history (on by default; see below)
- Automatic Python virtualenv activation on directory change - Automatic Python virtualenv activation on directory change
- Cross-platform package management via pkg and fish-deps - Cross-platform package management via pkg and fish-deps
- AI session helpers for Claude Code and Antigravity - AI session helpers for Claude Code and Antigravity
- Catppuccin Mocha color theme throughout - Catppuccin Mocha color theme throughout
┌───────────────────────────────────────────────────────────────────────────┐
│ CAUTION - SESSION LOGGING IS ON BY DEFAULT │
│ │
│ This configuration silently records terminal output to │
│ ~/.terminal_history: Kitty scrollback on window close, live tmux pane │
│ streams, zellij pane snapshots on exit, and full paru/yay output. These │
│ logs can contain command output, file contents, and secrets printed to │
│ the terminal. Nothing leaves your machine, but the files persist locally. │
│ │
│ Disable all logging with: set -U __fish_config_op_logging off │
│ Prefer a menu? Run the interactive picker: config-toggle │
│ See Section 7 (C5 - Logging and Capture) for the full breakdown. │
└───────────────────────────────────────────────────────────────────────────┘
The configuration is split across: The configuration is split across:
config.fish Main entry point; sets env vars and PATH config.fish Main entry point; sets env vars and PATH
@@ -24,6 +39,8 @@ The configuration is split across:
logging-events.fish C5 --on-variable event handlers; syncs logging state at startup logging-events.fish C5 --on-variable event handlers; syncs logging state at startup
paru-wrapper.fish Auto-generates ~/.local/bin/paru logging wrapper paru-wrapper.fish Auto-generates ~/.local/bin/paru logging wrapper
puffer.fish !! / !$ / ./ expansion (bundled from nickeb96/puffer-fish) puffer.fish !! / !$ / ./ expansion (bundled from nickeb96/puffer-fish)
tmux-logging.fish C5 starts tmux pipe-pane capture when fish runs inside tmux
zellij-logging.fish C5 fish_exit handler dumping zellij pane scrollback on exit
sponge_privacy.fish Sponge privacy patterns; filters credentials from history sponge_privacy.fish Sponge privacy patterns; filters credentials from history
starship.fish fish_prompt with OSC 133 shell-integration markers starship.fish fish_prompt with OSC 133 shell-integration markers
tailscale.fish Tailscale CLI tab completions tailscale.fish Tailscale CLI tab completions