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
|
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
|
||||||
|
|||||||
@@ -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_<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</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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user