Terminix Year In Review

Gerald via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Jan 2 10:23:53 PST 2017


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.


More information about the Digitalmars-d-announce mailing list