A frontend is a program that handles the user interface for a session, in a window. A frontend is either a web browser, or some application that has an embedded web engine. You have a number of options for a frontend, with different advantages and limitions. The two most polished frontends at this point are the Electron and Qt frontends.
Multiple different frontends can talk to the same backend at the same time.
(These can all change as browsers change or work-arounds are implemented.)
Exiting the inferior process can sometimes fail to automatically close the DomTerm window, due to browser security limitations. It currently works on Google Chrome, but not Firefox.
Saving the console display to a file in a browser may save to the browser’s “Downloads” area. You may be able to save the file elsewhere, depending on the browser and its settings.
The view-saved
command require permission to read from
the file-system, so may not work in a desktop browsers.
It works on Electron and Qt.
Microsoft Edge does at time of writing not handle the tab-size
CSS property, so on that browser tab characters are always converted to spaces.
Copy and Paste menu items are only known to work with the
Electron and Qt front-ends.
The others may run into security restrictions.
A future workaround may be to have the backend
handle clipboard access, using programs such as
xclip
, xsel
(older), or pbcopy
/pbpaste
(Mac OS).
The keyboard shortcuts Ctrl-Shift-C and Ctrl-Shift-V work on all tested platforms.
Middle-button paste seems to work on most frontends (on Linux)..
The Electron and Qt front-ends use their respective menu interfaces, which works well.
Most other frontends use a menu package written in JavaScript that works fairly well, but has some minor issues. One is that all menus are constrained to the main window. Also (as mentioned above) copy and paste menu items may not work due to browser security restrictions.
Start the Electron frontend (if available) with the --electron
option.
Start the Qt frontend (if available) with the --qt
option.
Modern desktop browsers should work ok, but note the limitations mentioned above (most notabley copy and paste). However, only Firefox and Chrome are tested frequently.
To open a Firefox window or tab use the --firefox
specifier.
Recent versions of Firefox should work well.
Exiting the inferior process (such as by typing exit
in a shell)
does not automatically close the browser window.
To open a Google Chrome window or tab use the --chrome
specifier.
The --chrome-app
specifier creates a top-level Chrome window
without the standard Chrome location bar or other header “chrome”.
There is a fairly nice package for embedding DomTerm panes in the Atom text editor framework. See the repository.
There is an experimental package for the Theia IDE. See this fork.