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
+30 -1
View File
@@ -576,6 +576,10 @@ set -Ue __fish_config_opinionated
set -U __fish_config_opinionated 0
set -U __fish_config_op_greeting 1
# (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>
<ul>
<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>
<h4 data-number="11.5.1.5" id="c5--logging-and-capture">C5 — Logging and
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
wrappers.</p>
<pre><code>Component What it captures
───────────────────────────────────────────────────────────────────────────
Scrollback capture Terminal session output saved to:
~/.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:
~/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log
yay wrapper All yay/AUR output captured to:
~/.terminal_history/yay_YYYY-MM-DD_HH-MM-SS.log
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>C5 uses a sentinel file to synchronize state between the shell and
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
capture — no Kitty restart required.</li>
<li>smart_exit stops saving scrollback logs.</li>
<li>Stops tmux pipe-pane capture in every open fish shell inside
tmux.</li>
</ol>
<p>Re-enabling __fish_config_op_logging:</p>
<ol type="1">
<li>Removes the sentinel in every open shell.</li>
<li>Regenerates paru/yay logging wrappers in ~/.local/bin/.</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>
<p>Changes propagate to all running shells through an event handler that
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
provides:</p>
<ul>
<li>Drop-in replacements for common Unix tools (ls, cat, rm, du, ping,
less)</li>
<li>Deep Kitty and WezTerm terminal integration: tab/window/pane
management from the command line</li>
<li>Scrollback history snapshots saved to ~/.terminal_history on session
exit</li>
<li>Automatic Python virtualenv activation on directory change</li>
<li>Cross-platform package management via pkg and fish-deps</li>
<li>AI session helpers for Claude Code and Antigravity</li>
<li>Catppuccin Mocha color theme throughout</li>
<li><p>Drop-in replacements for common Unix tools (ls, cat, rm, du,
ping, less)</p></li>
<li><p>Deep Kitty and WezTerm terminal integration: tab/window/pane
management from the command line</p></li>
<li><p>Automatic session logging: terminal scrollback, tmux/zellij
panes, and paru/yay output captured to ~/.terminal_history (on by
default; see below)</p></li>
<li><p>Automatic Python virtualenv activation on directory
change</p></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>
<p>The configuration is split across:</p>
<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
paru-wrapper.fish Auto-generates ~/.local/bin/paru logging wrapper
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
starship.fish fish_prompt with OSC 133 shell-integration markers
tailscale.fish Tailscale CLI tab completions