The settings.ini file

User preferences for DomTerm are normally in the file .config/domterm/settings.ini in the user’s home directory. This location can be overridden with the --settings command-line option; otherwise the location is $XDG_CONFIG_HOME/domterm/settings.ini, where XDG_CONFIG_HOME defaults to $HOME/.config. (For compatibility reasons, $HOME/.domterm/settings.ini is also checked if $XDG_CONFIG_HOME is unset, but that may go away.)

(On WSL (Windows Subsystem for Linux) the file is c:\Users\USER\AppData\Roaming\DomTerm\settings.ini.) You can override this default with the -settings command-line argument. If the settings.ini is changed it is automatically re-loaded.

The syntax of settings.ini is a variant of the INI file format. A preference is written as:

keyword = value

For example:


Spaces before or after = are optional. A keyword should be a sequence of letters, numbers, periods or hyphens. The value is almost any sequence of characters (depending of the keyword), up to end of the line.

Multi-line values are written as an empty line following the ‘=’, and then one or lines starting with a single space followed by ‘|’. For example:

style.user =
 |div.domterm { --background-color: azure }
 |div.domterm-spacer {background: none }

In this cases the resulting value has two lines, with the two-character prefixes ‘ |’ removed.

For a boolean value any one of true, yes, or on enable the preference; one of false, no, or off disable the preference.

Comment lines start with # in the first column. Comment lines and all-blank lines are ignored.

shell.default = command

Specify a default “shell” command to execute when creating a new terminal. The command can include arguments, separated by spaces. You can uses quotes, as in a shell.

The default is the value of the SHELL environment variable; if that is not set the default is /bin/bash.

frontend.default = application-list

The browser-like program used to create new top-level windows, unless overridden by a specific window-specifier command.

The application-list is a list of commmand front-end, separated by newlines or semi-colons. The commands are tried left-to-right, until one is found that exists and is executable. The default is currently:

frontend.default = electron;qt;chrome;firefox;browser

The commmands electron, qt, chrome, firefox, or browser are equivalent to the corresponding windows-specifier --electron and so on. Otherwise a command may be include command-line arguments (possibly quoted), optionally including %U, similar to the program in a --browser=program option.

command.firefox = command = command
command.electron = command

Command to use for respectively --firefox, --chrome, or --electron.

The default for these is to search in the PATH, possibly with some platform-depending knowledge of default locations.

window.geometry = geometry

Control the size of new top-level windows. (Currently works for either Electron or qtdomterm windows, as well as ones started with --chrome-app.) The geometry has the same syntax as the --geometry command-line opton, WxH, where W and H are the width and height of the window, in pixels.

The default is 800x600.

style.user = css-style-rules

Set the user stylesheet to the rules in css-style-rules. The latter is typically a multi-line value.

See the Styling section for examples.

style.qt = css-style-rules

qtdomterm only: Set styling for QT user interface widgets. For example to specify the color green for text in QMenu do:

style.qt =
 |QMenu { color: green; }

See more examples.

style.dark = value

This option (if set) selects “reverse video”, which is a color preference for a darker background and a ligher foreground (text).

The default is off, which selects lighter background and a darker foreground colors.

style.caret = value

Change the style of the caret (text input cursor). The value can be one of these (unquoted) words: block, blinking-block, underline, blinking-underline, bar, or blinking-bar.

The default is blinking-block. Note that both blinking-block and blinking-underline only blink 20 times after each change or focus. To change the number of blinks set the CSS variable --caret-blink-count. For example to blink indefinitely, add this to settings.ini:

style.user= div.domterm { --caret-blink-count: infinite }

Currently, bar and blinking-bar are the same and use the browser’s native text cursor, which may be blinking or not.

open.file.application = application-list = application-list

List of applications to try when clicking on a link. If the link’s href is a file: URL, then the open.file.application list is tried first; then the list is tried. For a non-file: URL, only the list is tried.

For details, see link-handlers.

keymap.line-edit = keymap-overrides

Add or replace keybindings for input line editing. (Changing other keybindings is planned but not yet implemented.)

keymap.master = keymap-overrides

Add or replace keybindings that are active in all modes.