nemomobile / fingerterm

12 stars 29 forks source link

Replace terminal emulator "backend" with a library #29

Open FireyFly opened 10 years ago

FireyFly commented 10 years ago

This is a suggestion to replace the "backend" of the terminal emulator (doing all the heavy work of maintaining a character matrix/formatting/escape sequences) with a third-party-provided library. I see some huge benefits of doing this: precision in implementation, performance, and not having to maintain this separately. The first point is an important one for me, as Fingerterm's current implementation seems to lack a lot of control sequences and features.

The primary drawbacks of such a switch (that I could think of) would be that it's a bit harder to contribute to (due to the extra level of indirection, with a separate upstream maintainer), and that the library would probably be linked to dynamically, which is a change from the current 'single-binary' fingerterm. I don't think this matters considerably, though?

lrtz commented 10 years ago

I've thought about the same thing. There's already some kind of qt5 terminal backend project over there https://github.com/jorgen/yat but I haven't ever even tried to develop with qtcreator. terminal emulator backend as its own project and maybe sailfish default vkb would be nice though.

It also seems to be possible to build qtermwidget with qt5 https://aur.archlinux.org/packages/qt/qtermwidget-qt5-git/PKGBUILD

thp commented 9 years ago

There's also https://github.com/Swordfish90/qmltermwidget but that one is depending on QtWidgets, so probably a no-go (like qtermwidget, it uses Konsole's core, so good support there).

I tried yat, and it doesn't even currently work with just bringing up vim or mc.

thp commented 9 years ago

Had a look at other possibilities, this one looks promising: http://www.freedesktop.org/wiki/Software/kmscon/libtsm/

FireyFly commented 9 years ago

http://www.leonerd.org.uk/code/libvterm/ is a C library, but doesn't demand anything in particular from the frontend side of the terminal emulator (i.e. only takes care of the emulation itself). It has very good support (both for standardised sequences and xterm extensions) in my experience (I use the "pangoterm" terminal emulator day-to-day, which uses this library).