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.

JSON in the backend is handled by Niels Lohmann’s json library. (In the past the json-c library was used.)

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 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.

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).

Building of the qtdomterm directory makes use of AutoTroll by Benoit Sigoure and Werner Lemberg.

Unicode Extended Grapheme breaking and determination of wide character uses unicode-properties, which are based on code by Devon Govett (unicode-trie, tiny-inflate, and unicode-properties), and by Taisuke Fukuno (grapheme-breaker-mjs). The wcwidth library is no longer used.

The find-text facility uses Julian Kühnel’s mark.js.

Simulated “traffic light” window buttons for macOS are based on a CSS stylesheet by Gabi Maeztu.