DomTerm and other web-based terminals
DomTerm and other web-based terminals
Posted Apr 2, 2018 1:16 UTC (Mon) by Per_Bothner (subscriber, #7375)Parent article: A look at terminal emulators, part 1
DomTerm can be one of the dreaded Electron apps (though there is also a Qt version or you can use your desktop browser). Regardless, DomTerm is not going to be as memory-efficient (nor as zippy) as traditional terminal emulator - but you gain quite a bit in terms of both eye-candy and functionality. In terms of eye candy you use CSS to change many aspects of the appearance.
In terms of functionality, having a more structured data representation (as opposed to a plain character grid) opens up a lot of possibilities: smart text-wrap (including pretty-printing); "folding" (show/hide buttons); smart copying; being able to save, analyze, and post-process the transcript (for example with delimited input and output). And of course: the output can include graphics, images, and rich (html) text. An application can annotate the output with comments, hovers, images, links, which can be styled, and those annotations persist when you copy or save the output.
There are other web-based terminal emulators (some of which use Electron) that are basically character grids without DomTerm's extra structure and features - and for those I agree it's harder to justify the extra memory use.
Some DomTerm-specific notes:
The GitHub page lists Domterm under "too big or too hard to install". The DomTerm 1.0 release includes rpms for Fedora.
(Use the qtdomterm
package for the Qt version.)
The "magicstring" test works.
"cat sarah
" displayed correctly, but not right-aligned.
(How to handle RTL text in a terminal emulator is not obvious, and requires help from someone experienced with such languages.)
DomTerm does handle double-width CJK characters, and deals with input methods (IME).
Paste protection: Bracketed-paste-mode is supported: 'without:' x; with, 2nd box ok (on domterm 1.0.1).
Tabs and profiles: Supports tabs (and tiling). Some support for profiles - see Session-specific styles.
Eye candy: Backgounds: yes. Transparency: no. True-color: yes. URL: yes (also FILE:LINE: in error message opens file in editor). Text-wrap: yes. Scrollback: yes.
Daemon: the domterm command deamonizes itself by default