feat(watcher): add scrollback history logging on window/pane close

Introduces watcher.py — a kitty Python watcher that captures terminal
scrollback to ~/.terminal_history/ whenever any window or pane is closed
via Ctrl+D, keybind, or full kitty quit. Works alongside the fish
smart_exit function, which handles graceful shell exits and sets a
user var flag to prevent duplicate logs.

Fixes the kitty.conf watcher directive (removed invalid --type=global
prefix that caused a FileNotFoundError on every kitty startup).
This commit is contained in:
2026-05-30 23:40:53 -04:00
parent be139ac7ad
commit 9d34764815
3 changed files with 97 additions and 0 deletions
+12
View File
@@ -73,6 +73,7 @@ The rootiest kitty configuration you will ever see!
- Smart key bindings with NeoVim-aware passthrough
- Integration with NeoVim (kitty-scrollback.nvim for in-editor scrollback)
- Integration with fish shell
- Automatic scrollback history logging on every window/pane close
- Catppuccin Mocha theme with 85% background opacity and blur
- Cursor trail effect for enhanced visibility
- Highly-tuned Iosevka Rootiest v2 font with custom OpenType features
@@ -81,6 +82,17 @@ The rootiest kitty configuration you will ever see!
- Session saving (F11) and config reload (F12)
- Integrates cleanly with other Rootiest projects
## Configuration
### Scrollback History
Terminal scrollback is automatically saved to `~/.terminal_history/` whenever a window or pane is closed (including `Ctrl+D`, closing a pane via keybind, or quitting kitty). The fish `smart_exit` function handles graceful shell exits; `watcher.py` catches all other close events.
| Variable | Default | Description |
|---|---|---|
| `SCROLLBACK_HISTORY_DIR` | `~/.terminal_history` | Directory where scrollback logs are written |
| `SCROLLBACK_HISTORY_MAX_FILES` | `100` | Maximum number of log files to retain |
## Companion Tools
[Rootiest Fish](https://github.com/rootiest/rootiest-fish) -