theme.toml
Color Types
Colors can be specified as hex values or named colors.
fg = "#484D66"
bg = "blue"
Named Colors
reset, black, white, red, lightred, green, lightgreen, yellow, lightyellow, blue, lightblue, magenta, lightmagenta, cyan, lightcyan, darkgray, lightgray
Style Properties
Each style object supports:
| Property | Type | Description |
|---|---|---|
fg | color | Foreground color |
bg | color | Background color |
bold | bool | Bold text |
dim | bool | Dimmed text |
italic | bool | Italic text |
underline | bool | Underlined text |
blink | bool | Blinking text |
reversed | bool | Reverse video |
hidden | bool | Hidden text |
crossed | bool | Strikethrough text |
[flavor] — Flavor
[flavor]
dark = "catppuccin-mocha"
light = "catppuccin-latte"
[app] — Application
[app]
[app.overall]
bg = "#1E1E2E"
bg only — sets the terminal background via OSC 11.
[mgr] — Manager
[mgr]
[mgr.cwd]
fg = "white"
bold = true
[mgr.find_keyword]
fg = "black"
bg = "yellow"
[mgr.find_position]
fg = "cyan"
[mgr.symlink_target]
fg = "cyan"
[mgr.marker_copied]
fg = "green"
bg = "yellow"
[mgr.marker_cut]
fg = "black"
bg = "red"
[mgr.marker_selected]
fg = "black"
bg = "blue"
[mgr.count_copied]
fg = "green"
[mgr.count_cut]
fg = "red"
[mgr.count_selected]
fg = "blue"
[mgr.border_symbol]
[mgr.border_style]
[mgr.syntect_theme]
[indicator] — Indicator
[indicator]
[indicator.parent]
style = { fg = "blue", bg = "blue" }
padding = 1
[indicator.current]
style = { fg = "blue", bg = "blue" }
padding = 1
[indicator.preview]
style = { fg = "blue", bg = "blue" }
padding = 1
[tabs] — Tabs
[tabs]
[tabs.active]
fg = "blue"
[tabs.inactive]
fg = "darkgray"
[tabs.sep_inner]
[tabs.sep_outer]
[mode] — Modes
[mode]
[mode.normal]
main = { fg = "blue" }
alt = { fg = "blue" }
[mode.select]
main = { fg = "green" }
alt = { fg = "green" }
[mode.unset]
main = { fg = "red" }
alt = { fg = "red" }
[status] — Status Bar
[status]
[status.overall]
fg = "lightgray"
bg = "darkgray"
[status.sep_left]
style = { fg = "blue" }
open = ""
close = ""
[status.sep_right]
style = { fg = "blue" }
open = ""
close = ""
[status.perm_1]
[status.perm_2]
[status.perm_3]
[status.perm_4]
[status.perm_5]
[status.perm_6]
[status.perm_7]
[status.perm_8]
[status.perm_9]
[status.perm_10]
[status.progress_label]
[status.progress_bar]
[status.progress_tip]
[which] — Which Key
[which]
cols = 3
[which.mask]
bg = "black"
[which.cand]
fg = "white"
[which.rest]
fg = "darkgray"
[which.desc]
fg = "darkgray"
[which.separator]
fg = "darkgray"
[confirm] — Confirm Dialog
[confirm]
[confirm.border]
[confirm.title]
[confirm.body]
[confirm.list]
[confirm.btn_yes]
[confirm.btn_no]
[spot] — Spotlight
[spot]
[spot.border]
[spot.title]
[spot.tbl_col]
[spot.tbl_cell]
fg = "white"
[notify] — Notifications
[notify]
[notify.title_info]
[notify.title_warn]
[notify.title_error]
[pick] — Pick
[pick]
[pick.border]
[pick.active]
[pick.inactive]
[input] — Input
[input]
[input.border]
[input.title]
[input.value]
[input.selected]
[cmp] — Completions
[cmp]
[cmp.border]
[cmp.active]
[cmp.inactive]
[cmp.icon_]
[tasks] — Tasks
[tasks]
[tasks.border]
[tasks.title]
[tasks.hovered]
[help] — Help
[help]
[help.on]
[help.run]
[help.desc]
[help.hovered]
[help.footer]
[help.icon_]
[filetype] — Filetype Rules
Match files by MIME, URL glob, or is flag and apply a Style.
[filetype]
rules = [
{ mime = "text/*", fg = "green" },
{ mime = "image/*", fg = "magenta" },
{ mime = "video/*", fg = "cyan" },
{ mime = "application/pdf", fg = "red" },
]
[icon] — Icons
Built on nvim-web-devicons. Use prepend / append to layer rules.
Priority order (highest to lowest):
condsglobsextsdirsfiles
[icon]
[icon.prepend_dirs]
[icon.prepend_exts]
[icon.prepend_files]
[icon.prepend_globs]
[icon.prepend_conds]
[icon.append_dirs]
[icon.append_exts]
[icon.append_files]
[icon.append_globs]
[icon.append_conds]