DomTerm is a free open-source feature-rich, modern terminal emulator and screen multiplexer (like tmux or GNU screen), which is based on web technologies and a rich-text console written mostly in JavaScript.
It uses libwebsockets as a backend and a byte-protocol to communicate with the back-end, this implies that you can invoke it in a browser using web sockets; embed it in a third-party application; or simply run it as a generic terminal emulator program.
DomTerm Features:
- It is xterm-compatible and supports multiple sub-commands.
- It comes with multiple applications which include a: xterm-compatible terminal emulator, command console, chat/talk window and a read-eval-print-loop for an interactive scripting language.
- Supports multiplexing and sessions.
- Its back-end allows for printing images, graphics as well as rich text.
- Supports controlling of user preferences via a CSS file.
- Supports keyboard shortcuts with smart line-wrapping.<./li>
- Optionally allows for input editing and movement of cursor using mouse.
- Supports preserving of TAB characters with automatic pagination.
- Support draggable tabs and panes.
- Automatically turn URLs and mail addresses in output into links and much more.
- An experimental package atom-domterm for the Atom editor.
How to Install DomTerm Terminal Emulator in Linux
There are no pre-built DomTerm packages available, therefore you need to install it from source, but before downloading the source code and compiling it. First you need to install following dependencies on your respective Linux distributions using package manager as shown.
On Debian/Ubuntu
$ sudo apt-get update $ sudo apt-get install git gcc make cmake automake libjson-c-dev pkg-config asciidoctor libmagic-dev zlib1g-dev qt5-qmake qt5-default libqt5webengine5 libqt5webchannel5-dev qtwebengine5-dev
On RHEL/CentOS
$ sudo yum update $ sudo yum install gcc make automake autoconf texinfo patch libwebsockets libwebsockets-devel json-c json-c-devel openssl-devel file-devel libcap-devel asciidoctor
On Fedora
$ sudo dnf update $ sudo dnf install gcc make automake autoconf texinfo patch libwebsockets libwebsockets-devel json-c json-c-devel openssl-devel file-devel libcap-devel asciidoctor
DomTerm also requires libwebsockets version 2.2 or later. Therefore, you need to build and install the latest version from source as shown.
$ cd ~/Downloads $ git clone https://github.com/warmcat/libwebsockets $ cd libwebsockets $ mkdir build $ cd build $ cmake -DLWS_WITH_SSL=0 -DLWS_WITH_ZIP_FOPS=1 . . $ make
Next clone the DomTerm source repository, build and install it using the following commands.
$ cd ~/Downloads/ $ git clone https://github.com/PerBothner/DomTerm $ cd DomTerm $ autoreconf $ ./configure --with-qtwebengine --with-libwebsockets=$HOME/Downloads/libwebsockets/build $ make $ sudo make install
Once you have successfully installed DomTerm on your Linux distribution, you can search for it from your system menu or run the following command to launch it.
$ domterm
DomTerm Homepage: https://domterm.org/
That’s all! DomTerm is a full-featured terminal emulator and a rich-text console, it also comes with several other useful applications. Share your thoughts about it via the feedback form below.
What does this terminal emulator do that many of the scores of terminal emulators already available for Linux don’t? Why would one want to use it, in preference to any of those? What’s the point of this me-too effort? An exercise by somebody to prove that they have the chops to develop a terminal emulator?
How really different from each other are the 70+ desktop environments and window managers? How really different from each other are the countless respins of Ubuntu? What’s the point of this me-too effort? An exercise by somebody to prove that they have the chops to develop a desktop environment, window manager or a distro?
DomTerm just gives the terminal a little different look than other terminal emulators. The developer only carried on the Linux principle of freedom of expression; the Linux attitude that if it is good to have 5 versions of some software, having 20 or 50 is that much better. All this development of slightly different versions of software is not really making Linux better, only more balkanized.