The domterm command

The domterm command is the preferred away of using DomTerm.

If you run domterm with no arguments, it creates a new terminal emulator window, just as if you’d start xterm, say. You can specify options to specify what kind of window is created (for example a new tab or a web browser window). You can also specify a command to perform other actions besides creating a new terminal emulator.

domterm [options] [command arg...]

The command specifies one of a set of commands used to control domterm, as described in the following sections. If command is not specified, the default command is new, which creates a new session using a default shell such as /bin/bash.

Creating a new session

Creating a new session is done with the new commands, possibly abbreviated:

[new] [executable arg...]

This creates a new process running the executable with the specified command-line arguments.

You can leave out the new if the executable contains a “/” (slash). For example:

$ domterm /bin/csh -v

If executable is not specified, the default shell (for example bin/bash) is used.

The executable runs a new terminal window, as specified a window specifier.

The following options control which front-end (usually a browser), if any, is started.

Window specifier option

Use a window-specifier option with certain commands, such as new or attach. For example:

domterm --electron new
domterm --below attach '#4'
domterm --browser=firefox /bin/sh
--browser
--browser=program
--browser=firefox
--browser=google
--browser=google-chrome

Use program as a browser to run DomTerm in. If program is not specified, creates a new window or tab in your preferred desktop browser.

If program is specified, instead creates a window in the specified browser, where program is the name of a browser program that takes a single URL argument. The program can be a multi-word template, where %U is replaced by a URL generated by domterm.

Using firefox, chrome, or google-chrome for program enables some special tricks to search for those browsers. (Using chrome or google-chrome has the same effect.)

--electron

Use a front-end based on Electron. This is currently the nicest (and default) front-end.

--chrome

This uses the Google Chrome browser, started using the --app= option, so you get a fresh chrome-less window (with no menubar or toolbar).

This works well and the performance is good. This method provides no menubar or context-menu customization (so far).

--qtdomterm
--qtwebengine

Experimental (not all functionality is working). Either option (they do the same thing) runs qtdomterm with the --connect option, after starting up a websockets server.

--left
--right
--above
--below

If there is a current DomTerm window, split it in two, and create a new window to the left/right/above/below the old one.

--pane

Equivalent to either --right or --below depending on the current window’s width/height ratio.

--tab

Miscellaneous commands

is-domterm

Succeeds (exits with code 0) if the current terminal is DomTerm; fails (exits with code -1) otherwise.

This test does not depend on environment variables, but instead sends a special request code, and checks the response. This test works over an ssh connection. (The test does require that either DOMTERM be non-empty, or that TERM be either empty or contain the string xterm; otherwise it does not try to the request code.)

“Printing” html

html
html html-value ...

Use this to embed HTML content info the DomTerm page. If there are no arguments, read from standard input. Either of the following work:

echo 'E = mc<sup>2</sup>' | domterm html
domterm html 'E = mc<sup>2</sup>'

displays: E = mc2.

Sessions

attach session-specifier

Create a new window displaying an existing session. The same session (process) may be displayed in multiple windows. (Work-in-progress.)

list

List information about running sessions.

Miscellaneous options

--no-deaemonize

When a domterm backend (server) is created, it normally turns itself into a a daemon. This option prevents “deamonizing” - which is helpful for debugging.

--port portnum

(Probably obsolete.) Start a server, listening on the specified portnum. A portnum of 0 lets the system choose an available port, which is printed out. No front-end is started.

--once

(Probably obsolete.) Only allow a single connect before shutting down. This option is the default unless --port is specified.

There are other ldomterm options which useful if you want to run DomTerm as a server.