fish shell config
Shell 77%
23%

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