|
|
Home » Developing U++ » Bazaar » A terminal emulator widget for U++
|
|
|
Re: A terminal emulator widget for U++ [message #52195 is a reply to message #51415] |
Wed, 07 August 2019 21:24   |
Oblivion
Messages: 611 Registered: August 2007 Location: Turkey
|
Contributor |
|
|
Hello,
Terminal package is updated.
Initial support for a rare but much requested feature in the world of terminal emulators has landed:
- Sixel graphics support is added to the Terminal package. It is now possible to view sixel images, using the Terminal package. However, the initial support is only for external viewing. Embedded images are a TODO.
- A basic terminal example with sixel viewer is also added to the package.
- SixelRenderer class and a convenience function: RenderSixelImage is also added to the package. This class and the function can also be used as a stand-alone sixel renderer.
- Alt-key handling is improved.
A screenshot:

The git repo address of upp-components: https://github.com/ismail-yilmaz/upp-components
Reviews, criticism, patches, bug reports, etc., are always welcome.
Best regards,
Oblivion
upp-components: https://github.com/ismail-yilmaz/upp-components
[Updated on: Wed, 07 August 2019 21:44] Report message to a moderator
|
|
|
|
|
Re: A terminal emulator widget for U++ [message #52415 is a reply to message #51415] |
Sun, 22 September 2019 12:01   |
Oblivion
Messages: 611 Registered: August 2007 Location: Turkey
|
Contributor |
|
|
Hello,
Terminal package is finally updated to v0.2.
Image rendering and handling mechanism is vastly improved. 
- Terminal: SixelRenderer class is rewritten;
- Terminal: SixelRaster class, a StreamRaster interface for sixel images, is added to the package.
- Terminal: A subset of xterm's window-op reports are implemented.
- Terminal: An I/O synchronization issue with the PtyProcess class that led to artifacts on screen on some setups is fixed.
- Terminal: Inline image support is improved.
- Terminal: Room is made for other inline image protocols.
- Terminal: WhenSixel event is removed in favor of a generic WhenImage event.
- Terminal: Image rendering strategy is changed to cell-level rendering for further flexibility.
- Terminal: An LRU-type shared image data cache is implemented.
- Terminal: Support for Jexer, a modern text user interface (TUI) and windowing system for terminal emulators, is added.
- Terminal: A general purpose data variable is added to the cell structure.
- Terminal: SGR image flag is added to the cell structure.
- Examples: Examples are further simplified.
- Various optimizations and fixes.
- Image gallery is updated.
The "final boss" for this release was the jexer support. Jexer is a modern text user interface and window manager that runs inside terminal emulators. (It is an advanced terminal multiplexer.)
There were only four high-end terminal emulators (xterm, mlterm, rlogin and jexer itself) fully supporting the jexer, Now they are five 
I've made short videos of Terminal ctrl.
The ssh terminal example on windows also demonstrates the power of Core/SSH package. (It connects to a Linux device over 300 km distance, and runs jexer with inline images support, which is very demanding).
On Linux
- A basic terminal example with sixel graphics, and mouse tracking support.
- Used apps and tools: Jexer text user interface (TUI), GNUPlot, Emacs, Nano, htop, ncurses demos.
- Link: https://vimeo.com/359241367
On Windows
- A basic SSH2 terminal example with sixel graphics, and mouse tracking support.
- Used apps and tools: Jexer text user interface.
- Link: https://vimeo.com/361556973
On Turtle HTML-5 backend (in a web browser)
- A basic terminal example with sixel graphics, and mouse tracking support.
- Used apps and tools: Jexer text user interface.
- Link: https://vimeo.com/361558519
Screenshot (Windows, ssh terminal example):

Terminal@: https://github.com/ismail-yilmaz/upp-components/tree/master/ CtrlLib/Terminal
Best regards,
Oblivion
upp-components: https://github.com/ismail-yilmaz/upp-components
[Updated on: Sun, 22 September 2019 12:46] Report message to a moderator
|
|
|
|
Re: A terminal emulator widget for U++ [message #52644 is a reply to message #51415] |
Sun, 03 November 2019 15:03   |
Oblivion
Messages: 611 Registered: August 2007 Location: Turkey
|
Contributor |
|
|
Hello,
Terminal package and Terminal ctrl is updated.
There are fixes and clean-ups here and there, but most notably a new feature is added:
Terminal ctrl is now able to display 24-bit jpeg, gif, bmp, etc. raster formats, using the Jexer Image Protocol and Upp's own StreamRaster interface.
This means that if the raster images you are working with have registered decoders in upp/plugins, or somewhere else, Terminal ctrl will be able to display it.
Four main benefits of this inline images protocol is:
1) It is "8-bit clean". It can be safely deliver images over the network, and with Utf-8.
2) Popular image formats can be decoded much faster than sixels. (Up to 8 to 10 times faster on bigger image files), and usually have a lower bandwidth requirements.
3) Allows 24 bit (true color) images.
4) The wire protocol is very simple.
Screenshot with 24 bit images:
(Taken from the pre-alpha version of Toad, a cross-platform, multithreaded SSH2 client with tabs and splitter support, that will be available in -hopefully- January 2020):

Best regards,
Oblivion
upp-components: https://github.com/ismail-yilmaz/upp-components
|
|
|
Re: A terminal emulator widget for U++ [message #52684 is a reply to message #51415] |
Sun, 10 November 2019 21:49   |
Oblivion
Messages: 611 Registered: August 2007 Location: Turkey
|
Contributor |
|
|
Hello,
A new week, and another update with new features. 
- Explicit hyperlinks support is added.
- Standard menu improved and modularized.
- Cell tracking methods are implemented.
- Various fixes and cosmetics.
- Docs are updated accordingly.
Explicit hyperlinks are currently supported by GCC, ls, systemd, and a number of other high profile products.
One advantage of this hyperlinks protocol is that it is relatively well-defined and cheap.
To test it on linux, compile the TerminalExample, and run an updated version of the "ls" command:
Gif:

Best regards,
Oblivion
upp-components: https://github.com/ismail-yilmaz/upp-components
[Updated on: Sun, 10 November 2019 23:23] Report message to a moderator
|
|
|
|
|
Goto Forum:
Current Time: Sat Dec 14 07:08:07 CET 2019
Total time taken to generate the page: 0.03860 seconds
|
|
|