DomTerm
¶
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
.
Highlights and recent changes
¶
- An
experimental option
to use
xterm.js
for the JavaScript “guts” of the terminal emulator.
This is quite a bit faster than the default implementation,
but is missing a number of features. The plan is to add those features,
and use
xterm.js
by default later.
- Sixel graphics
is now supported.
- The
domterm
command takes multiple sub-commands,
similar to how
tmux
or
git
.
The command automatically starts server if not already running.
- Session management
, with detachable sessions, as in
tmux
or GNU
screen
.
- An experimental package
atom-domterm
for the
Atom editor
is available.
- A front-end based on
Electron
is now the preferred one.
- We now support draggable tabs and panes.
- An experimental
pager
with optional
automatic pause on each page.