ekphosv0.25.10

Themes

Customize ekphos appearance with themes

Themes are TOML files stored in ~/.config/ekphos/themes/. ekphos ships with three official themes — ekphos-dawn (the default), dracula, and kanagawa — and you can add your own.

Theme Selector

Press Ctrl+t to open the theme selector — an interactive modal that lists every available theme. As you move the selection, the entire interface updates instantly, so you can preview each theme live before committing to it.

KeyAction
/ or k / jMove selection (live preview)
Ctrl+n / Ctrl+pMove selection (live preview)
EnterApply and save the selected theme
EscCancel and restore the previous theme

Official themes bundled with ekphos are listed first and tagged official; any custom themes you've added to ~/.config/ekphos/themes/ follow, tagged custom. Confirming with Enter writes the choice to theme in your config, so it persists across restarts.

Nothing is saved until you press Enter. Press Esc at any point to revert to the theme you started with.

Using a Theme

You can also set the theme manually in your config:

config.toml
theme = "ekphos-dawn"

Reload with Ctrl+Shift+R or restart ekphos.

Creating a Theme

Create a new .toml file in ~/.config/ekphos/themes/:

~/.config/ekphos/themes/my-theme.toml
[base]
background = "#1a1a24"
background_secondary = "#24243a"
foreground = "#c0caf5"
muted = "#565f89"

[accent]
primary = "#7aa2f7"
secondary = "#bb9af7"

[semantic]
error = "#f7768e"
warning = "#e0af68"
success = "#9ece6a"
info = "#7dcfff"

[ui]
border = "#3b4261"
border_focused = "#7aa2f7"
selection = "#283457"
cursor = "#c0caf5"

Then set theme = "my-theme" in your config.

Color Sections

Base Colors

ColorUsage
backgroundMain background
background_secondaryPopups, code blocks
foregroundPrimary text
mutedSecondary text, hints

Accent Colors

ColorUsage
primaryFocused borders, headings
secondaryVisual mode, secondary accent

Semantic Colors

ColorUsage
errorErrors, invalid links
warningWarnings, selected items
successSuccess states, checkmarks
infoInfo messages, links

UI Colors

ColorUsage
borderUnfocused borders
border_focusedFocused borders
selectionText selection
cursorCursor color

Component Overrides

Override specific UI components for fine-grained control:

Status Bar

[ui.statusbar]
background = "#1a1a24"
foreground = "#c0caf5"
brand = "#7aa2f7"
mode = "#565f89"
separator = "#3b4261"

Dialog

[ui.dialog]
background = "#1a1a24"
border = "#7aa2f7"
title = "#7aa2f7"
text = "#c0caf5"
[ui.sidebar]
background = "#1a1a24"
item = "#c0caf5"
item_selected = "#e0af68"
folder = "#7dcfff"
folder_expanded = "#7dcfff"

Content

[ui.content]
background = "#1a1a24"
text = "#c0caf5"
heading1 = "#7aa2f7"
heading2 = "#9ece6a"
heading3 = "#e0af68"
heading4 = "#bb9af7"
link = "#7dcfff"
link_invalid = "#f7768e"
code = "#9ece6a"
code_background = "#24243a"
blockquote = "#565f89"
list_marker = "#bb9af7"
tag = "#bb9af7"
tag_background = "#24243a"
frontmatter = "#565f89"
ColorUsage
tagTag badge text color
tag_backgroundTag badge background
frontmatterFrontmatter text (delimiters, keys, values)

Outline

[ui.outline]
background = "#1a1a24"
heading1 = "#7aa2f7"
heading2 = "#9ece6a"
heading3 = "#e0af68"
heading4 = "#bb9af7"
[ui.search]
background = "#24243a"
border = "#7aa2f7"
input = "#c0caf5"
match_highlight = "#e0af68"
match_current = "#ff9e64"
match_count = "#565f89"
ColorUsage
backgroundSearch dialog background
borderDialog border
inputSearch input text
match_highlightBackground for all matches
match_currentBackground for current match
match_countMatch counter text (e.g., "3/15")

Editor

Customize markdown syntax highlighting in the editor:

[ui.editor]
heading1 = "#7aa2f7"
heading2 = "#9ece6a"
heading3 = "#e0af68"
heading4 = "#bb9af7"
heading5 = "#7dcfff"
heading6 = "#565f89"
code = "#9ece6a"
link = "#7dcfff"
blockquote = "#565f89"
list_marker = "#bb9af7"
bold = "#e0af68"
italic = "#7dcfff"
ColorUsage
heading1 - heading6Heading colors by level (# to ######)
codeInline code and code blocks
linkMarkdown links [text](url)
blockquoteBlockquote markers (>)
list_markerList bullets and numbers
boldBold text (text)
italicItalic text (text)

Component sections are optional. Missing values fall back to base colors, then to ekphos-dawn defaults.

Full Theme Example

~/.config/ekphos/themes/tokyo-night.toml
[base]
background = "#1a1b26"
background_secondary = "#24283b"
foreground = "#c0caf5"
muted = "#565f89"

[accent]
primary = "#7aa2f7"
secondary = "#bb9af7"

[semantic]
error = "#f7768e"
warning = "#e0af68"
success = "#9ece6a"
info = "#7dcfff"

[ui]
border = "#3b4261"
border_focused = "#7aa2f7"
selection = "#283457"
cursor = "#c0caf5"

[ui.content]
heading1 = "#7aa2f7"
heading2 = "#9ece6a"
heading3 = "#e0af68"
heading4 = "#bb9af7"
link = "#7dcfff"
code = "#9ece6a"
tag = "#bb9af7"
tag_background = "#283457"
frontmatter = "#565f89"

[ui.editor]
heading1 = "#7aa2f7"
heading2 = "#9ece6a"
heading3 = "#e0af68"
heading4 = "#bb9af7"
heading5 = "#7dcfff"
heading6 = "#565f89"
code = "#9ece6a"
link = "#7dcfff"
bold = "#e0af68"
italic = "#7dcfff"

Reset Themes

To restore default themes:

ekphos --reset

This resets both configuration and themes to defaults.

On this page