Skip to main content
API reference sections

Schema

TerminalSettings

Koru Terminal's appearance.

Roaming, which is a change: these lived in this machine's windows.conf row, beside the geometry, purely because the terminal had one file. How a terminal looks is a preference about the person, not about the monitor it happened to be opened on.

Read tolerantly, as [GlobalSettings] is: an unknown field is ignored on the read; the [TerminalPatch] that writes it refuses one.

Type object

Shape

FieldTypeDescription
themerequiredThemeChoice

theme= in preferences.conf, and the terminal row's theme=.

Matches koru_draw::theme::ThemePreference: case-sensitive, because that is what the existing parser does and a file written in another case has never been produced by any build.

fontrequiredFontSetting

Mono-restricted, and deliberately not Global's code_font: a code block in a document and a terminal grid are different surfaces, and somebody who wants a wide face for one rarely wants it for the other.

zoomrequiredZoom

A zoom factor, valid only within the range the app has always accepted.

Out of range is ignored rather than clamped - the guarded-geometry stance: a file carrying nonsense keeps the default rather than snapping to a surprising value the person never chose.

cursor_colorrequiredCaretColorChoice

caret_color=, and the terminal row's cursor_color=.

cursor_widthrequiredTerminalCursorWidth

The terminal row's cursor_width=.

application means "follow the app's caret width" - the terminal's own spelling of a follow state, and unrelated to the four font settings.

cursor_heightrequiredTerminalCursorHeight

The terminal row's cursor_height=.

cursor_blinkrequiredTerminalCursorBlink

The terminal row's cursor_blink=.

composer_defaultrequiredboolean

Whether a new window opens with its composer showing.

The default only. Whether the composer is open in a window that already exists is furniture, and stays that window's input_area row.

Example
{
  "theme": "system",
  "font": {},
  "zoom": 0,
  "cursor_color": "default",
  "cursor_width": "application",
  "cursor_height": "application",
  "cursor_blink": "application",
  "composer_default": false
}

The contract has no example values, so example bodies are generated from each schema: every field is shown with a placeholder of its type.

Used by

Generated from contract version 1. Last updated .

Privacy choices

Choose which optional tools Koru may use on this site. Your choice is saved in a cookie in this browser for 12 months. Privacy policy

Privacy choices

Keep you signed in, protect forms and remember your language and this choice.

Always on

PostHog and Google Analytics 4 measure page views and actions such as downloads, using cookies or local storage.

PostHog records how pages are used, with form inputs masked and private pages excluded. Needs Analytics.

Ahrefs Web Analytics measures visits and where they come from, and Google Ads measures whether our ads led to a visit or download.