digitalmars.D.announce - Terminix Year In Review
- Gerald (6/6) Jan 01 2017 Terminix is a GTK 3 tiling terminal emulator that has been
- Joakim (4/10) Jan 01 2017 Nice post, interesting read and good marketing for D, though
- Mike Parker (2/8) Jan 02 2017 https://www.reddit.com/r/programming/comments/5ll9j8/terminix_year_in_re...
- Edwin van Leeuwen (3/12) Jan 02 2017 It was also posted to:
- Adam D. Ruppe (4/6) Jan 02 2017 So, how hard would it be for you to swap out parts of the
- Gerald (29/35) Jan 02 2017 Since Terminix is a GTK 3 application, the minimum baseline is
- Chris Wright (7/21) Jan 02 2017 You could also rip out the logic and the system calls and so forth and
- Getald (6/9) Jan 02 2017 I'm not sure a textview would be viable, it might work for the
- Adam D. Ruppe (6/9) Jan 03 2017 I don't know GTK at all, but my terminal thing's frontend just
- Gerald (3/12) Jan 04 2017 Yep, that would be my expectation. I suspect you would just
- Adam D. Ruppe (14/23) Jan 02 2017 Yeah, I don't use GTK at all, my backend is pure code (it is an
- Antonio Corbi (9/13) Jan 03 2017 Hi Gerald,
Terminix is a GTK 3 tiling terminal emulator that has been designed following the GNOME Human Interface Guidelines. The project started just over a year ago at the start of 2016 and I thought it would be fun to look back at the project history, highlights, low-lights and goals for 2017. https://gnunn1.github.io/terminix-web/news/year-in-review/
Jan 01 2017
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. The project started just over a year ago at the start of 2016 and I thought it would be fun to look back at the project history, highlights, low-lights and goals for 2017. https://gnunn1.github.io/terminix-web/news/year-in-review/Nice post, interesting read and good marketing for D, though would be nice if it had a link to dlang.org. Someone should post this to reddit tomorrow.
Jan 01 2017
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. The project started just over a year ago at the start of 2016 and I thought it would be fun to look back at the project history, highlights, low-lights and goals for 2017. https://gnunn1.github.io/terminix-web/news/year-in-review/https://www.reddit.com/r/programming/comments/5ll9j8/terminix_year_in_review_looking_back_on_a_tiling/
Jan 02 2017
On Monday, 2 January 2017 at 13:35:21 UTC, Mike Parker wrote:On Monday, 2 January 2017 at 00:53:04 UTC, Gerald wrote:It was also posted to: https://www.reddit.com/r/linux/comments/5liblz/terminix_year_in_review/Terminix is a GTK 3 tiling terminal emulator that has been designed following the GNOME Human Interface Guidelines. The project started just over a year ago at the start of 2016 and I thought it would be fun to look back at the project history, highlights, low-lights and goals for 2017. https://gnunn1.github.io/terminix-web/news/year-in-review/https://www.reddit.com/r/programming/comments/5ll9j8/terminix_year_in_review_looking_back_on_a_tiling/
Jan 02 2017
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.
Jan 02 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: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.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.
Jan 02 2017
On Mon, 02 Jan 2017 18:23:53 +0000, Gerald wrote:On Monday, 2 January 2017 at 14:55:26 UTC, Adam D. Ruppe wrote:You could also rip out the logic and the system calls and so forth and hook them up (laboriously) to a TextView with appropriate styling. Which is probably nontrivial on both sides.On Monday, 2 January 2017 at 00:53:04 UTC, Gerald wrote: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 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.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.I glanced over a python-based terminal emulator the other day. It was intended as a simple and straightforward example, I think. It was over four thousand lines of code. I'm not about to try implementing my own.
Jan 02 2017
On Monday, 2 January 2017 at 20:33:04 UTC, Chris Wright wrote:You could also rip out the logic and the system calls and so forth and hook them up (laboriously) to a TextView with appropriate styling. Which is probably nontrivial on both sides.I'm not sure a textview would be viable, it might work for the command prompt but I doubt it would handle ncurses type applications like vi or nano very well. I also suspect the performance wouldn't be very good when dealing with a lot of output like cat'ing a large file.
Jan 02 2017
On Monday, 2 January 2017 at 21:11:47 UTC, Getald wrote:I'm not sure a textview would be viable, it might work for the command prompt but I doubt it would handle ncurses type applications like vi or nano very well.I don't know GTK at all, but my terminal thing's frontend just needs keyboard and mouse input events and a canvas to draw onto (including text string drawing functions). So I'm guessing the TextView is actually overfeatured for what I'd want.
Jan 03 2017
On Wednesday, 4 January 2017 at 04:08:00 UTC, Adam D. Ruppe wrote:On Monday, 2 January 2017 at 21:11:47 UTC, Getald wrote:Yep, that would be my expectation. I suspect you would just inherit from GtkWidget and go from there.I'm not sure a textview would be viable, it might work for the command prompt but I doubt it would handle ncurses type applications like vi or nano very well.I don't know GTK at all, but my terminal thing's frontend just needs keyboard and mouse input events and a canvas to draw onto (including text string drawing functions). So I'm guessing the TextView is actually overfeatured for what I'd want.
Jan 04 2017
On Monday, 2 January 2017 at 18:23:53 UTC, Gerald wrote:idea what would be involved in creating a GTK widget in D as I've never tried it myself.Yeah, I don't use GTK at all, my backend is pure code (it is an abstract class where you implement a few methods to actually do user interaction, while the terminal emulation guts are in that class) and the frontend is X11/Win32. It'd prolly be a bit of work then to wrap up my thing with the GTK UI implementation.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.Yes, indeed, far more complicated than you'd think! But I have actually used mine as my real world terminal emulator for about two years now, including with several complex existing programs (vim, mutt, finch, and many others) and it works well.Feel free to ping me on IRC and we can discuss in more detail.Yeah, we'll have to talk about it some day, the glue code would be a pain for both of us but once that's done I think our two sides could coexist well.
Jan 02 2017
On Monday, 2 January 2017 at 18:23:53 UTC, Gerald wrote: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.Hi Gerald, There's this tutorial from Davyd Madeley about writing a clock-widget (this is Gtk2) in C: 1- https://thegnomejournal.wordpress.com/2005/12/02/writing-a-widget-using-cairo-and-gtk2-8/ 2- https://thegnomejournal.wordpress.com/2006/02/16/writing-a-widget-using-cairo-and-gtk2-8-part-2/ Antonio
Jan 03 2017