DomTerm is an terminal emulator based on web technologies.
Beyond solid xterm compatibility, it supports
powerful features for REPL (read-eval-print-loop) consoles:
Application output can have images, rich text, and links,
with structure-based line-breaking (pretty-printing), and folding.
There is also input editing; automatic paging;
screen multiplexing (panes and tabs); and session management
(like tmux
or GNU screen
).
This OpenSource.com article provides an overview of the functionality. This old LWN article provides background, motivation, and a summary of the functionality.
The domterm
command runs a server that manages
sessions (usually shell processes).
The user interface and terminal emulation
is handled by a JavaScript library
that can run in a regular web browser or an embedded browser such as Electron,
using Web Sockets to talk to the server.
The name “DomTerm” refers to how it works by manipulating the Document Object Model (DOM) of a browser: the nested structure of elements, text, and attributes.
DomTerm is Free Software (open-source) available at https://github.com/PerBothner/DomTerm.
There is a mailing list at domterm-discuss@domterm.org with an information page and archives.
xterm.js
by default later.
domterm
command takes multiple sub-commands,
similar to how tmux
or git
.
The command automatically starts server if not already running.
tmux
or GNU screen
.