vivid LS_COLORS for Zsh — Catppuccin theming with automatic light/dark detection.
Give your file listings a consistent look across every tool that respects LS_COLORS. zsh-vivid generates and exports LS_COLORS via vivid, with automatic light/dark theme detection for tmux sessions and support for custom Catppuccin and other themes.
- vivid (
vivid)
macOS (Homebrew):
brew install vividNix:
nix profile install nixpkgs#vividzinit load zsh-contrib/zsh-vivid[plugins.zsh-vivid]
github = "zsh-contrib/zsh-vivid"git clone https://github.com/zsh-contrib/zsh-vivid.git ~/.zsh/plugins/zsh-vivid
source ~/.zsh/plugins/zsh-vivid/zsh-vivid.plugin.zshSet VIVID_THEME before loading the plugin:
export VIVID_THEME="catppuccin-mocha" # defaultWhen inside a tmux session, the plugin automatically detects the session's light/dark theme and applies the appropriate color scheme:
export VIVID_THEME_LIGHT="catppuccin-latte" # used in light tmux theme
export VIVID_THEME_DARK="catppuccin-mocha" # used in dark tmux themeIf you set VIVID_THEME explicitly, it takes precedence and light/dark detection is skipped.
- Inside tmux — detects
#{client_theme}:light→ usesVIVID_THEME_LIGHT(default:catppuccin-latte)dark→ usesVIVID_THEME_DARK(default:catppuccin-mocha)
- Outside tmux — uses
VIVID_THEME(default:catppuccin-mocha) - Explicit
VIVID_THEME— if set, disables auto-detection
Run vivid themes to list all themes. Commonly used:
| Theme | Description |
|---|---|
catppuccin-latte |
Light Catppuccin theme |
catppuccin-frappe |
Dark Catppuccin (soft) |
catppuccin-macchiato |
Dark Catppuccin (medium) |
catppuccin-mocha |
Dark Catppuccin (deep) — default |
molokai |
Molokai color scheme |
one-dark |
One Dark theme |
nord |
Nord color scheme |
# Just load the plugin — uses default theme
zinit load zsh-contrib/zsh-vividLS_COLORS is generated once at load time and picked up by ls, tree, fd, eza, and any other tool that reads it.
# Use custom themes for tmux light/dark modes
export VIVID_THEME_LIGHT="rose-pine-dawn"
export VIVID_THEME_DARK="rose-pine"
zinit load zsh-contrib/zsh-vividif (( $+commands[vivid] )); then
zinit load zsh-contrib/zsh-vivid
fiColors not showing — ensure your terminal supports 256 colors (echo $TERM should be xterm-256color or similar)
Theme not found — list available themes with vivid themes
Changing themes — LS_COLORS is generated at load time; reload your shell after switching: exec zsh
| Repo | What it provides |
|---|---|
| zsh-aws | AWS credential management with aws-vault and tmux |
| zsh-eza | eza with Catppuccin and Rose Pine theming |
| zsh-fzf | fzf with Catppuccin and Rose Pine theming |
| zsh-op | 1Password CLI with secure caching and SSH key management |
| zsh-tmux | Automatic tmux window title management |
| zsh-vivid ← you are here | vivid LS_COLORS generation with theme support |
MIT — Copyright (c) 2025 zsh-contrib