Fish is the recommended shell in Salchipapa.Dots. On every interactive session it automatically launches Zellij, activates vi key bindings, and renders your prompt through Starship — all themed with the Solarized Osaka color palette. Completions are powered by Carapace, history search by Atuin, and directory jumping by Zoxide, giving you a fully integrated terminal workflow out of the box.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/erickm13/Salchipapa.Dots/llms.txt
Use this file to discover all available pages before exploring further.
Setup
The Fish configuration lives atSalchipapaFish/fish/ and is symlinked into place by the installer. To link it manually:
The installer (
sudo ./install.sh) handles this symlink automatically when you select Fish as your shell. You do not need to run this command if you used the installer.Zellij Auto-Start
Every time Fish starts an interactive session it checks whether it is already running inside Zellij. If not, it launches Zellij immediately:zellij command required.
Fisher & Plugins
Fisher is the plugin manager for Fish. The installer bootstraps it automatically on the first interactive session:| Plugin | Purpose |
|---|---|
jorgebucaran/nvm.fish | Node Version Manager for Fish |
patrickf1/fzf.fish | Fuzzy finder key bindings and completions |
oh-my-fish/plugin-pj | Project jump — quickly switch between project directories |
Tool Initializations
After Zellij starts,config.fish initializes all the major CLI integrations in sequence:
Starship
Cross-shell prompt with Git status, language versions, and more — rendered on every line.
Zoxide
Smarter
cd — tracks your most-visited directories and lets you jump with z <name>.Atuin
Replaces shell history with a searchable, synced SQLite database. Press
Ctrl+R to search.fzf
Fuzzy finder integrated into Fish key bindings for files, history, and processes.
Carapace
Unified multi-shell completion bridge — provides completions for hundreds of CLI tools.
Vi Key Bindings
Vi mode is enabled globally. Thefish_user_key_bindings function layers vi bindings on top of the default emacs bindings so that insert-mode shortcuts (like Ctrl+A/Ctrl+E) remain available:
config.fish with:
Aliases
All aliases use eza as a modern replacement forls, with Nerd Font icon support and Git integration.
Listing Aliases
| Alias | Command | Description |
|---|---|---|
ls | eza --icons | Basic listing with icons |
ll | eza -la --icons --git | Long listing with hidden files and Git status |
lt | eza --tree --icons | Recursive tree view |
lt2 | eza --tree --icons --level=2 | Tree — 2 levels deep |
lt3 | eza --tree --icons --level=3 | Tree — 3 levels deep |
lt4 | eza --tree --icons --level=4 | Tree — 4 levels deep |
ld | eza -lD --icons | Directories only |
lf | eza -la --icons -f | Files only |
lr | eza -la --icons --sort=modified --reverse | Sorted by modified date (newest first) |
lS | eza -la --icons --sort=size --reverse | Sorted by size (largest first) |
Fuzzy Finder Aliases
| Alias | Command | Description |
|---|---|---|
fzfbat | fzf --preview="bat --theme=\"Solarized (dark)\" --color=always {}" | fzf with bat syntax-highlighted preview |
fzfnvim | nvim (fzf --preview="bat --theme=\"Solarized (dark)\" --color=always {}") | Open fzf selection directly in Neovim |
Git Aliases
| Alias | Command | Description |
|---|---|---|
gs | git status | Show working tree status |
gp | git push | Push to remote |
gl | git log --oneline --graph | Compact graphical log |
gc | git commit -m | Commit with inline message |
Navigation & Utility Aliases
| Alias | Command | Description |
|---|---|---|
obs | git -C ~/.config/obsidian add . && git -C ~/.config/obsidian commit -m 'update notes' && git -C ~/.config/obsidian push | Sync Obsidian vault to GitHub |
win | z /mnt/c/Users/Salchipapa | Jump to Windows user directory (WSL) |
Solarized Osaka Colors
The Solarized Osaka theme is applied directly inconfig.fish by setting Fish syntax highlighting variables. The theme is also available as a standalone file at SalchipapaFish/fish/themes/SolarizedOsaka.theme.
PATH Configuration
PATH is configured depending on the detected platform. All platforms prepend~/.cargo/bin as a final step.
Linux PATH
Linux PATH
macOS PATH
macOS PATH
/opt/homebrew/bin/brew for Apple Silicon or /usr/local/bin/brew for Intel — and evaluates the Homebrew shell environment automatically.Termux PATH
Termux PATH
$PREFIX/bin instead of the standard system paths and skips the Homebrew evaluation entirely.| Entry | Purpose |
|---|---|
~/.local/bin | User-installed binaries |
~/.opencode/bin | OpenCode AI CLI |
~/.volta/bin | Volta Node.js toolchain manager |
~/.bun/bin | Bun JavaScript runtime |
~/.cargo/bin | Rust/Cargo binaries |
~/.nix-profile/bin | Nix-managed packages |
Default Editor
BothEDITOR and VISUAL are set to Neovim:
git commit, crontab -e, and opencode all open Neovim by default.
WSL Color Fix
To prevent Windows-owned directories (which have the “other-writable” permission bit) from rendering with a garish green background inls output, LS_COLORS is explicitly overridden:
Termux is fully supported. When
$TERMUX_VERSION is set or /data/data/com.termux exists, the Fish config switches to Termux-specific PATH handling using $PREFIX/bin and skips Homebrew shell environment evaluation entirely.