Skip to main content
The Kanagawa dotfiles come with a unified theming system that applies consistent color schemes across your entire desktop environment. With a single command, you can switch themes for all applications simultaneously.

Available Themes

Kanagawa

Warm and subtle - Inspired by Japanese Sumi Ink paintingsDeep navy backgrounds with soft, muted accent colors reminiscent of traditional Japanese art.

Gruvbox

Retro warm contrast - Classic warm color paletteEarthy browns and warm backgrounds with high contrast, perfect for long coding sessions.

Catppuccin

Pastel perfection - Smooth and creamy colorsSoft pastel colors with a cozy, comfortable aesthetic that’s easy on the eyes.

Everforest

Forest inspired - Natural green tonesComfortable green-focused palette inspired by nature, providing a calming workspace.

What Gets Themed

The theme system applies colors to every component of your desktop environment:
  • Hyprland: Window borders, gaps, and accent colors
  • Waybar: Status bar background, text, and module colors
  • Wofi: Application launcher styling
  • SwayNC: Notification center appearance
  • Wlogout: Logout menu colors
  • Ghostty: Terminal color palette (16 colors + background/foreground)
  • Zellij: Terminal multiplexer UI colors
  • Cava: Audio visualizer color gradients
  • Neovim: Editor theme via theme_bridge.lua
  • VSCodium: Workspace color theme
  • Btop: System monitor colors

Color Scheme Example

Here’s how the Kanagawa theme defines its color palette:
##############################################################
## Tema: Kanagawa                                           ##
## Descripción: Paleta de colores cálida y suave (Sumi Ink) ##
##############################################################

# Backgrounds (Tonos Sumi Ink)
$bg0 = 16161D # sumiInk0 (Más oscuro)
$bg1 = 1F1F28 # sumiInk1 (Fondo principal)
$bg2 = 2A2A37 # sumiInk2
$bg3 = 363646 # sumiInk3
$bg4 = 54546D # sumiInk4

# Foreground (Texto principal)
$fg  = DCD7BA # fujiWhite

# Colores Principales
$red    = C34043 # samuraiRed
$orange = FFA066 # surimiOrange
$yellow = E6C384 # springYellow
$green  = 98BB6C # autumnGreen
$aqua   = 7AA89F # waveAqua1
$blue   = 7E9CD8 # crystalBlue
$purple = 957FB8 # oniViolet
$pink   = D27E99 # sakuraPink

Theme Organization

Themes are organized in a consistent structure across all config directories:
~/.config/
├── hypr/colors/
│   ├── colors.conf              # Active theme (symlink/import)
│   └── custom/
│       ├── kanagawa.conf
│       ├── gruvbox.conf
│       ├── catppuccin.conf
│       └── everforest.conf
├── waybar/colors/
│   ├── colors.css
│   └── custom/
│       ├── kanagawa.css
│       ├── gruvbox.css
│       ├── catppuccin.css
│       └── everforest.css
├── ghostty/colors/
│   ├── colors                   # Active theme config
│   └── custom/
│       ├── kanagawa
│       ├── gruvbox
│       ├── catppuccin
│       └── everforest
├── btop/themes/
│   ├── colors.theme             # Symlink to active theme
│   └── custom/
│       ├── kanagawa.theme
│       ├── gruvbox.theme
│       ├── catppuccin.theme
│       └── everforest.theme
└── nvim/lua/
    └── theme_bridge.lua         # Theme name for Neovim
Each application has a colors file that points to the active theme, and a custom/ directory containing all available theme definitions.

How Themes Work

The theme system uses different strategies based on the application:
  1. Import-based (Hyprland, Waybar, Wofi, SwayNC, Wlogout)
    • Main colors.conf/colors.css file contains an import statement
    • Points to the selected theme in custom/ directory
  2. Config file reference (Ghostty)
    • Uses config-file directive to load theme from custom/
  3. Symlink-based (Btop, Cava)
    • Active colors.theme/colors file is a symlink to the chosen theme
  4. Bridge file (Neovim)
    • theme_bridge.lua returns the theme name as a Lua string
    • LazyVim reads this value to load the appropriate colorscheme
  5. JSON editing (VSCodium)
    • Theme name is written directly to settings.json

Next Steps

Switch Themes

Learn how to switch themes interactively or via command line

Create Custom Themes

Build your own theme with custom colors and styles