Configuration
Config Location
ori-term looks for config.toml in the platform-standard config directory:
| Platform | Path |
|---|---|
| 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.