Re: Terminix Year In Review

2017-01-04 Thread Gerald via Digitalmars-d-announce

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:
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.


Yep, that would be my expectation. I suspect you would just 
inherit from GtkWidget and go from there.


Re: Terminix Year In Review

2017-01-03 Thread Adam D. Ruppe via Digitalmars-d-announce

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.


Re: Terminix Year In Review

2017-01-03 Thread Antonio Corbi via Digitalmars-d-announce

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


Re: Terminix Year In Review

2017-01-02 Thread Adam D. Ruppe via Digitalmars-d-announce

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.


Re: Terminix Year In Review

2017-01-02 Thread Getald via Digitalmars-d-announce

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.





Re: Terminix Year In Review

2017-01-02 Thread Chris Wright via Digitalmars-d-announce
On Mon, 02 Jan 2017 18:23:53 +, Gerald wrote:

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

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.

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


Re: Terminix Year In Review

2017-01-02 Thread Gerald via Digitalmars-d-announce

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.


Re: Terminix Year In Review

2017-01-02 Thread Adam D. Ruppe via Digitalmars-d-announce

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.


Re: Terminix Year In Review

2017-01-02 Thread Edwin van Leeuwen via Digitalmars-d-announce

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:
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/


It was also posted to:
https://www.reddit.com/r/linux/comments/5liblz/terminix_year_in_review/


Re: Terminix Year In Review

2017-01-02 Thread Mike Parker via Digitalmars-d-announce

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/


Re: Terminix Year In Review

2017-01-01 Thread Joakim via Digitalmars-d-announce

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.


Terminix Year In Review

2017-01-01 Thread Gerald via Digitalmars-d-announce
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/