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

Config File Format

All configuration settings are optional. Specify only the values you want to change, for example:

[color]
accent = "magenta"

The sections below list the settings and their defaults. Use sauva --print-default-config to print the full configuration, including every default keybinding.

The configuration structure is also described by config.schema.json. Sauva validates the configuration at startup, including terminal cell widths and keybinding conflicts.

color

These settings control the TUI's colors:

SettingDefaultUse
fg"reset"Main text
bg"reset"Main background
muted"darkgray"Secondary text and labels
accent"cyan"Accented text and grapheme markers
heading"blue"Section headings
border"darkgray"Borders and scrollbars
match"yellow"Search matches
key"yellow"Key labels in help and the footer
link"blue"Link text
selection.fg"black"Selected item text
selection.bg"cyan"Selected item background
difference.fg"black"Text in changed normalization spans
difference.bg"yellow"Background of changed normalization spans
status.info"green"Informational status messages
status.warning"yellow"Warning status messages

Changed normalization spans are also underlined. Their colors are configured separately from the selection colors.

UI color values are strings in one of these formats:

  • ANSI names: reset, black, red, green, yellow, blue, magenta, cyan, gray, darkgray, light-red, light-green, light-yellow, light-blue, light-magenta, light-cyan, or white.
  • RGB hexadecimal: "#RRGGBB".
  • Indexed color: a quoted number from "0" to "255".

reset uses the terminal's default color. UI colors do not accept an alpha channel.

For example:

[color]
heading = "#89b4fa"
muted = "245"

[color.selection]
fg = "black"
bg = "light-blue"

glyph_preview

SettingTypeDefault
font_familiesArray of font family names[]
emoji_font_familiesArray of font family names[]
fgRGB or RGBA color string"#f5f7fa"
bgRGB or RGBA color string"#00000000"

Empty or whitespace-only family names are rejected. Image colors accept #RRGGBB or #RRGGBBAA, including an alpha channel.

See Glyph Preview for examples and the complete font selection order.

ui

input_cursor

The cursor shown in the search input.

  • Default: "native", using the terminal's native cursor.
  • Use { text = "..." } for a text cursor. Its text must occupy exactly one terminal cell, without control characters.
[ui]
input_cursor = { text = "|" }

bookmark_date_format

The strftime format for bookmark registration times, shown in the selected entry's details. Times use the local time zone.

  • Default: "%Y-%m-%d %H:%M %Z", such as 2026-10-16 14:32 JST.
  • The format must produce nonempty text without control characters. Invalid formats are rejected at startup.
[ui]
bookmark_date_format = "%Y-%m-%d %H:%M:%S %:z"

See Bookmarks for the list controls and storage location.

keybindings

Use [keybindings.<context>] sections to customize controls. See Custom Keybindings for syntax, examples, and validation rules.