Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Themes

logana ships with 22 bundled themes and supports fully custom themes via JSON files.

Switching Themes

:set-theme catppuccin-mocha

Tab completes theme names. To set the default, add it to ~/.config/logana/config.json:

{ "theme": "catppuccin-mocha" }

Bundled Themes

Dark

NameDescription
atomicVibrant, high-saturation
catppuccin-macchiatoPastel purple, slightly lighter than mocha
catppuccin-mochaPastel purple, the most popular Catppuccin variant
draculaPurple, default theme
everforest-darkEarthy green, easy on the eyes
github-darkGitHub dark — deep navy with blue accents
github-dark-dimmedGitHub dark dimmed — softer navy variant
gruvbox-darkWarm retro browns and yellows
jandedobbeleerColorful, high contrast
kanagawaJapanese ink — deep blues and warm golds
monokaiClassic dark with vivid accents
nordCool blue-grey Arctic palette
onedarkAtom-inspired, muted cool colors
paradoxHigh contrast
rose-pineMuted roses and purples
solarizedClassic muted palette
tokyonightDeep blue, inspired by Tokyo at night

Light

NameDescription
catppuccin-lattePastel, warm cream background
everforest-lightEarthy green, warm paper background
github-lightGitHub light — clean white with blue accents
onelightAtom-inspired, clean white background
rose-pine-dawnWarm rose tones on a parchment background

Custom Themes

Place .json files in ~/.config/logana/themes/. A user theme with the same name as a bundled one takes priority.

Minimal example

Only five fields are required — everything else falls back to built-in defaults:

{
  "root_bg":    "#1e1e2e",
  "border":     "#6272a4",
  "border_title": "#f8f8f2",
  "text":       "#f8f8f2",
  "error_fg":   "#ff5555",
  "warning_fg": "#f1fa8c",
  "process_colors": ["#ff5555", "#50fa7b", "#ffb86c", "#bd93f9", "#ff79c6", "#8be9fd"]
}

Full example (Dracula)

{
  "root_bg":          "#282a36",
  "border":           "#6272a4",
  "cursor_bg":        "#6272a4",
  "border_title":     "#f8f8f2",
  "text":             "#f8f8f2",
  "text_highlight_fg": "#ffb86c",
  "text_highlight_bg": "#7a4a10",
  "cursor_fg":        "#1c1c1c",
  "trace_fg":         "#6272a4",
  "debug_fg":         "#8be9fd",
  "notice_fg":        "#f8f8f2",
  "warning_fg":       "#f1fa8c",
  "error_fg":         "#ff5555",
  "fatal_fg":         "#ff5555",
  "search_fg":        "#1c1c1c",
  "visual_select_bg": "#44475a",
  "visual_select_fg": "#f8f8f2",
  "mark_bg":          "#463c0f",
  "mark_fg":          "#f8f8f2",
  "process_colors":   ["#ff5555", "#50fa7b", "#ffb86c", "#bd93f9", "#ff79c6", "#8be9fd"],
  "value_colors": {
    "http_get":    "#50fa7b",
    "http_post":   "#8be9fd",
    "http_put":    "#ffb86c",
    "http_delete": "#ff5555",
    "http_patch":  "#bd93f9",
    "http_other":  "#6272a4",
    "status_2xx":  "#50fa7b",
    "status_3xx":  "#8be9fd",
    "status_4xx":  "#ffb86c",
    "status_5xx":  "#ff5555",
    "ip_address":  "#bd93f9",
    "uuid":        "#6c71c4"
  }
}

Color Formats

All color values accept:

  • Hex string: "#RRGGBB"
  • RGB array: [r, g, b] (each 0–255)

Fields Reference

Required

FieldUsed for
root_bgMain background
borderPanel border lines and dimmed decorator text
border_titlePanel title text
textDefault log line text
error_fgERROR level lines
warning_fgWARN/WARNING level lines
process_colorsArray of colors cycled across process/logger name columns (can be toggled via :value-colors)

Optional (with defaults)

FieldDefaultUsed for
cursor_bg= borderBackground of the cursor line, command bar, and search bar
text_highlight_fg#ffb86cSearch match background; also the cursor for the current match
text_highlight_bg#7a4a10Background behind search highlight
cursor_fg#1c1c1cText color on the cursor line (sits on cursor_bg)
trace_fg#6272a4TRACE level lines
debug_fg#8be9fdDEBUG level lines
info_fg= textINFO level lines (disabled by default; enable via :level-colors)
notice_fg#f8f8f2NOTICE level lines
fatal_fg#ff5555FATAL/CRITICAL level lines
search_fg#1c1c1cForeground of search match highlights
visual_select_bg#44475aVisual line selection background
visual_select_fg#f8f8f2Visual line selection foreground
mark_bg#463c0fMarked line background
mark_fg#f8f8f2Marked line foreground
value_colorssee belowPer-token HTTP/IP/UUID colors

value_colors sub-object

All fields are optional and fall back to Dracula-palette defaults.

FieldDefaultToken type
http_get#50fa7bGET
http_post#8be9fdPOST
http_put#ffb86cPUT
http_delete#ff5555DELETE
http_patch#bd93f9PATCH
http_other#6272a4HEAD, OPTIONS, and others
status_2xx#50fa7b2xx success codes
status_3xx#8be9fd3xx redirect codes
status_4xx#ffb86c4xx client error codes
status_5xx#ff55555xx server error codes
ip_address#bd93f9IPv4 and IPv6 addresses
uuid#6c71c4UUID strings

Toggling token and level colors at runtime

Use :value-colors to open an interactive dialog where you can enable or disable individual token types — including Process / logger colors — without editing the theme file.

Use :level-colors to open a similar dialog for log levels. Each level (TRACE, DEBUG, NOTICE, WARNING, ERROR, FATAL) can be toggled independently. The choices are saved per-file across sessions.

Tips for Light Themes

Set cursor_bg to a color that is noticeably darker than root_bg so the cursor line and command bar are clearly visible. Keep border as a subtle separator — it can be close to root_bg if you prefer minimal panel borders.

Set cursor_fg and search_fg to a dark color — they appear as text on the cursor_bg background and must contrast against it.

{
  "root_bg":   "#fafafa",
  "border":    "#d0d0d0",
  "cursor_bg": "#aaaaaa",
  "cursor_fg": "#383a42",
  "search_fg": "#383a42"
}