docs: document multi-page config-settings (sponge + paths)
- §1 Scrollback History: __fish_scrollback_history_* source-of-truth + exported mirror, and the no-global-shadow rationale - §Sponge History Filtering: __fish_sponge_extra_sensitive name tokens (--entire match) and the tuning vars surfaced on the Sponge page - config-settings function reference: four-page model, Tab/Shift-Tab, value rows - index + README updated
This commit is contained in:
@@ -255,7 +255,7 @@ test -f "$__fish_user_dots_path/local.fish"
|
|||||||
|
|
||||||
Everything opinionated in this config — command shadows, startup side-effects, key and environment overrides, terminal integrations, logging, and the first-run greeting — is active by default but can be switched off.
|
Everything opinionated in this config — command shadows, startup side-effects, key and environment overrides, terminal integrations, logging, and the first-run greeting — is active by default but can be switched off.
|
||||||
|
|
||||||
> **The easy way — `config-settings`:** Run `config-settings` for an interactive TUI that flips every setting below on, off, or back to default — per-session or universally — without typing a single variable name. Use the arrow keys (or `h`/`j`/`k`/`l`) to navigate and adjust, `Tab` to switch scope, and `q` to quit. Changes apply instantly. The panel auto-sizes to your terminal width (four tiers from 52- to 78-wide with a 6-column margin), centers itself horizontally, and redraws within ~0.3 s of a resize.
|
> **The easy way — `config-settings`:** Run `config-settings` for an interactive TUI that manages settings across four pages — **Universal** and **Session** (the opinionated category toggles below, persistent or per-shell), **Sponge** (history-scrubbing: delay, exit codes, purge-on-exit, and extra sensitive variable names), and **Paths** (scrollback log dir, max files, and the user-dots path) — without typing a single variable name. Navigate with the arrow keys (or `h`/`j`/`k`/`l`); toggle rows step OFF ← DEFAULT → ON, value rows edit inline with `Enter` and clear with `←`. `Tab`/`Shift-Tab` cycle pages and `q` quits. Changes apply instantly. The panel auto-sizes to your terminal width (four tiers from 52- to 78-wide with a 6-column margin), centers itself horizontally, and redraws within ~0.3 s of a resize.
|
||||||
|
|
||||||
If you'd rather set them by hand, each category is controlled by a universal variable. Six category toggles and one master switch are available:
|
If you'd rather set them by hand, each category is controlled by a universal variable. Six category toggles and one master switch are available:
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,9 @@ toolhomes=## Tool Homes (XDG-compliant)
|
|||||||
editor=## Editor and Pager
|
editor=## Editor and Pager
|
||||||
pager=## Editor and Pager
|
pager=## Editor and Pager
|
||||||
scrollback=## Scrollback History
|
scrollback=## Scrollback History
|
||||||
|
__fish_scrollback_history_dir=## Scrollback History
|
||||||
|
__fish_scrollback_history_max_files=## Scrollback History
|
||||||
|
scrollback-dir=## Scrollback History
|
||||||
|
|
||||||
# ── Section 2: PATH ───────────────────────────────────────────
|
# ── Section 2: PATH ───────────────────────────────────────────
|
||||||
path=# 2. PATH SETUP
|
path=# 2. PATH SETUP
|
||||||
@@ -258,6 +261,9 @@ sponge=## Fisher-Managed Plugins
|
|||||||
sponge-filtering=## Sponge History Filtering
|
sponge-filtering=## Sponge History Filtering
|
||||||
history-filtering=## Sponge History Filtering
|
history-filtering=## Sponge History Filtering
|
||||||
privacy=## Sponge History Filtering
|
privacy=## Sponge History Filtering
|
||||||
|
__fish_sponge_extra_sensitive=## Sponge History Filtering
|
||||||
|
extra-sensitive=## Sponge History Filtering
|
||||||
|
sponge-settings=### config-settings
|
||||||
bundled-plugins=## Bundled Plugin Functionality
|
bundled-plugins=## Bundled Plugin Functionality
|
||||||
fish-plugins-manifest=## fish_plugins Manifest
|
fish-plugins-manifest=## fish_plugins Manifest
|
||||||
|
|
||||||
|
|||||||
+55
-28
@@ -166,8 +166,19 @@ Tools that respect XDG are directed to these paths rather than polluting $HOME.
|
|||||||
|
|
||||||
## Scrollback History
|
## Scrollback History
|
||||||
|
|
||||||
SCROLLBACK_HISTORY_DIR ~/.terminal_history
|
__fish_scrollback_history_dir (unset → ~/.terminal_history)
|
||||||
SCROLLBACK_HISTORY_MAX_FILES 100
|
__fish_scrollback_history_max_files (unset → 100)
|
||||||
|
SCROLLBACK_HISTORY_DIR ~/.terminal_history (exported mirror)
|
||||||
|
SCROLLBACK_HISTORY_MAX_FILES 100 (exported mirror)
|
||||||
|
|
||||||
|
The __fish_scrollback_history_* universal variables are the fish-style source
|
||||||
|
of truth — set them via `config-settings` → Paths, or `set -U` directly.
|
||||||
|
config.fish exports the SCROLLBACK_HISTORY_* mirrors from them, because the
|
||||||
|
POSIX wrapper scripts (paru/yay/tmux/zellij logging and _prune_terminal_logs)
|
||||||
|
read the exported names from the environment. When the __fish_ vars are unset,
|
||||||
|
the documented defaults are exported. config.fish deliberately does not create
|
||||||
|
a global source var, which would shadow the universal and stop live edits from
|
||||||
|
taking effect.
|
||||||
|
|
||||||
Scrollback logs accumulate in SCROLLBACK_HISTORY_DIR as timestamped files.
|
Scrollback logs accumulate in SCROLLBACK_HISTORY_DIR as timestamped files.
|
||||||
When the count exceeds SCROLLBACK_HISTORY_MAX_FILES the oldest are pruned
|
When the count exceeds SCROLLBACK_HISTORY_MAX_FILES the oldest are pruned
|
||||||
@@ -1352,21 +1363,31 @@ Add -i (interactive confirmation) to destructive commands:
|
|||||||
|
|
||||||
Synopsis: config-settings [-h]
|
Synopsis: config-settings [-h]
|
||||||
|
|
||||||
Opens an interactive TUI for managing fish configuration settings. Handles
|
Opens an interactive TUI for managing fish configuration settings across
|
||||||
the six opinionated component categories (C1–C6), the master disable
|
four pages, without having to type or remember variable names. Tab cycles
|
||||||
variable, and the __fish_user_dots_path path variable — without having to
|
forward through the pages; Shift-Tab cycles backward.
|
||||||
type or remember variable names. Two scope tabs allow independent per-scope
|
|
||||||
configuration for category toggles:
|
|
||||||
|
|
||||||
Universal — persists across all sessions (set -U)
|
Universal — opinionated category toggles (C1–C6) + master, persistent (set -U)
|
||||||
Session — current shell only (set -g)
|
Session — the same toggles, current shell only (set -g)
|
||||||
|
Sponge — sponge history-scrubbing settings: delay, successful exit
|
||||||
|
codes, purge-only-on-exit, allow-previously-successful, and
|
||||||
|
extra sensitive variable-name tokens
|
||||||
|
Paths — scrollback log directory, scrollback max files, and the
|
||||||
|
user-dots path
|
||||||
|
|
||||||
The Dots Path row always operates on the universal scope regardless of the
|
Toggle rows use ← → (or h/l) along an OFF ← DEFAULT → ON scale; DEFAULT
|
||||||
active tab.
|
erases the variable so the master switch / built-in default applies. Value
|
||||||
|
rows (the path/int/list settings on the Sponge and Paths pages) use Enter to
|
||||||
|
edit inline; ← / h clears the value back to its default. Changes apply
|
||||||
|
immediately. Always available regardless of the __fish_config_opinionated
|
||||||
|
master state.
|
||||||
|
|
||||||
Changes to category toggles apply immediately on each keypress. Changes to
|
The Sponge and Paths pages always write universal variables — these are
|
||||||
the path variable use an inline edit prompt (Enter). Always available
|
persistent, set-and-forget settings with no per-session scope. Editing a
|
||||||
regardless of the __fish_config_opinionated master state.
|
scrollback row updates both the __fish_scrollback_history_* source-of-truth
|
||||||
|
variables and the exported SCROLLBACK_HISTORY_* mirrors, so the AUR/tmux/
|
||||||
|
zellij log wrappers (which read the exported names) see the change in the
|
||||||
|
running session.
|
||||||
|
|
||||||
The panel adapts to the terminal width automatically, selecting from
|
The panel adapts to the terminal width automatically, selecting from
|
||||||
four layout tiers (with a 6-column buffer on each side before stepping
|
four layout tiers (with a 6-column buffer on each side before stepping
|
||||||
@@ -1379,20 +1400,12 @@ Add -i (interactive confirmation) to destructive commands:
|
|||||||
COLUMNS < 82 → 52-wide panel (default)
|
COLUMNS < 82 → 52-wide panel (default)
|
||||||
|
|
||||||
Navigation:
|
Navigation:
|
||||||
↑ ↓ / k j Move cursor
|
↑ ↓ / k j Move cursor
|
||||||
← → / h l Set value: OFF ← DEFAULT → ON (toggle rows); LEFT clears path
|
← → / h l Toggle rows: OFF ← DEFAULT → ON
|
||||||
Enter Edit the Dots Path (path row only)
|
← / h Value rows: clear to default
|
||||||
Tab Switch scope (Universal ↔ Session)
|
Enter Value rows: edit inline (Sponge / Paths pages)
|
||||||
q / Escape Exit
|
Tab / S-Tab Next / previous page
|
||||||
|
q / Escape Exit
|
||||||
Left/Right (or vim-style h/l) move the highlighted toggle value one step
|
|
||||||
along the OFF–DEFAULT–ON scale and stop at the ends. DEFAULT erases the
|
|
||||||
variable so the master switch / built-in default applies. On the Dots Path
|
|
||||||
row, LEFT/h clears the universal variable; RIGHT/l is a no-op (use Enter).
|
|
||||||
|
|
||||||
Dots Path row [U] tag: the tag confirms this row always writes to the
|
|
||||||
universal scope, regardless of which tab is active. Setting it per-session
|
|
||||||
would have no effect on startup sourcing.
|
|
||||||
|
|
||||||
Flags:
|
Flags:
|
||||||
--help / -h Show usage.
|
--help / -h Show usage.
|
||||||
@@ -2043,6 +2056,20 @@ To add your own persistent patterns:
|
|||||||
|
|
||||||
set -U -a sponge_regex_patterns 'your-regex-here'
|
set -U -a sponge_regex_patterns 'your-regex-here'
|
||||||
|
|
||||||
|
To mark additional variable NAMES as credential-bearing (so Layer 2 scrubs
|
||||||
|
their values), add name tokens — via `config-settings` → Sponge, or directly:
|
||||||
|
|
||||||
|
set -U -a __fish_sponge_extra_sensitive ACME_API VAULT_PW
|
||||||
|
|
||||||
|
Tokens are folded into the Layer 2 name match case-insensitively as substrings,
|
||||||
|
so ACME_API also covers ACME_API_KEY. (The match uses `--entire` to return the
|
||||||
|
full variable name, so partial-name tokens dereference the right value.)
|
||||||
|
|
||||||
|
The `config-settings` Sponge page also surfaces sponge's own tuning variables —
|
||||||
|
sponge_delay, sponge_successful_exit_codes, sponge_purge_only_on_exit, and
|
||||||
|
sponge_allow_previously_successful — so they can be changed without typing
|
||||||
|
variable names.
|
||||||
|
|
||||||
## Bundled Plugin Functionality
|
## Bundled Plugin Functionality
|
||||||
|
|
||||||
The remaining plugin functionality is bundled directly with this config rather
|
The remaining plugin functionality is bundled directly with this config rather
|
||||||
|
|||||||
Reference in New Issue
Block a user