magiblot / tvision

A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
Other
2k stars 151 forks source link

Terminal widget? #61

Open ghost opened 3 years ago

ghost commented 3 years ago

Hello @magiblot ! I just became aware of this active Turbo Vision project recently over on the notcurses thread.

Besides "hello!" :-) I wanted to mention something I had done with SET's rhtvision a long time ago: qterminal . This was a port of Qodem's VT100/102/220/Linux terminal to Turbo Vision (screenshot1 screenshot2 screenshot3):

Very nice to see your project here! 💗

Also I love your Turbo editor screenshots. Very cool!

magiblot commented 3 years ago

Hi Autumn! Thanks for your interest and appreciation. Also thanks for sharing QTerminal.

Yes, I have experimented with a terminal widget based on Paul Evan's libvterm. So if you have ever dealt with that library before, you can already imagine how the widget works. However, I haven't published this terminal widget yet because it depends on a thread-safe timers extension to Turbo Vision which is not public either (because it's a footgun and I don't dare telling anyone to use it). libvterm has its shortcomings, so it would be interesting to try other terminal emulator implementations too. I'm all for reusing existing terminal emulator implementations rather than writing my own (which is often not the case in other projects; no wonder why there are so many diverging terminal emulators out there).

So if you'd like, I can try to make that unpublished widget production-ready in the next days (or weeks) and then we could integrate your QTerminal and see how it works, just for the fun of it.

Speaking of rhtvision, I never got to use its Unicode capabilities as a programmer. https://github.com/windoze/tvision/issues/5 was probably the main reason why I ended up taking up this project, which is branched off directly from Borland's TV 2.0.

Cheers.

magiblot commented 2 years ago

I have at last published the terminal widget I mentioned. If you are interested in integrating QTerminal into it, that's probably the right repository where to submit QTerminal's source code. All that has to be done is to create a new implementation of the TerminalAdapter interface which uses QTerminal.

Cheers.