My personal config.fish setup, optimized for productivity, aesthetics, and speed.
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.
- Terminal:
kitty - Editor:
nvim(Neovim) - Visual:
nvim
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
- Zoxide: Replaces standard
cdwithz(smarter navigation). - Eza: Replaces
lswith modern icons and tree views. - Gum: Integrated for better reading/writing experiences in the terminal.
- Yazi: Terminal file manager integration.
A handy keybinding that allows you to
prepend sudo to your current command just by pressing ESC twice.
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) |
go:git initgs:git statusgi:git add .gc:git commit -mgp:git push -u origingcl:git clone
- Ensure you have fish shell installed.
- Install the required tools:
eza,zoxide,nvim,fastfetch, andgum. - Copy
config.fishto~/.config/fish/config.fish. - Restart your terminal or run:
source ~/.config/fish/config.fish