The electron-nodepty
directory contains an experimental version
of DomTerm as a combined frontend and backend using Electron and node.js.
This re-uses the JavaScript front-end code,
but replaces the lws-term
server part with Electron code.
Using node.js
may make building and install domterm easier,
as there are fewer dependencies, and they can mostly be handled by npm
.
The code is more compact and easier to understand than the C code.
Runs on native Windows (without needing WSL), using node-pty.
Uses Electron ipc instead of WebSockets.
The Electron instance is not daemonized. Could use nohub
or daemon node module.
The domterm
command (using lws-term) has lots of
options and sub-commands. Re-implementing this would be some work.
Probably use node net
module;
see this blog.
No support for auto-input-mode due to missing tcgetattr hook.
No way to put process pid and ttyname in DOMTERM
environment variable.
(Maybe fix by hacking node-pty
.)
No support for using other non-Electron front-ends, including using a web-browser. (Could be implemented, of course, by adding server for http and WebSockets.)
You will probably need to
run electron-rebuild;
the easiest way is to use npm
:
cd $DOMTERM_DIR/electron-nodepty npm install npm install --save-dev electron-rebuild $(npm bin)/electron-rebuild --version $(electron --version)
The file hlib/domterm-version.js
built from
hlib/domterm-version.js.in
by the configure
script.
If you don’t have the shell and other Unix-style tools to
generate and run configure
, you can cheat by
just copying hlib/domterm-version.js.in
over:
cd $DOMTERM_DIR/hlib && cp domterm-version.js.in domterm-version.js
To start DomTerm do:
electron $DOMTERM_DIR/electron-nodepty