Isabel’s Dotfiles uses the Catppuccin theme system-wide for a cohesive, beautiful aesthetic. The configuration integrates Catppuccin across NixOS, Home Manager, and individual applications.
Overview
Catppuccin is a community-driven pastel theme that comes in four flavors. This configuration uses the Mocha flavor with Pink accents.
Mocha Dark theme (used here)
NixOS configuration
The system-level Catppuccin configuration is in modules/nixos/catppuccin.nix:
modules/nixos/catppuccin.nix
{
imports = [ inputs . catppuccin . nixosModules . catppuccin ];
config = {
catppuccin = {
enable = lib . mkDefault ( ! config . garden . profiles . headless . enable );
sources = options . catppuccin . sources . default ;
flavor = "mocha" ;
# IFD, easy to vendor
tty . enable = false ;
};
};
}
Catppuccin is automatically disabled for headless systems (servers without a GUI).
Console colors
The configuration includes custom console colors matching the Mocha palette:
modules/nixos/catppuccin.nix
console . colors = lib . mkIf config . catppuccin . enable [
"1e1e2e" # Base
"f38ba8" # Red
"a6e3a1" # Green
"f9e2af" # Yellow
"89b4fa" # Blue
"f5c2e7" # Pink
"94e2d5" # Teal
"bac2de" # Subtext1
"585b70" # Surface2
"f38ba8" # Red (bright)
"a6e3a1" # Green (bright)
"f9e2af" # Yellow (bright)
"89b4fa" # Blue (bright)
"f5c2e7" # Pink (bright)
"94e2d5" # Teal (bright)
"a6adc8" # Subtext0
] ;
Home Manager configuration
Per-user theming is configured in home/isabel/themes/catppuccin.nix:
home/isabel/themes/catppuccin.nix
{
imports = [ inputs . catppuccin . homeModules . catppuccin ];
config = {
catppuccin = {
inherit ( config . garden . profiles . workstation ) enable ;
sources = options . catppuccin . sources . default ;
flavor = "mocha" ;
accent = "pink" ;
cursors = {
enable = isGui ;
accent = "dark" ;
};
gtk . icon . enable = isGui ;
};
};
}
Accent colors
Catppuccin supports multiple accent colors. This configuration uses pink :
Available accents
Usage in config
Rosewater
Flamingo
Pink (used here)
Mauve
Red
Maroon
Peach
Yellow
Green
Teal
Sky
Sapphire
Blue
Lavender
home/isabel/themes/catppuccin.nix
catppuccin = {
flavor = "mocha" ;
accent = "pink" ;
} ;
GTK theming
The GTK configuration in home/isabel/themes/gtk.nix uses Catppuccin themes:
home/isabel/themes/gtk.nix
gtk = {
enable = true ;
theme = {
name = "catppuccin- ${ ctp . flavor } - ${ ctp . accent } -standard" ;
package = pkgs . catppuccin-gtk . override {
size = "standard" ;
accents = [ ctp . accent ];
variant = ctp . flavor ;
};
};
} ;
GTK preferences
home/isabel/themes/gtk.nix
gtk3 . extraConfig = {
# Make things look nice
gtk-application-prefer-dark-theme = true ;
gtk-decoration-layout = "appmenu:none" ;
# Font rendering
gtk-xft-antialias = 1 ;
gtk-xft-hinting = 1 ;
gtk-xft-hintstyle = "hintslight" ;
# Stop annoying sounds
gtk-enable-event-sounds = 0 ;
gtk-enable-input-feedback-sounds = 0 ;
gtk-error-bell = 0 ;
} ;
The same settings are applied to both GTK3 and GTK4 for consistency.
Selective application theming
Some applications have Catppuccin theming disabled for specific reasons:
home/isabel/themes/catppuccin.nix
# I don't even use the colors from the port
waybar . enable = false ;
# IFD and can use term colors
starship . enable = false ;
# IFD and easy enough to vendor
fzf . enable = false ;
# IFD and can use term colors
eza . enable = false ;
IFD (Import From Derivation) can slow down evaluation. Some ports are disabled to avoid this performance penalty when terminal colors can be used instead.
Cursor theme
Catppuccin cursors are enabled for GUI systems:
home/isabel/themes/catppuccin.nix
cursors = {
enable = isGui ;
accent = "dark" ;
} ;
The dark accent provides better contrast on dark backgrounds.
Icon theme
home/isabel/themes/catppuccin.nix
TTY theming
TTY theming is disabled to avoid Import From Derivation:
modules/nixos/catppuccin.nix
# IFD, easy to vendor
tty . enable = false ;
Instead, console colors are set manually (shown earlier).
Hyprland integration
The Hyprland configuration uses Catppuccin color variables:
home/isabel/gui/hyprland.nix
general = {
"col.active_border" = "$pink" ;
"col.inactive_border" = "$surface1" ;
} ;
group = {
"col.border_active" = "$rosewater" ;
"col.border_inactive" = "$surface1" ;
} ;
decoration = {
shadow = {
enabled = true ;
color = "rgb(11111B)" ; # Mocha base
color_inactive = "rgba(11111B00)" ;
};
} ;
These color variables are automatically provided by the Catppuccin theme integration.
Binary cache
To speed up builds, the configuration uses the Catppuccin binary cache:
modules/base/nix/substituters.nix
substituters = [
"https://nix-community.cachix.org"
]
++ optionals hasCtp [
"https://catppuccin.cachix.org"
] ;
trusted-public-keys = [
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
]
++ optionals hasCtp [
"catppuccin.cachix.org-1:noG/4HkbhJb+lUAdKrph6LaozJvAeEEZj4N732IysmU="
] ;
The cache is only added when Catppuccin is enabled.
Changing themes
To use a different flavor or accent:
Edit the flavor
Change flavor = "mocha" to one of: latte, frappe, macchiato, or mocha catppuccin . flavor = "frappe" ; # Switch to Frappé
Edit the accent
Change accent = "pink" to any of the 14 available accent colors catppuccin . accent = "mauve" ; # Switch to mauve accent
Rebuild your system
sudo nixos-rebuild switch --flake ~/.config/flake# < hos t >
Application-specific theming
Many applications in the configuration automatically use Catppuccin:
Terminal emulators : Ghostty, WezTerm
Editors : Neovim (via izvim)
Browsers : Chromium
File managers : Cosmic Files
System UI : Hyprland, GTK applications
Development tools : Git, lazygit
Each application’s theme configuration is located in its respective module under home/isabel/.
Color reference
Catppuccin Mocha palette:
Base colors
Text colors
Surface colors
Accent colors
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"
Next steps
Window Manager See how Catppuccin integrates with Hyprland
Home Manager Learn about per-user configuration