6 KiB
| title | aliases | tags | sources | created | updated | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux Terminal Ricing: Kitty + Fish + Modern CLI Tools |
|
|
|
2026-04-15 | 2026-04-15 |
Overview
Full guide to transforming a bare bash terminal into a fast, beautiful, keyboard-driven environment. Stack: Kitty emulator + Fish shell + modern Rust-based CLI replacements + LazyVim + unified Kanagawa color theme.
Demonstrated on CachyOS with the Niri tiling Wayland compositor.
Stack at a Glance
| Layer | Tool | Replaces |
|---|---|---|
| Terminal emulator | Kitty | Alacritty / GNOME Terminal |
| Shell | Fish | Bash |
| Prompt theme | Tide (via Fisher) | Manual PS1 |
ls |
lsd | ls |
cat |
bat | cat |
find |
fd | find |
grep |
ripgrep (rg) | grep |
cd |
zoxide (z) | cd |
| Fuzzy finder | fzf | — |
| System monitor | btop | htop |
| File manager | superfile | ranger |
| Git TUI | lazygit | CLI git |
| Editor/IDE | Neovim + LazyVim | VS Code |
| System info | fastfetch | neofetch |
Installation Steps
1. Terminal Emulator — Kitty
sudo pacman -S kitty fish
Key config (~/.config/kitty/kitty.conf):
- Font: must use a Nerd Font (e.g. Hasklug Nerd Font) — required for icons in lsd, superfile, etc.
font_size 13background_opacity 0.95— subtle transparencycursor_shape beam— thin vertical line, clearer than blockcursor_trail 1— animated cursor trail (aesthetic only)window_margin_width 8— padding so text doesn't touch edgesconfirm_os_window_close 0— skip close confirmationshell fish— launch Fish directly in Kitty
2. Shell — Fish
# Make Fish default for all terminals + login
chsh -s /bin/fish
# Install Fisher (plugin manager)
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
# Install Tide prompt
fisher install IlanCosman/tide@v6
Tide setup launches an interactive wizard — choose icon style, separators, Git status format. Result: prompt shows current dir, Git branch, last command status, execution time.
Fish advantages over bash out-of-the-box:
- Autosuggestions from history (grey ghost text)
- Syntax highlighting while typing (red = invalid command, before Enter)
- No config needed for basic usability
3. CLI Utilities
sudo pacman -S lsd bat btop zoxide fastfetch fzf fd ripgrep lazygit neovim
superfile — installed separately per its GitHub instructions.
pokemon-colorscripts — installed from GitLab page.
4. Fish Config (~/.config/fish/config.fish)
# Disable Fish welcome message
set fish_greeting
# Pokemon on terminal open
pokemon-colorscripts -r
# Aliases — replace standard tools
alias ls='lsd'
alias ll='lsd -la'
alias cat='bat'
alias find='fd'
alias grep='rg'
# Initialize zoxide
zoxide init fish | source
5. Neovim — LazyVim
# Backup existing config
mv ~/.config/nvim{,.bak}
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}
# Install LazyVim starter
git clone https://github.com/LazyVim/starter ~/.config/nvim
rm -rf ~/.config/nvim/.git
First launch auto-installs all plugins. Includes: file explorer, LSP, autocomplete, syntax highlighting (Tree-sitter), Telescope fuzzy search, Git integration.
6. Unified Color Theme — Kanagawa
Apply Kanagawa to each tool:
- Kitty: use built-in theme picker or
include kanagawa.confin kitty.conf - Neovim: create
~/.config/nvim/lua/plugins/colorscheme.luawithrebelot/kanagawa.nvim - superfile: create custom theme file at
~/.config/superfile/themes/kanagawa.toml(use LLM to map Kanagawa hex palette onto superfile's config format)
Tool Demos
fzf — Fuzzy Open/Edit
bat (fzf) # open any file with bat
nvim (fzf) # open any file in neovim
cd (fzf) # jump to any directory
Fish (cmd) syntax substitutes the output — fzf runs first, result passes to outer command.
zoxide — Smart cd
z kit # jumps to ~/.config/kitty after visiting it once
z pac # jumps to /etc/pacman.d
Learns from frequency + recency. Needs training — just navigate normally for a day.
ripgrep — Fast Content Search
rg "font_family" ~/.config # find which config file sets the font
Respects .gitignore, highlights matches, shows line numbers, massively faster than grep on large trees.
fd — Simple File Find
fd kitty.conf # recursive, no flags, colorized output
Key Takeaways
- Nerd Fonts are mandatory — without them, lsd/superfile/Tide show
?instead of icons - Fish replaces bash config complexity — no PS1 escape sequences; Tide wizard covers 90% of prompt customization
- zoxide needs training — navigate your dirs normally for a day before relying on it
- One-command install for most tools:
sudo pacman -S lsd bat btop zoxide fastfetch fzf fd ripgrep lazygit neovim - Unified theme requires manual work — superfile has no Kanagawa preset; use an LLM to convert hex palette
- LazyVim dramatically lowers Neovim entry barrier — full IDE features on first launch
- fzf is a universal filter — pipe any list into it;
(fzf)Fish substitution pattern is extremely versatile - The whole stack is keyboard-only — ideal for tiling WMs (Niri, Hyprland) where mouse use is minimized
Related Articles
- wiki/homelab/proxmox-install-setup-2025 — another keyboard-heavy Linux environment setup
- wiki/dotfiles/fish-shell-config (planned)
Sources
- Raw source:
raw/Как сделать терминал в Linux красивым, быстрым и удобным.md - Original video: YouTube — Василий Ломагин (2026-03-20)
- Channel community: t.me/dotfiles_linux