termuna

Configuration

Termuna reads ~/.config/termuna/config.toml (override the path with the TERMUNA_CONFIG environment variable). No config file is required: everything below shows the defaults. A broken config never blocks startup - Termuna logs a warning and uses defaults.

The full reference

[font]
size = 14.0
# Cell height as a multiple of font size.
line_height = 1.32

[theme]
# Built-in themes: "luna-dark" (default), "luna-light", "dracula",
# "nord", "gruvbox-dark", "solarized-dark", "tokyo-night".
# Pick these in-app under settings.
name = "luna-dark"

# Lines of scrollback kept per pane (max 1,000,000).
scrollback_lines = 10000

[ui]
# Written by the app, listed here so nothing in the file is a mystery.
# The window reopens the way it was closed: size, maximized state, and
# the session that was on screen. First-launch defaults:
window_width = 1440.0
window_height = 860.0
window_maximized = false
# last_session = "<uuid>"
drawer_pinned = true
continuity_pinned = true

# Behaviour knobs the app does not surface in settings (yet).
[terminal]
# Ask before pasting text with newlines: a paste is keystrokes, and the
# second command runs before the first can be read.
warn_on_multiline_paste = true
# Drop the trailing newline/whitespace a copied line brings with it.
trim_paste = true
# What a double-click treats as the end of a word (paths and URLs stay
# whole with these).
word_separators = " ()[]{}'\"`,;:|<>"
# Lowest WCAG contrast ratio a cell may render at; the foreground is
# lifted until it clears. 1.0 = never touch the scheme's colours.
min_contrast = 1.0
# Read "NN%" out of pane output and show it in the status bar.
detect_progress = true
# The per-pane "Notify when this quiets down" watch is a menu action
# (right-click a pane), not a setting: no key here controls it.
# Desktop notifications about panes you cannot see. notify_when_done
# covers a command that ran >=15s finishing, and a bell.
# notify_on_activity additionally pings on the first output of a quiet
# background tab.
notify_on_activity = false
notify_when_done = true
# The key that opens pick mode on the focused pane, same "modifiers+key"
# grammar as keybindings. An empty or unreadable value falls back to
# this default.
pick_key = "ctrl+shift+space"
# What a lowercase label press, or a bare Enter, does to the picked
# token: "copy" or "insert" (at the prompt, never run). Anything else
# reads as "copy". Shift+Enter always inserts, Ctrl+Enter always opens.
pick_default_action = "copy"
# Your own regular expressions for pick mode, labelled beside the
# built-in kinds. A pattern that does not compile is reported by name,
# never dropped silently.
# pick_patterns = ["s3://[a-z0-9._/-]+", "[0-9a-f]{12}"]

[ssh]
# One SSH connection per host, shared by every pane on it and the file
# lane: a split opens a channel, not a handshake, and a 2FA host asks
# once. false gives every pane a connection of its own.
share_connections = true
# How long an idle connection is kept after its last consumer goes, so
# the next pane on that host reuses it. "0" closes it with the last
# consumer; "30s", "1h" or a bare number of seconds read too.
connection_linger = "5m"
# Ask before a new pane joins an existing connection.
ask_before_reuse = false
# A dropped SSH link keeps its pane, its scrollback and its place in the
# split, and the same target is dialed again: 1s, 2s, 4s, 8s, then 15s
# between attempts. false closes the pane on a drop instead.
redial = true
# Attempts before the pane goes inert and waits for a person.
redial_max = 8
# Sharing can be turned off for one host and left on for the rest:
# [ssh.host."bastion"]
# share_connections = false

[quake]
# A global OS-wide hotkey that shows / hides the Termuna window.
# Off unless set. Same "modifiers+key" grammar as keybindings.
# hotkey = "F12"

[cloud]
# Termuna Cloud session continuity. OFF by default: nothing ever leaves
# this machine unless you turn it on. The in-app sign-in writes this
# section for you.
enabled = false
url = "wss://termuna.com/v1/session"
share_base = "https://termuna.com/s"

[keybindings]
# "modifiers+key" = "action"; chords with ">". See the Keybindings page.

Notes

  • The [ui] section is written by the app as you use it; you rarely edit it by hand. It is documented so nothing in the file is a mystery.
  • The legacy bare session link is written next to each synced session's file in ~/.local/share/termuna/sessions/ as <id>.cloudurl. It opens the session until the session's first share link is minted, and not after (share links).
  • The five [ssh] keys govern two things. Three say whether the panes and the file lane on one host share one SSH connection, how long an idle one lingers and whether a new pane asks first (one connection per host); two say what happens when a link drops. What is kept, what is dialed again and the two cases that are never retried are on SSH and SFTP.
  • Every value above is the default: a minimal config that only changes the theme is two lines long.
  • Typing prediction is not a key here. It is a remote-viewer feature, not a desktop one: the phone's own settings expose a prediction mode segment, adaptive (the default, arms only above a slow link), always, or never. The web viewer predicts the same way, with no settings screen of its own yet.

Next: SSH and SFTP