Settings

The Settings window

Ctrl+, (Cmd+, on macOS) opens it, as does File → Settings… or Settings… on the right-click menu, which is the way in when the menu bar is hidden. There is one Settings window, shared by every terminal window.

  • A sidebar of pages in two groups: General (Appearance, Terminal, Profiles) and System (Advanced). The arrow keys move between pages and skip the group headings.
  • Search settings at the top narrows both the rows and the pages to what matches. A match in a row’s title beats one in its description, and that row’s page opens. Rows also answer to other words: “transparency” finds Window opacity.
  • There is no OK button. Every control applies the moment it changes, to every window, and the file is written at once. Choosing a font or a theme is a judgement about how it looks, and a dialog that holds the result back makes you guess.
  • It follows changes made elsewhere. A theme picked from the palette, the menu bar hidden by its chord or a zoom step shows in the window while it is open.
  • Esc closes it.

What does not apply live

Two settings cannot, and each says so on its own row:

  • Scrollback lines sizes a buffer that already exists, so it applies to new tabs.
  • Shell is a process that is already running, so it applies to new tabs.

A few others apply at a later point, and say when: the interface language after a restart, Put the menu bar in the title bar to windows opened afterwards, and the profile for new tabs on the next tab.

The pages

Appearance (details):

  • Theme: the color theme.
  • Font: family and size.
  • Tabs: hide the tab bar with a single tab.
  • Window: show the menu bar, put it in the title bar, show a scrollbar, window opacity.
  • Language: the interface language.
  • Preview: a sample drawn with the real palette and font.

Terminal:

  • Display: cursor shape and visual bell.
  • Session: Ask before closing a running tab (on by default; asks only when the shell has something running in it), Scrollback lines (5,000 by default, 0 to 200,000, held in memory), and Shell (empty uses $SHELL, started as a login shell). The shell field says “Not found” or “Not executable” as you type.
  • Links: Open files with, a command for opening a clicked file path, such as editora {file}:{line}. Empty uses the desktop’s own opener. See Links.
  • Input: Use Alt as Meta (on by default) and Ask before pasting several lines (on by default). See Keyboard.
  • Keyboard: the command palette’s chord. See Changing the palette’s chord.

Profiles: the profile new tabs open with, and the list of profiles: the ones found on the machine, which you can hide, and your own, which you can add, edit and remove. See Shell profiles.

Advanced:

  • Files: where the settings file is. If a save fails, the reason shows here in red.
  • Updates: Check for updates at startup (below).
  • Diagnostics: Show Debug Log… (below).

Reset to Defaults

The button at the bottom of the window asks first, then puts appearance, terminal, window and update settings back to how they shipped. Your profiles, the default profile and the hidden profiles are kept.

The settings file

Every setting is in one plain properties file, settings.properties, in ~/.termina on every platform (C:\Users\<you>\.termina on Windows). To use another folder, start Termina with --config-dir DIR or set the TERMINA_CONFIG_DIR environment variable; --config-dir wins when both are given. The debug log’s file is written to the same folder.

  • Hand-editing is fine while Termina is closed. Termina reads the file at startup and writes the whole file on every change, so an edit made while it runs can be overwritten.
  • A bad line costs only that key. A value that does not parse falls back to its default, and the rest of the file is read as usual.
  • Values are clamped on read as well as on write, so a hand-edited two-million-line scrollback becomes 200,000 rather than exhausting memory at the next launch.
  • Writes are atomic. Termina writes settings.properties.tmp beside the file and moves it into place, so a crash or a power cut mid-write leaves either the old file or the new one, never an empty one.

The keys most worth knowing:

KeyValuesDefault
themeeditora-dark, editora-light, clear-dark, clear-lighteditora-dark
font.familyA font family name; empty picks the best availableempty (JetBrains Mono)
font.size7 to 4013
font.zoom0.3 to 3.0, multiplies the size1.0
terminal.cursorShapeBLOCK, UNDERLINE, BARBLOCK
terminal.belltrue, falsetrue
terminal.scrollback0 to 2000005000
terminal.shellA shell’s path; empty uses $SHELLempty
input.altIsMetatrue, falsetrue
input.confirmPastetrue, falsetrue
keys.commandPaletteA chord such as Alt+X or Shortcut+Shift+PAlt+X
ui.hideTabBarWhenSingletrue, falsetrue
ui.showMenuBartrue, falsetrue
window.menuBarInTitleBartrue, falsefalse
ui.showScrollBartrue, falsetrue
ui.confirmClosetrue, falsetrue
window.opacity0.6 to 1.01.0
ui.languageen, it, es, fr, pt, de; empty follows the systemempty
links.openCommandA command with {file}, {line}, {column}; empty uses the desktopempty
updates.checktrue, falsetrue

A keys.commandPalette line that does not parse, or names a chord another command has, falls back to Alt+X, so the palette always has a way in. The profiles are the profile.* keys with profiles.default and profiles.hidden; their format is on Shell profiles. The window.* size and position keys and the updates.* timestamps are bookkeeping that Termina maintains itself.

The debug log

Settings → Advanced → Diagnostics → Show Debug Log… shows every warning and error logged in this session, and anything that crashed, with Refresh, Copy and Clear. A packaged application has no console, so without it the one line saying why something failed would go nowhere.

The same lines are written to termina-session.log in the settings folder, started afresh at each launch. A second Termina running at the same time writes termina-session-<pid>.log instead, so it does not wipe the first one’s log. The log stays on your machine. See Troubleshooting.

Updates

Settings → Advanced → Updates → Check for updates at startup (on by default): at most once a day, Termina asks the GitHub releases API for the newest version. Nothing is sent beyond the request itself. When a newer release exists, the Help menu says so (Version X is available…) and opens the release page. Help → Check for Updates… asks at any time, and Help → About says when the last check ran. Turn the switch off, or set updates.check=false, to stop the startup check.