config-settings
Synopsis
Section titled “Synopsis”config-settings [-s | --style color|mono|contrast] [-h | --help]Description
Section titled “Description”Opens an interactive full-screen TUI for managing fish config settings across four pages, without having to type or remember variable names:
Universal |
— opinionated-category toggles (C1–C6) + master, persistent (set -U) |
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, the user-dots path, and the user-dots convenience symlink toggle (Dots link) |
Toggle rows use ← / → (or h / l) to step OFF ← DEFAULT → ON; DEFAULT erases the variable so the master switch / built-in default applies. On the Universal/Session pages, Enter on a category row (C1–C6) opens that category’s sub-category drill-down page, which leads with the category’s own toggle; Escape backs out. Value rows (Sponge, Paths) use Enter to edit inline and ← / h to reset to the row default; committing a blank edit does the same. List rows (e.g. Extra secret, OK codes) accept values separated by commas and/or whitespace — “A, B”, “A,B” and “A B” all yield the same two entries. Tab / Shift-Tab cycle through pages.
/ filters the current page on label and description. On the Universal and Session pages the filter also reaches into every category’s sub-categories, listing hits as “Category › Sub”, so a sub-category can be toggled without drilling into its parent first.
Edits are collected while the TUI runs and applied in one batch when it exits, via __config_settings_apply and __config_settings_set_value. The status bar shows a pending count. This is a deliberate consequence of the renderer being a child process: a child cannot reach into its parent shell to set a global, so the Session page’s edits come back as a fish script the function sources on exit, and the Universal page rides the same path for consistency. Always available regardless of __fish_config_opinionated state.
The Sponge and Paths pages always write universal variables — these are persistent, set-and-forget settings with no per-session scope. Editing a 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. Editing Dots link re-runs __fish_user_dots_link.
The panel is drawn by scripts/config-settings-tui.py using Python’s stdlib curses module, which owns the cell arithmetic, the alternate screen and the redraw diffing. It resizes with the terminal and needs no width tiers.
Three display styles: color (the default), mono and contrast. mono draws in the terminal’s own colours only, marking the selection with reverse video; values always read as text (ON / OFF / DEFAULT), so nothing is lost without colour. contrast keeps the colours but replaces the dim grey and blue with white, bolds every line and marks the selection in reverse video. NO_COLOR set to a non-empty value (https://no-color.org) selects mono unless --style says otherwise.
Navigation:
↑ ↓ / k j Move cursor← → / h l Toggle rows: OFF ← DEFAULT → ON← / h Value rows: reset to defaultEnter Category rows: open the sub-category page. Value rows: edit inline/ Filter, sub-categories includedEscape Back out of a sub-category page, or clear the filterTab / S-Tab Next / previous page? Help overlayq Apply pending edits and exitArguments
Section titled “Arguments”-s, --style <name> |
Display style: color, mono or contrast (default: mono when NO_COLOR is set, color otherwise) |
-h, --help |
Print usage and exit |
Exit Status
Section titled “Exit Status”0 |
Exited normally |
1 |
No TTY, or python3/curses unavailable |
2 |
Unknown flag, or an unknown --style |
Example
Section titled “Example”config-settingsconfig-settings --style contrastDependencies: __fish_palette, __config_settings_state, __config_settings_apply, __config_settings_set_value, python3
Classification: bypasses-shadow(rm)