chore(docs): regenerate man page, HTML docs, and wiki
This commit is contained in:
+57
-3
@@ -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
|
||||
from the command line
|
||||
.IP \[bu] 2
|
||||
Scrollback history snapshots saved to \[ti]/.terminal_history on session
|
||||
exit
|
||||
Automatic session logging: terminal scrollback, tmux/zellij panes, and
|
||||
paru/yay output captured to \[ti]/.terminal_history (on by default; see
|
||||
below)
|
||||
.IP \[bu] 2
|
||||
Automatic Python virtualenv activation on directory change
|
||||
.IP \[bu] 2
|
||||
@@ -64,6 +65,23 @@ Cross-platform package management via pkg and fish-deps
|
||||
AI session helpers for Claude Code and Antigravity
|
||||
.IP \[bu] 2
|
||||
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
|
||||
The configuration is split across:
|
||||
.IP
|
||||
@@ -80,6 +98,8 @@ conf.d/
|
||||
logging-events.fish C5 --on-variable event handlers; syncs logging state at startup
|
||||
paru-wrapper.fish Auto-generates \[ti]/.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
|
||||
@@ -1973,6 +1993,11 @@ set -U __fish_config_op_greeting 1
|
||||
\f[R]
|
||||
.fi
|
||||
.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:
|
||||
.IP \[bu] 2
|
||||
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.
|
||||
.SS C5 \[em] Logging and Capture
|
||||
.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
|
||||
logging wrappers.
|
||||
.IP
|
||||
@@ -2126,6 +2151,10 @@ Component What it captures
|
||||
───────────────────────────────────────────────────────────────────────────
|
||||
Scrollback capture Terminal session output saved to:
|
||||
\[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:
|
||||
\[ti]/.terminal_history/paru_YYYY-MM-DD_HH-MM-SS.log
|
||||
yay wrapper All yay/AUR output captured to:
|
||||
@@ -2134,6 +2163,27 @@ Kitty watcher watcher.py captures scrollback when Kitty closes
|
||||
\f[R]
|
||||
.fi
|
||||
.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
|
||||
.PP
|
||||
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.
|
||||
4.
|
||||
smart_exit stops saving scrollback logs.
|
||||
5.
|
||||
Stops tmux pipe-pane capture in every open fish shell inside tmux.
|
||||
.PP
|
||||
Re-enabling __fish_config_op_logging: 1.
|
||||
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/.
|
||||
3.
|
||||
Kitty watcher resumes capture on the next session exit.
|
||||
4.
|
||||
Restarts tmux pipe-pane capture in every open fish shell inside tmux.
|
||||
.PP
|
||||
Changes propagate to all running shells through an event handler that
|
||||
fires whenever __fish_config_op_logging changes \[em] no shell restart
|
||||
|
||||
@@ -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_<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:
|
||||
~/.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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -101,6 +101,10 @@ Examples:
|
||||
set -U __fish_config_op_greeting 1
|
||||
# (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:
|
||||
|
||||
- Command shadows (rm, cat, ls, ...) react immediately; conf.d-level
|
||||
@@ -227,19 +231,40 @@ silently failing.
|
||||
|
||||
#### 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.
|
||||
|
||||
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_<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:
|
||||
~/.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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
skips capture — no Kitty restart required.
|
||||
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:
|
||||
1. Removes the sentinel in every open shell.
|
||||
2. Regenerates paru/yay logging wrappers in ~/.local/bin/.
|
||||
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
|
||||
whenever __fish_config_op_logging changes — no shell restart needed.
|
||||
|
||||
+18
-1
@@ -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)
|
||||
- Deep Kitty and WezTerm terminal integration: tab/window/pane management from
|
||||
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
|
||||
- Cross-platform package management via pkg and fish-deps
|
||||
- AI session helpers for Claude Code and Antigravity
|
||||
- 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:
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user