DomTerm icon indicating copy to clipboard operation
DomTerm copied to clipboard

new qtdomterm frontend could use more porting and testing

Open PerBothner opened this issue 8 years ago • 2 comments

I wrote a new self-contained terminal emulator using DomTerm and qtwebengine. At this point it's pretty nice and I'm going to try using it as my primary terminal emulator.

However, it has only been built and run on Fedora 24, which has qtwebengine already packaged. I'd be interested to know how difficult it would be to build on other platforms, and generally how well it works.

What changes if any are needed for OS X?

Porting to Windows will presumably be non-trivial. It should be possible to (on W\Windows) replace the low-level pty stuff with code taken from some Windows terminal emulator such as mintty - some day.

PerBothner avatar Aug 19 '16 06:08 PerBothner

For various reasons I ended up upgrading to Ubuntu 16.04 rather than openSUSE, so I'll give my experience with that platform. (I should also note that building QT 5 on Linuxbrew is stalled and requires fixing, of all things, Perl, before we can move forward on it, so I can't say how well it works with the Linuxbrew version of QT either).

Here's what I found:

% autoreconf
 Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ <-- HERE ([^ \t=:+{}]+)}/ at /home/linuxbrew/.linuxbrew/bin/automake line 3936.
configure.ac:9: error: required file 'autotools-aux/compile' not found
configure.ac:9:   'automake --add-missing' can install 'compile'
configure.ac:5: error: required file 'autotools-aux/missing' not found
configure.ac:5:   'automake --add-missing' can install 'missing'
autoreconf: automake failed with exit status: 1

I fixed the missing files problems with automake --add-missing. For the record this is autoreconf 2.69, installed via linuxbrew.

% ./configure --with-qtwebengine

This was successful.

% make
/bin/bash: qmake-qt5: command not found

First of all, you have to install the qt5-qmake package. However, that's not enough: you also have to change "qmake-qt5" to just "qmake".

Having done all that and also having installed the qt5-default package, I ran the build again. Unfortunately, I think it's not possible to build at this time using just stock 16.04 libraries. You get the following error: Project ERROR: Unknown module(s) in QT: webenginewidgets webchannel.

While Ubuntu provides packages for QtWebKit, that appears to be something different than QtWebEngine. This page suggests that distributors are having a hard time packaging it.

I found one other trivial problem, which I'll submit a patch for shortly.

Sorry it took so long to get back to you!

rwhogg avatar Sep 04 '16 23:09 rwhogg

"While Ubuntu provides packages for QtWebKit, that appears to be something different than QtWebEngine. This page suggests that distributors are having a hard time packaging it."

Yes, it is quite different. QtWebEngine seems to be preferred going forward, though I have seen some news about QtWebKit still being somewhat actively maintained.

"Porting" qtdomterm to run using QtWebKit is probably not that hard. The biggest difference is JavaScript bridge. QtWebEngine uses WebSockets as the layer between C++ and JavaScript, while QtWebKit has a more direct API (which I haven't looked at). The JavaFX port of DomTerm would probably be similar in concept.

PerBothner avatar Sep 05 '16 03:09 PerBothner