Credits and thanks

DomTerm is implemented by Per Bothner, but makes use of multiple libraries and tools.

The back-end uses Andy Green’s libwebsockets for its http and websockets server and event polling library.

The C back-end was based on Shuanglei Tao’s ttyd.

An older version of the back-end was Java-based. It made use of Java WebSockets. This is no longer supported, but a simplified Java server is still supported. It uses XMLHttpRequest (“ajax”) and the com.sun.net.httpserver.HttpServer bundled with JDK.

The older JWebTerminal project was based on similar ideas as DomTerm, but was mostly written in Java using Javafx WebView. Some optional Java code (not used by the default domterm command), including a JavaFX embedding, was written while I worked at Oracle, and is copyright Oracle.

GoldenLayout provides tiling and tabs.

Menubar and context (popup) menus on “generic” platforms (i.e. not Electron, Atom, or Qt) are implemented using jsMenus, which is based on Sam Wray’s nwjs-menu-browser library.

The screenfull.js library by Sindre Sorhus is provides a browser-independent wrapper for entering and exiting Full Screen.

ResizeSensor is used to watch when a DomTerm window or sub-window is re-sized. It is part of Marc J. Schmidt’s CSS Element Queries.

Marijn Haverbeke’s Browser Keymap package provides a simple key-binding manager.

Gregory Pakosz’s Where Am I? library is used to get the absolute path for the current domterm executable.

Eli Gray’s FileSaver.js is for the “Save as HTML” feature.

The wcwidth library (used to determine which characers are “double-width”) has a convoluted history - see the source code. It has been re-factored somewhat for DomTerm.

Reading Sixel images uses the node-sixel library written by Jörg “Jerch” Breitbart.

The Python tools were largely inspired or based on similar tools in GraphTerm, written by R. Saravanan (who also wrote the older XMLTerm, which was a big inspiration).