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 GTK VTE.

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.

Reply via email to