Configuration

Config Location

ori-term looks for config.toml in the platform-standard config directory:

PlatformPath
Windows%APPDATA%\ori-term\config.toml
Linux~/.config/ori-term/config.toml
macOS~/Library/Application Support/ori-term/config.toml

If the file doesn't exist, ori-term uses built-in defaults. You only need to specify settings you want to change.

Format

Configuration uses TOML. Every field is optional — missing keys fall back to built-in defaults. A minimal config might look like:

process_model = "daemon"

[font]
family = "JetBrains Mono"
size = 14

[colors]
scheme = "catppuccin-mocha"

[window]
columns = 120
rows = 30
opacity = 0.95

Hot Reload

ori-term watches your config file for changes. Save the file and settings apply immediately — no restart needed. You can also trigger a manual reload with Ctrl+Shift+R.

Hot reload applies to: theme, font size, keybindings, cursor style, window opacity, and most visual settings. The shell and scrollback budget only apply to newly spawned panes.

Process Model

process_model = "daemon"    # default — connect to (or auto-start) the mux daemon
process_model = "embedded"  # single process, no IPC

See Daemon & Sessions for details.

Font

[font]
family = "JetBrains Mono"
size = 14
features = ["liga", "calt", "-kern"]   # OpenType feature tags; "-foo" disables

# Fallback fonts use array-of-tables. Each entry can override features and size offset.
[[font.fallback]]
family = "Noto Sans CJK"
size_offset = -1.0

[[font.fallback]]
family = "Noto Color Emoji"
features = ["liga"]

The primary family sets the main font. Each [[font.fallback]] entry adds a face for missing glyphs, with optional per-fallback OpenType features and cap-height offset.

Theme

[colors]
scheme = "catppuccin-mocha"
theme = "auto"             # "auto" follows system appearance; "dark" or "light" forces

# Override individual colors (hex "#RRGGBB"):
foreground = "#cdd6f4"
background = "#1e1e2e"
cursor = "#f5e0dc"

See Theming for the full list of built-in schemes and TOML theme-file format.

Window

[window]
columns = 120              # initial terminal width in cells
rows = 30                  # initial terminal height in cells
opacity = 1.0              # 0.0 - 1.0
unfocused_opacity = 1.0    # 0.3 - 1.0
blur = true                # backdrop blur (Acrylic on Windows 11, vibrancy on macOS, compositor blur on Linux)
decorations = "none"       # "full", "none", "transparent", "buttonless"
resize_increments = true   # snap to cell boundaries
tab_bar_position = "top"   # "top", "bottom", "hidden"
tab_bar_style = "default"  # "default", "compact"
grid_padding = 0.0         # logical pixels

Terminal

[terminal]
scrollback = 10000
cursor_style = "block"          # "block", "bar", "underline"
cursor_blink = true
cursor_blink_fade = true        # smooth fade vs hard toggle
cursor_blink_interval_ms = 530
text_blink_rate_ms = 500
text_blink_fade = true
image_protocol = true           # Kitty / Sixel / iTerm2
image_memory_limit = 320000000  # CPU cache, bytes
image_gpu_memory_limit = 512000000
image_animation = true
image_max_single_size = 64000000

Keybindings

[[keybind]]
key = "o"
mods = "Ctrl|Shift"
action = "SplitRight"

[[keybind]]
key = "e"
mods = "Ctrl|Shift"
action = "SplitDown"

See Keybindings for all available actions and the full default binding list. URL detection is built-in for HTTP/HTTPS/FTP/file schemes; user-defined regex URL patterns are not yet supported.