diff --git a/docs/fish-config.1 b/docs/fish-config.1 index 301f063..86cabbd 100644 --- a/docs/fish-config.1 +++ b/docs/fish-config.1 @@ -1816,14 +1816,6 @@ idle or sleeping until the command completes. wake-lock rsync -avz src/ dest/ \f[R] .fi -.SS zellij -.IP -.nf -\f[C] -Synopsis: zellij [args...] -Launches zellij with the Catppuccin Mocha theme applied. -\f[R] -.fi .PP * * * * * .SH 6. DEPENDENCY CATALOG @@ -2203,7 +2195,11 @@ 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 -\f[V]zellij action dump-screen --full\f[R]. +\f[V]zellij action dump-screen --full --ansi\f[R] (the \[en]ansi flag +preserves color). +The dump is captured on the fish process\[cq]s stdout and written to the +log file by fish itself (not via \f[V]--path\f[R], which would make the +zellij server write the file). 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. @@ -2211,6 +2207,28 @@ 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 +LIMITATION \[em] zellij capture only fires on a clean shell exit (typing +\f[V]exit\f[R], Ctrl-D, or a logout), because that is when the fish_exit +handler runs. +It does NOT capture when you close a pane or quit zellij through zellij +itself: +.IP \[bu] 2 +Closing a pane signals the shell and tears the pane down concurrently, +so even if the handler runs, \f[V]dump-screen\f[R] may find the pane +buffer already gone. +.IP \[bu] 2 +Quitting zellij kills the zellij server, and \f[V]dump-screen\f[R] needs +a live server to read from \[em] there is nothing left to snapshot. +.PP +This is a structural difference from tmux, NOT a bug. +tmux streams pane output to disk continuously via pipe-pane, so whatever +was printed is already saved no matter how the pane dies. +Zellij can only snapshot, and the only reliable snapshot point from the +shell is a clean exit. +To guarantee a zellij pane is logged, end the session with +\f[V]exit\f[R] or Ctrl-D rather than zellij\[cq]s close-pane or quit +actions. +.PP The Kitty watcher is managed by the kitty-logging command: it installs a version-marked watcher (fish-config-watcher.py) into the Kitty config directory and wires it into kitty.conf via a managed block. diff --git a/docs/html/11-7-customization.html b/docs/html/11-7-customization.html index 64881fc..4c6ba38 100644 --- a/docs/html/11-7-customization.html +++ b/docs/html/11-7-customization.html @@ -721,12 +721,34 @@ 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 +zellij action dump-screen --full --ansi (the --ansi flag +preserves color). The dump is captured on the fish process's stdout and +written to the log file by fish itself (not via --path, +which would make the zellij server write the file). 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.

+

LIMITATION — zellij capture only fires on a clean shell exit (typing +exit, Ctrl-D, or a logout), because that is when the +fish_exit handler runs. It does NOT capture when you close a pane or +quit zellij through zellij itself:

+ +

This is a structural difference from tmux, NOT a bug. tmux streams +pane output to disk continuously via pipe-pane, so whatever was printed +is already saved no matter how the pane dies. Zellij can only snapshot, +and the only reliable snapshot point from the shell is a clean exit. To +guarantee a zellij pane is logged, end the session with +exit or Ctrl-D rather than zellij's close-pane or quit +actions.

The Kitty watcher is managed by the kitty-logging command: it installs a version-marked watcher (fish-config-watcher.py) into the Kitty config directory and wires it into kitty.conf via a managed block. diff --git a/docs/html/9-5-functions-reference.html b/docs/html/9-5-functions-reference.html index 39fbf22..f1f886e 100644 --- a/docs/html/9-5-functions-reference.html +++ b/docs/html/9-5-functions-reference.html @@ -1205,9 +1205,6 @@ Runs a command under systemd-inhibit, preventing the system from going idle or sleeping until the command completes. wake-lock rsync -avz src/ dest/ -

zellij

-
Synopsis:  zellij [args...]
-Launches zellij with the Catppuccin Mocha theme applied.

diff --git a/docs/html/index.html b/docs/html/index.html index a654052..fa4a961 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -797,8 +797,6 @@ id="toc-kitty-logging">kitty-logging id="toc-tmux-clean">tmux-clean
  • wake-lock
  • -
  • zellij