Sessions and Windows

DomTerm can “multiplex” multiple terminal emulators (similar to tmux or GNU Screen).

Terminology

A session is an emulated terminal with a process running under it. A domterm server manages one or more sessions. Typically, for each user there is at most a single domterm server running at a time, though it is possible to create more: The server is created as needed, and exits when there are no more sessions. (Note that tmux uses “session” to refer to multiple processes running under the same server.)

Each session is usually displayed in a domterm window or window for short. If the session is not displayed in any window, we say it is detached. It is possible to display the same session in multiple windows.

A top-level window is window or tab in a web browser (or embedded browser, like Electron). A top-level window may be split vertically and/or horizontally into one or more tiles (or panes). Each tile has one or more tabs, where each tab is a (sub-)window. Only one of the tabs in a tile can be displayed at a time. These tabs are managed by domterm, and are distinct from any tabs managed by a web browser or window manager (though they have similar purpose).

A non-session window displays something other than a DomTerm session. The domterm browse command creates a non-session window that displays a specified web page. One use of this for is viewing documentation.

Managing sessions

Creating a new session is done by invoke the domterm command with the new sub-command, or with no arguments. See Creating a new session for details.

The sub-command list lists active sessions.

The sub-command attach connects to an existing session, often a detached session. You specify the session with a session-specifier.

The can detach the current session using either the keyboard short-cur Ctrl-Shift-A d or a menu command (Electron only). More precisely, it marks the current session as want-to-detach, and closes the current window. If there are other windows on the session, they remain active, but the session is detached (rather than exits) when the last window on the session closes.

When a session is detached, it saves the display state, so it can be re-created if the session is later attached. There is no auto-save in case of unintentional detach, such as network failure or a browser crash, but there are plans to implement that.

Session specifiers

A session specifier has one of the following forms:

pid

The pid is the process ID (an integer) of the designed session.

:session-number

The session-number sequential number permanently associated with the session.

session-name

The session -name is a user-friendky name associated with the session, and displaying in the tab-bar and title-bar of windows disdplay the session. The default session -name is ‘DomTerm:session-number’.