4.2 KiB
4.2 KiB
title, description, manTitle, sidebar, helpKeywords
| title | description | manTitle | sidebar | helpKeywords | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Fish Shell Configuration | Reference manual for the rootiest fish configuration. | DESCRIPTION |
|
|
A production-grade Fish shell configuration targeting Fish 4.x. It provides:
- Drop-in replacements for common Unix tools (ls, cat, rm, du, ping, less)
- Deep Kitty and WezTerm terminal integration: tab/window/pane management from the command line
- Optional session logging: terminal scrollback, tmux/zellij panes, and paru/yay output captured to ~/.terminal_history (off by default; see below)
- Automatic Python virtualenv activation on directory change
- Cross-platform package management via pkg and fish-deps
- AI scaffolding helpers for Claude Code and Antigravity
- Catppuccin Mocha color theme throughout
Install now Function reference
CAUTION: SESSION LOGGING
If enabled, this configuration can silently record terminal output to
~/.terminal_history: Kitty scrollback on window close, live tmux pane
streams, zellij pane snapshots on exit, and full paru/yay output. These logs
can contain command output, file contents, and secrets printed to the
terminal. Nothing leaves your machine, but the files persist locally. Logging
is off unless you turn it on.
- Enable all logging with:
set -U __fish_config_op_logging on - Prefer a menu? Run the interactive picker:
config-settings - Turn it back off with:
set -U __fish_config_op_logging off(or erase the variable) - See C5 — Logging and Capture for the full breakdown.
The configuration uses a structured file tree:
~/.config/fish/
├── config.fish Main entry point; sets env vars and PATH
├── conf.d/
│ ├── abbr.fish All abbreviations
│ ├── autopair.fish Auto-pair brackets and quotes
│ ├── cheat.fish cheat.sh tab completions
│ ├── done.fish Desktop notifications for long commands
│ ├── first_run.fish One-time init: Fisher bootstrap, theme
│ ├── key_bindings.fish Custom key bindings and Vi mode
│ ├── logging-events.fish C5 event handlers; syncs logging state
│ ├── kitty-watcher-reminder.fish C5 per-session Kitty watcher reminder
│ ├── paru-wrapper.fish Auto-generates paru logging wrapper
│ ├── puffer.fish !! / !$ / ./ expansion
│ ├── tmux-logging.fish C5 starts tmux pipe-pane capture
│ ├── zellij-logging.fish C5 fish_exit handler for zellij
│ ├── sponge_privacy.fish Sponge privacy patterns
│ ├── starship.fish fish_prompt shell-integration markers
│ ├── tailscale.fish Tailscale CLI tab completions
│ ├── theme.fish Catppuccin syntax highlight colors
│ ├── tricks.fish PATH, bang-bang helpers, bat man pages
│ ├── wakatime.fish WakaTime shell hook
│ ├── yay-wrapper.fish Auto-generates yay logging wrapper
│ └── zoxide.fish Zoxide z/zi integration; overrides cd
├── functions/ Custom functions, one per file
├── completions/ Tab completion scripts
├── integrations/
│ └── fzf.fish FZF Catppuccin theme and key bindings
├── scripts/
│ ├── clean_progress_log.py Strips typescript animations for clean logs
│ └── agents-tools/ AGENTS.md scripts and git hooks
└── docs/ Offline documentation and man page
├── fish-config.md Primary source manual
├── fish-config.1 Compiled man page (auto-generated)
├── fish-config.index Section index for help config
├── html/ Chunked HTML docs (auto-generated)
└── wiki/ Markdown wiki (auto-generated)