# 5. FUNCTIONS REFERENCE **Sections:** [Index](index.md) | [1. Configuration Variables](1-configuration-variables.md) | [2. Path Setup](2-path-setup.md) | [3. Key Bindings](3-key-bindings.md) | [4. Abbreviations](4-abbreviations.md) | **5. Functions Reference** | [6. Dependency Catalog](6-dependency-catalog.md) | [7. Customization](7-customization.md) | [8. Fisher Plugins](8-fisher-plugins.md) | [9. Installation](9-installation.md) | [10. Personalization](10-personalization.md) | [11. Viewing This Manual](11-viewing-this-manual.md) --- ## 5.1 File and Directory ### cat Synopsis: cat [args...] Wraps bat for files with syntax highlighting and line numbers. Passes directories to ls. Falls back to /usr/bin/cat. cat README.md cat ~/projects/myapp ### copy Synopsis: copy Wraps cp, stripping trailing slashes from source directories to prevent unintended nesting inside the destination. copy ./mydir/ ~/backup # copies mydir INTO backup, not backup/mydir/ ### du Synopsis: du [--disk|--dir|--dua] [args...] Smart disk-usage dispatcher: --disk force duf (disk-level free/used overview) --dir force dust (per-directory tree breakdown) --dua force dua (fast space analyzer) Without flags, routes to the most appropriate tool by context. du ~/Downloads du --disk ### dusize Synopsis: dusize [dir] Human-readable disk usage for a directory via du -sh. Defaults to cwd. dusize ~/Videos ### lD Synopsis: lD [args...] Lists directories only in long format with icons. Uses eza, falls back to lsd, then system ls. lD ~/projects ### ls Synopsis: ls [args...] Lists files in long format with icons and hyperlinks. Uses eza, falls back to lsd, then system ls. ls ls -a ~/projects ### lsr Synopsis: lsr [args...] Lists files sorted by modification time, oldest first. Uses eza. ### lss Synopsis: lss [args...] Lists files sorted by size with gradient color scaling. Uses eza. ### lstree Synopsis: lstree [args...] Full recursive tree view with icons. Uses eza. lstree ~/projects/myapp ### lt Synopsis: lt [args...] Tree view limited to depth 2 with icons. Uses eza. lt ~/projects ### ltr Synopsis: ltr [args...] Lists files sorted by modification time, oldest first, long format with age-based gradient scaling. Uses eza. ### lx Synopsis: lx [args...] Lists files sorted by extension, long format. Uses eza. ### mkdir Synopsis: mkdir [args...] Interactive mkdir that prints a tree of created directories. Falls back to mkdir -p silently. mkdir ~/projects/myapp/src ### mkcd Synopsis: mkcd [-s] Creates a directory (including parents) and cd into it. Prints a tree of created dirs by default; -s/--silent suppresses output. mkcd ~/projects/newapp/src ### poke Synopsis: poke [file...] Creates files via touch, automatically creating any missing parent directories first. poke ~/projects/new/src/main.fish ### rm Synopsis: rm [-e [opts] | -S | args...] Safe rm wrapper routing to trash: (no args) List current trash contents -e/--empty Empty the trash (pass options to trash-empty) -S/--secure Permanently delete via rm -rf + fstrim (irreversible) -r/-R/--recursive Move to trash Move to trash (safe delete) Falls back to /usr/bin/rm when trash is unavailable. rm file.txt # moves to trash rm -e # empty trash rm -S sensitive.pem # permanent delete ### rg Synopsis: rg [args...] In Kitty, wraps ripgrep with --hyperlink-format=kitty so search results are clickable file links in the terminal. Falls back to system rg in any other terminal. All other arguments pass through unchanged. rg "fish_greeting" ~/.config/fish/ rg -l "TODO" ~/projects/myapp ### scrub Synopsis: scrub [-a] [-d] [-h] Recursively removes OS metadata, editor artifacts, compiler output, and dev caches using fd. -a/--aggressive Also removes node_modules, logs, .cache, IDE dirs, AI session artifacts -d/--dry-run Print what would be removed without deleting scrub scrub -a scrub -d --- ## 5.2 Navigation ### cdi Synopsis: cdi [query] Interactive directory picker combining zoxide frecency with fzf. Equivalent to zi. cdi myproject ### clone Synopsis: clone [args...] Clone a git repository into a new Kitty window. Kitty-only. clone https://github.com/user/repo.git ### clonet Synopsis: clonet [args...] Clone a git repository into a new Kitty tab. Kitty-only. clonet https://github.com/user/repo.git --- ## 5.3 Editors and Viewers ### edit Synopsis: edit [-V|-t] [-e EDITOR] [-c] [-x TEXT] [-n] [-v|-s] [FILE...] Opens files in a text editor, choosing a terminal or GUI editor and resolving a rich chain of fallbacks. With no --visual/--terminal flag the mode is auto-detected: interactive terminals use the terminal editor ($EDITOR), while detached invocations (e.g. desktop shortcuts) use the GUI editor ($VISUAL). Clipboard contents and literal strings can be opened as throwaway temp files. Editor output is suppressed unless --verbose. GUI fallback chain: zed → antigravity-ide → code → kate → kwrite → gnome-text-editor → gedit Terminal fallback chain: nvim → vim → micro → nano → vi Options: -V, --visual Force the GUI editor ($VISUAL or fallbacks) -t, --terminal Force the terminal editor ($EDITOR or fallbacks) -e, --editor=X Use a specific editor binary X -c, --clipboard Open the clipboard contents (as a temp file) -x, --text=STR Open STR as the contents of a new temp file -n, --new Force a new window/instance (best-effort) -v, --verbose Print the launch command and editor output -s, --silent Suppress all output, including the editor's -h, --help Show this help message edit ~/.config/fish/config.fish edit --visual notes.txt edit --terminal --new todo.md edit --editor=code --clipboard edit --text="hello world" ### fc Synopsis: fc [command_prefix] Edit the last shell command (or one matching a prefix) in $EDITOR, then execute the result. Bash-style fc behaviour. fc fc git ### less Synopsis: less [args...] Pager wrapper with fallback chain: $PAGER -> ov -> less -> more -> cat. less /var/log/syslog ### rawfish Synopsis: rawfish [args...] Launches Fish with NO_TMUX=1, bypassing any tmux auto-attach logic. Useful when you need a clean shell without session management. ### view Synopsis: view [args...] Opens files in nvim read-only mode (-R). Falls back to less. view /etc/fstab --- ## 5.4 Git and Version Control ### auto-pull Synopsis: auto-pull [list] auto-pull add [PATH] auto-pull remove auto-pull status Manages the registry of repositories that are background fast-forwarded when you enter them (see "Auto-pull fast-forward" under the C2 component reference). The fish-config repo is always covered as a baseline. The registry is machine-local at `$__fish_user_dots_path/auto-pull.list` (defaults to `~/.config/.user-dots/fish/auto-pull.list`), one absolute path per line, and is never committed. Registry management works even when C2 auto-execution is disabled; only the background sync is gated. list Show registered repos (default) add [PATH] Register PATH's git root (default: current repo) remove Unregister by basename or exact path status Show enabled/disabled state, repo count, list path cd ~/src/qmk_firmware; and auto-pull add auto-pull add ~/work/api auto-pull list auto-pull remove qmk_firmware ### branch Synopsis: branch Switches to a local branch, or creates it if it does not exist. branch feature/new-ui ### gi Synopsis: gi [-h] [-b] [-p] [-s] [-l] [targets...] Generates .gitignore content from the gitignore.io API with MD5-based deduplication (patterns already present are not re-appended). -b/--boilerplate Append generic boilerplate first -p/--prompt Prompt interactively for targets -s/--stdout Print to stdout instead of appending to .gitignore -l/--list List all available targets targets Comma-separated or space-separated target names gi python,venv gi -b -p gi -s node > .gitignore ### git-clean Synopsis: git-clean [-f] Fetches and prunes the remote, fast-forwards the current branch, then deletes local branches whose remote tracking branch has been deleted. Switches to main/master automatically if the current branch is orphaned. -f/--force Force-delete unmerged branches too git-clean git-clean --force ### gitup Synopsis: gitup [args...] Fetches updates from the remote and shows git status. Extra args are forwarded to git fetch. gitup gitup --all ### gitui Synopsis: gitui [args...] Launches gitui with the Catppuccin Frappe theme pre-applied. ### hist Synopsis: hist Searches shell history with fzf, inserts the selection into the command line, and copies it to the clipboard via wl-copy. --- ## 5.5 Package Management ### pkg Synopsis: pkg [-h] [-i|-u] [package...] Installs or removes packages using the detected system package manager. Supports: paru, yay, pacman, apt, dnf, zypper, yum, brew, pkg. (no flag) Auto mode: installs missing packages, removes installed ones -i/--install Force install -u/--uninstall Force uninstall pkg firefox # auto: install if missing, remove if present pkg -i ripgrep fd # force install pkg -u cowsay # force uninstall The package-installed check uses the correct query for each PM: pacman/paru/yay pacman -Qi apt dpkg -s dnf/zypper/yum rpm -q brew brew list pkg pkg info ### search Synopsis: search [args...] Interactive AUR package search and install via paru or yay. Arch Linux only. search neovim ### upgrade Synopsis: upgrade Full system upgrade via paru -Syu --noconfirm or yay -Syu --noconfirm. Arch Linux only. ### cleanup Synopsis: cleanup Lists and removes orphan packages via pacman, logging their names to ~/.removed_orphans. Arch Linux only. ### parur Synopsis: parur Opens an fzf picker of all installed packages (with pacman -Qi previews), then removes the selected packages via paru or yay. Arch Linux only. parur --- ## 5.6 Dependency Management ### fish-deps Synopsis: fish-deps [status|install|update|sync] Unified command for managing all tools this configuration depends on. status (default) Show installed/missing status grouped by tier install Interactively install each missing dependency update Update all installed dependencies sync Install missing deps, then update all Install method priority (highest to lowest): 1. git+cargo source build (fish shell itself) 2. cargo (Rust tools — gets latest crate version) 3. system PM (paru/apt/brew/etc.) 4. git clone (fzf) 5. curl installer (starship, fisher, uv) When multiple methods are available you are prompted to choose. Dependencies are grouped into three tiers: Required fish, fzf, zoxide Integrations wakatime, tailscale Recommended cargo, starship, uv, direnv, paru, yay, eza, lsd, bat, btop, dust, duf, prettyping, ov, ripgrep, lazygit, lazydocker, trash, kitty, wezterm, python3, yt-dlp fish-deps fish-deps install fish-deps update fish-deps sync ### check_fish_deps Synopsis: check_fish_deps Backwards-compatibility alias for `fish-deps status`. --- ## 5.7 System and Monitoring ### top Synopsis: top [args...] Launches btop as a modern resource monitor. Falls back to system top. ### swapstat Synopsis: swapstat Displays a colorized memory report: kernel swappiness, zRAM compression ratio, zRAM device details, and active swap priorities. ### sbver Synopsis: sbver [--brief] Verifies Secure Boot signatures on all EFI binaries tracked by sbctl. Color-codes results: green checkmark (verified), red X (unsigned). Prints a pass/fail summary. --brief Suppress per-file output, show only the summary sbver sbver --brief ### ports Synopsis: ports Lists active TCP listeners with lsof, showing port/address without hostname resolution. ### screensleep Synopsis: screensleep Turns off the display via KDE PowerDevil's "Turn Off Screen" action, invoked through busctl. ### lock Synopsis: lock Locks the current desktop session using loginctl lock-session. ### sudo-toggle Synopsis: sudo-toggle Toggles the sudo NOPASSWD rule on/off via /etc/sudoers.d/nofail-toggle. Useful for automated tasks that would otherwise require password entry. ### limine-edit Synopsis: limine-edit Opens /boot/limine.conf in sudoedit, then automatically re-enrolls the config hash, runs CachyOS boot hooks, and re-signs Secure Boot files. Combines the edit and sign steps into a single command. --- ## 5.8 Terminal Management ### tab Synopsis: tab [args...] Opens a new tab in Kitty (kitty @ launch --type=tab), WezTerm (wezterm cli spawn), or Konsole. Uses current working directory, or $cdto if set. tab ### split Synopsis: split [-h|-v] [command...] Opens a new pane in Kitty or WezTerm, optionally running a command. -h/--horizontal (default) Split below -v/--vertical Split to the right split split -v nvim README.md ### spwin Synopsis: spwin [args...] Spawns a new terminal OS window in Kitty (via spawn-window.sh or kitty @ launch --type=os-window) or WezTerm (wezterm cli spawn --new-window). ### detach Synopsis: detach [-h] [--version] [args...] Runs a command fully detached via nohup with stdout/stderr discarded. The command survives the current session. detach rsync -a ./data remote:/backup/ ### bkg Synopsis: bkg [args...] Launches a command in the background via nohup with output discarded. Simpler than detach; no version flag. bkg firefox ### ssh Synopsis: ssh [args...] In Kitty, wraps ssh with kitten ssh for better terminal integration (multiplexing, copy/paste support). Falls back to system ssh elsewhere. ssh user@host --- ## 5.9 Clipboard ### y Synopsis: y [text...] Copies text to the clipboard via wl-copy (Wayland) or xclip (X11). Reads from stdin if no arguments given. y "hello world" ls | y cat file.txt | y ### p Synopsis: p [args...] Outputs clipboard contents to stdout. p | grep foo p > file.txt ### paste Alias for p. Identical behaviour. --- ## 5.10 Network ### gip Synopsis: gip Fetches and prints both the public IPv4 and IPv6 address via icanhazip.com. ### gip4 Synopsis: gip4 Fetches and prints the public IPv4 address. ### gip6 Synopsis: gip6 Fetches and prints the public IPv6 address. Returns 1 if IPv6 is unavailable. ### ping Synopsis: ping [args...] Wraps prettyping with --nolegend. Pass --legend to show the legend. Falls back to system ping. ping google.com ### qr Synopsis: qr [text...] Generates a UTF-8 QR code from text or stdin. Uses qrencode locally; falls back to the qrenco.de API. qr "https://example.com" echo "https://example.com" | qr --- ## 5.11 Pager and Logging ### logs Synopsis: logs [-c ] Interactively browses terminal log files sorted newest-first using fzf. -c/--category Filter to: scrollback, paru, or yay Keybindings inside the fzf browser: Enter Open in $PAGER Ctrl+E Open in $EDITOR Ctrl+D Delete (with confirmation) ? Toggle keybind help overlay Paru and yay logs open in ov with syntax highlighting and sticky section headers. Scrollback logs open in ov with per-command sticky prompt headers based on OSC 133 markers. logs logs -c paru logs -c scrollback ### smart_exit Synopsis: smart_exit [-n] Closes the shell session. In Kitty, captures the terminal scrollback to a timestamped log file in $SCROLLBACK_HISTORY_DIR before exiting. Automatically prunes the oldest logs when the count exceeds $SCROLLBACK_HISTORY_MAX_FILES. -n/--no-log Exit without saving a scrollback log The exit builtin is wired to smart_exit for interactive sessions. Typing exit or Ctrl+D behaves identically to smart_exit. smart_exit smart_exit --no-log --- ## 5.12 AI and Developer Tools ### agy Synopsis: agy [args...] Wrapper for the agy Antigravity AI CLI. Before launching, delegates to agents-init --agents to ensure AGENTS/ is scaffolded and CLAUDE.md is symlinked to AGENTS/AGENTS.md in the current project, then forwards all arguments verbatim to the real agy binary. Command shadow (C1): when __fish_config_op_aliases (or the master) is disabled, the call is passed through to the real agy binary unchanged. agy chat agy resume ### antigravity-ide Synopsis: antigravity-ide [args...] Runs the antigravity-ide editor with warnings filtered. ### agents-init Synopsis: agents-init [--agents | --plugins] Scaffold an AGENTS/ sub-repository for tracking agent specs, plans, specs, and dev logs. Creates AGENTS/ as a standalone git repo, moves any existing AGENTS.md into it, and replaces it with a relative symlink (plus CLAUDE.md -> AGENTS/AGENTS.md so Claude Code picks up the shared agent instructions). Consolidates plans/ and specs/ directly under AGENTS/ (merging any legacy docs/plans, docs/superpowers/plans, or old AGENTS/plugins/ locations into the canonical AGENTS/), creates AGENTS/devlogs/, and wires docs/superpowers/{plans,specs} symlinks back to them. Adds managed paths to .gitignore and auto-commits every change inside the AGENTS/ sub-repo; pulls first when the sub-repo has an upstream. Fully idempotent: a second run produces no output and no new commits. Flags: --agents re-runs only the AGENTS.md / symlink step; --plugins re-runs only the plans/specs/devlogs wiring step. Called automatically by the claude and agy wrappers on every invocation. Structure versioning: each AGENTS/ repo carries a self-contained version bumper. AGENTS/.version holds MAJOR.MINOR.PATCH (seeded 1.0.0). Committed git hooks under AGENTS/.agents-tools/ (wired via core.hooksPath) bump it on every commit: MINOR (resetting PATCH) when the tracked directory set changes, PATCH otherwise; MAJOR is manual-only. A prepare-commit-msg hook appends "(vX.Y.Z)" to the commit subject. Downstream tooling can read AGENTS/.version - a changed MINOR field signals a structure change. Because core.hooksPath is a single setting, the local override would otherwise shadow your global hooks; after bumping the version, each shim chains (execs) to the global/system core.hooksPath hook of the same name so global pre-commit / prepare-commit-msg hooks (e.g. ggshield, Git LFS) still run. The script and hooks are shipped from scripts/agents-tools/ and refreshed when their version marker is stale. agents-init agents-init --agents agents-init --plugins ### claude Synopsis: claude [args...] Wrapper for the claude CLI. Before launching, delegates to agents-init --agents to ensure AGENTS/ is scaffolded and CLAUDE.md is symlinked to AGENTS/AGENTS.md in the current project, then forwards all arguments verbatim to the real claude binary. Command shadow (C1): when __fish_config_op_aliases (or the master) is disabled, the call is passed through to the real claude binary unchanged. claude claude --resume ### claude-docs Synopsis: claude-docs Invokes Claude Code to analyze recent repository changes and update README.md, ensuring all documented features and examples are accurate. ### claude-pr Synopsis: claude-pr Invokes Claude Code to run the full PR workflow: create branch, conventional commit, verification, push, and open a PR with a manual verification checklist. ### superpowers Synopsis: superpowers [on|off] [-g] Enables or disables the Superpowers plugin for Antigravity and Claude Code at workspace/project scope (default) or user scope (-g/--global). superpowers on superpowers off -g --- ## 5.13 Media and Utilities ### dng2avif Synopsis: dng2avif [-i ] [-o ] [-q ] [-s ] [input.dng] Converts a DNG raw image to a 10-bit HDR AVIF using an ImageMagick, ffmpeg, avifenc pipeline with metadata sync via exiftool. -i/--input Input file (or positional arg) -o/--output Output file (default: same name, .avif extension) -q/--quality Quality 0-100 (default 92) -s/--speed Encoding speed 0-10 (default 3) dng2avif photo.dng dng2avif -q 85 -s 5 -i shot.dng -o out.avif ### steam-dl Synopsis: steam-dl Launches Steam under systemd-inhibit, preventing the system from going idle or sleeping while a download is in progress. ### spark Synopsis: spark [--min=] [--max=] [numbers...] Renders a Unicode sparkline bar chart for a sequence of numbers. Reads from stdin if no numbers are given. spark 1 1 2 5 14 42 echo "3 7 2 9 1" | spark ### yt-dlp Synopsis: yt-dlp [args...] URL [URL...] Wraps yt-dlp, prepending sane defaults: --sponsorblock-remove all, --embed-subs, --embed-metadata, and --embed-thumbnail. Each default is suppressed when you already pass that flag, its alias, or its negation (e.g. --no-embed-thumbnail drops the thumbnail default; --no-sponsorblock or your own --sponsorblock-remove drops ours). All other arguments pass through unchanged, and --help falls through to real yt-dlp. Opinionated component (C1 aliases); when disabled it passes straight through to the system yt-dlp. yt-dlp dQw4w9WgXcQ yt-dlp --no-embed-thumbnail dQw4w9WgXcQ --- ## 5.14 Miscellaneous ### config-help Synopsis: config-help [SECTION] config-help [SECTION] --html config-help [SECTION] --man config-help -h | --help Opens the offline fish shell configuration manual. Without flags, opens the Markdown source in the best available pager (ov > bat > man > less > cat). If SECTION is given, jumps to the first heading matching that keyword (case-insensitive; checks fish-config.index aliases first). Flags: --html / -w Open docs/html/index.html in the default browser. If SECTION is given, opens at the matching anchor. Detects the browser via xdg-mime x-scheme-handler/https, then known binaries, then xdg-open as last resort. Respects $fish_help_browser and $BROWSER. --man / -m Open docs/fish-config.1 via man -l directly. If SECTION is given, jumps to the nearest match. --help / -h Print usage and navigation key reference. config-help keybindings config-help pkg config-help --html config-help pkg --html config-help --man config-help pkg --man Also available as: help config [SECTION] [FLAGS] ### open-url Synopsis: open-url [-s|--silent] [-v|--verbose] open-url -h | --help Opens a URL or file:// URI in the best available graphical web browser, backgrounded so it never blocks the terminal. Resolves a real browser binary rather than deferring to xdg-open, whose MIME dispatch can hand local text/html files to non-browser apps (e.g. ebook readers). Silent by default: prints nothing on success (errors always go to stderr). Pass --verbose / -v to report which browser is launched; --silent / -s is accepted for explicitness. Resolution order: 1. $fish_help_browser (explicit override) 2. $BROWSER (validated; errors if not a command) 3. xdg-mime default handler for x-scheme-handler/https 4. First known browser binary found in a built-in list 5. xdg-open (last resort) open-url https://git.rootiest.dev/rootiest/fish-config open-url "file://$HOME/.config/fish/docs/html/index.html" Used internally by config-help --html. Typo abbreviation: url-open (expands to open-url on space/enter). ### repo-open Synopsis: repo-open [-p|--print] [-r|--root] repo-open -h | --help Opens the web page for the current repository's `origin` remote in a browser (via open-url). Deep-links to the current branch when it exists on the remote — falling back to the remote's default branch (main/master) otherwise — and to the current sub-directory when run below the repo root. The remote URL is normalized from HTTPS and SSH/scp forms (git@host:owner/repo.git, ssh://…, https://…). The web path layout is provider-specific; the provider is resolved in order: 1. git config browse.provider (per-repo or --global override) 2. Hostname heuristic (github / gitlab / gitea / bitbucket; codeberg → gitea) 3. Default: github-style layout Self-hosted hosts the heuristic can't classify (a Gitea/GitLab instance on a custom domain) need a one-time override: git config browse.provider gitea Flags: --print / -p Print the resolved URL instead of opening it. --root / -r Ignore the current sub-directory; link to the repo root. --help / -h Show usage. repo-open repo-open --print repo-open --root Typo abbreviation: open-repo (expands to repo-open on space/enter). ### config-update Synopsis: config-update [-h] [-n] [-f] Pulls the latest fish configuration from the upstream repository (https://git.rootiest.dev/rootiest/fish-config.git) into ~/.config/fish. The remote URL is hard-coded, so this works on fresh clones with no git remote configured. All git output is suppressed; colored messages report fetch and merge status. After a successful pull, run `exec fish` to reload. Flags: --dry-run / -n Fetch and show available commits without applying them. --force / -f Stash local changes, pull, then restore the stash. --help / -h Show usage. config-update config-update --dry-run config-update --force ### config-settings Synopsis: config-settings [-h] Opens an interactive TUI for managing fish configuration settings across four pages, without having to type or remember variable names. Tab cycles forward through the pages; Shift-Tab cycles backward. 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, and the user-dots path Toggle rows use ← → (or h/l) along an OFF ← DEFAULT → ON scale; DEFAULT 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. 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. Changes apply immediately. Always available regardless of the __fish_config_opinionated master 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. The panel adapts to the terminal width automatically, selecting from four layout tiers (with a 6-column buffer on each side before stepping up to the next tier) and horizontally centering the box. The panel redraws within ~0.3 s of a terminal resize with no keypress required. COLUMNS >= 90 → 78-wide panel (most detail) COLUMNS >= 86 → 74-wide panel COLUMNS >= 82 → 70-wide panel COLUMNS < 82 → 52-wide panel (default) Navigation: ↑ ↓ / k j Move cursor ← → / h l Toggle rows: OFF ← DEFAULT → ON ← / h Value rows: clear to default Enter Value rows: edit inline (Sponge / Paths pages) Tab / S-Tab Next / previous page q / Escape Exit Flags: --help / -h Show usage. config-settings ### config-toggle (deprecated) Deprecated alias for config-settings. Prints a deprecation notice to stderr, then delegates all arguments to config-settings. config-toggle ### bash Synopsis: bash [args...] Switches to bash, with XDG config applied. On exit, $SHELL is reset back to fish. ### bd-pull Synopsis: bd-pull Fetches unlinked Gitea issues and creates local Beads entries, updating issue titles with the assigned Beads IDs. Requires $GITEA_TOKEN and $GITEA_URL to be set. bd-pull rootiest/fish-config ### cheat Synopsis: cheat [args...] Displays a colorized cheatsheet using cheat -c, falls back to tldr, then man. cheat tar cheat git ### cffetch / ffetch Synopsis: cffetch [args...] / ffetch [args...] Clears the screen and displays system information via fastfetch with the custom config at ~/.fastfetch.jsonc. Falls back to neofetch. ### dockup Synopsis: dockup [-h] [directory] Pulls latest Docker images, restarts services in the given Docker Compose project, and prunes dangling images. dockup ~/myapp ### joplin Synopsis: joplin [args...] Runs the Joplin CLI with Node.js deprecation warnings suppressed. joplin ls ### ld Synopsis: ld Launches lazydocker targeting the currently active Docker context, detected via docker context inspect. ### replay Synopsis: replay Runs Bash commands and replays any resulting changes to environment variables, aliases, and the working directory back into the current Fish session. Useful for sourcing Bash scripts. replay "source ~/.bashrc" replay "export FOO=bar" ### kitty-logging Synopsis: kitty-logging [install|uninstall|status|dismiss] [-h] Manages the Kitty scrollback watcher that powers C5 logging. Ships a canonical, version-marked watcher and installs it into the Kitty config directory, wiring it into kitty.conf through a sentinel-marked managed block. Commenting out any conflicting watcher line avoids double-capture. Commands: install Copy/refresh the watcher and add the managed block uninstall Remove the managed block and the watcher file status Show wiring, installed watcher version, and C5 state dismiss Stop the per-session setup reminder Runtime capture stays governed by the C5 .logging_disabled sentinel, so disabling __fish_config_op_logging makes the watcher inert without uninstalling. Install affects new Kitty windows only. Example: kitty-logging install kitty-logging status ### tmux-clean Synopsis: tmux-clean Kills all detached (unattached) tmux sessions, leaving attached ones running. ### wake-lock Synopsis: wake-lock [args...] Runs a command under systemd-inhibit, preventing the system from going idle or sleeping until the command completes. wake-lock rsync -avz src/ dest/ ---