On Monday, 2 January 2017 at 14:55:26 UTC, Adam D. Ruppe wrote:
On Monday, 2 January 2017 at 00:53:04 UTC, Gerald wrote:
Terminix is a GTK 3 tiling terminal emulator that has been
designed following the GNOME Human Interface Guidelines.
So, how hard would it be for you to swap out parts of the
backend? I wrote a terminal emulator in scratch in D for myself
and have some nifty features hacked in already.
Since Terminix is a GTK 3 application, the minimum baseline is
that your emulator would have to be a GTK 3 Widget, I have no
idea what would be involved in creating a GTK widget in D as I've
never tried it myself.
Terminix uses the GTK VTE widget for terminal emulation, so the
more of that API that you implement the easier it is to
incorporate it. Having said that, if you got it to the point
where it worked as a base GTK widget I'd be happy to support it
as an experimental item and abstract the interface along with
turning off the functionality that it doesn't support compared to
However note that to get things to the point where it could
actually be shipped with Terminix for use by the end user is I
suspect a substantial amount of work. I don't know how feature
complete your emulator is, but looking at the VTE source code as
well as the source code for other emulators it's a surprisingly
complicated area with a lot of edge cases. Things like
transparency, unicode, buffering output to temp files with
encryption and various performance issues all come to mind. I
think you mentioned previously that vi works fine in your
emulator so you've already gotten over one of the major hurdles.
I do have a desire at some point to switch to a D written
solution for the actual terminal emulation at some point. I
haven't done it so far because I believe it is a huge amount of
work and I have my plate full just dealing with the application
side of things. However, If you are interested in working on that
I would be very interested in supporting you in that endeavor.
Feel free to ping me on IRC and we can discuss in more detail.