fish shell config
Shell 76.9%
Other 23.1%
1 1 0

Clone this repository

https://tangled.org/ijadux2.tngl.sh/Fish https://tangled.org/did:plc:jn72xozs3hiq3gb4bqr2gzgz/Fish
git@tangled.org:ijadux2.tngl.sh/Fish git@tangled.org:did:plc:jn72xozs3hiq3gb4bqr2gzgz/Fish

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

🐟 Fish Shell Configuration#

My personal config.fish setup, optimized for productivity, aesthetics, and speed.


🎨 Theme: Catppuccin Mocha#

This configuration uses the Catppuccin Mocha palette for syntax highlighting and terminal UI elements.

  • Primary Colors: Blue (89b4fa) for commands, Green (a6e3a1) for quotes.
  • Backgrounds: Custom selection and search match backgrounds for high visibility.

🛠️ Environment Variables#

  • Terminal: kitty
  • Editor: nvim (Neovim)
  • Visual: nvim

🚀 Key Features#

Smart Path Management#

Includes a custom add_path function that ensures directories are added to your $PATH uniquely, preventing duplicate entries during shell restarts.

  • Adds ~/.opencode/bin
  • Adds ~/.local/bin

Better Navigation & Tools#

  • Zoxide: Replaces standard cd with z (smarter navigation).
  • Eza: Replaces ls with modern icons and tree views.
  • Gum: Integrated for better reading/writing experiences in the terminal.
  • Yazi: Terminal file manager integration.

Double-Escape Sudo#

A handy keybinding that allows you to prepend sudo to your current command just by pressing ESC twice.


⌨️ Abbreviations & Aliases#

I use Fish Abbreviations (abbr) instead of standard aliases so that the full command is expanded in the history.

Abbr Command Description
v nvim Open Neovim
ls eza --icons Modern list files
ll eza --long --icons Detailed list
.. cd .. Go up one directory
y yazi File manager
fs fastfetch System info
:q exit Quit shell (Vim style)

Git Workflow#

  • go: git init
  • gs: git status
  • gi: git add .
  • gc: git commit -m
  • gp: git push -u origin
  • gcl: git clone

📦 Installation#

  1. Ensure you have fish shell installed.
  2. Install the required tools: eza, zoxide, nvim, fastfetch, and gum.
  3. Copy config.fish to ~/.config/fish/config.fish.
  4. Restart your terminal or run:
    source ~/.config/fish/config.fish