|
|
Home » Developing U++ » UppHub » A terminal emulator widget for U++
|
Re: A terminal emulator widget for U++ [message #54413 is a reply to message #51415] |
Tue, 14 July 2020 14:44 |
Oblivion
Messages: 1112 Registered: August 2007
|
Senior Contributor |
|
|
Hello,
Moving towards the v0.4, Terminal ctrl has gained a new feature:
- Application clipboard manipulation protocol (OSC 52) is implemented.
This optional feature grants clipboard read and write access to applications that supports OSC 52
OSC 52 is supported by many terminals, including xterm, and apps such as tmux.
However, this feature should be handled with care by the client code, as it may pose a security threat.
Terminal ctrl already takes some security measures though:
1) Terminal ctrl gives the client code a granular control over this protocol.
2) In compliance with the principle of least astonishment, the feature is disabled by default.
3) It will work IFF it is enabled && the ctrl instance has focus (to prevent spamming, etc.)
Accordingly, the API and specs docs are updated.
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Tue, 14 July 2020 14:47] Report message to a moderator
|
|
|
Re: A terminal emulator widget for U++ [message #54493 is a reply to message #51415] |
Sat, 01 August 2020 20:48 |
Oblivion
Messages: 1112 Registered: August 2007
|
Senior Contributor |
|
|
Hi,
Aside from small updates, there were no news about Terminal ctrl for some time.
Here is a screenshot of the upcoming v0.4 (2020.2) of Terminal ctrl on Windows 10, scheduled to be published in October 2020:
That's Windows powershell (tm) running natively on the basic terminal example, on Windows 10.
This is possible because Windows 10 has a brand new pseudoconsole api. (Thus you can also run plain cmd.exe, or other console apps...)
I am implementing this in PtyProcess class, without requiring any API change, so the Terminal reference examples can be run without changing the code.
Hopefully, this will mature with v0.4.
Best regards,
Oblivion
-
Attachment: Capture.JPG
(Size: 61.01KB, Downloaded 895 times)
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
|
|
|
Re: A terminal emulator widget for U++ [message #54618 is a reply to message #51415] |
Fri, 21 August 2020 13:29 |
Oblivion
Messages: 1112 Registered: August 2007
|
Senior Contributor |
|
|
Hi,
Today marks a rather important milestone for Terminal ctrl: Windows 10 pseudoconsole API support.
The support is implemented in PtyProcess class, so nothing new is introduced. Thanks to Mirek, you only need to enable the WIN10 flag in theIDE's main package configuration settings ("GUI WIN10"). So you will need the nightly builds of Upp to run Windows 10 pty with Terminal ctrl.
It is tested with the bundled CLANG and MSVC19 (MSVC19 requires comdlg32.lib via Windows SDK)
Since the support is experimental at the moment, you can expect some glitches (If you find any, let me know).
Git examples are also updated to reflect the changes. You can check them to see what is changed (or rather, not changed.)
For other, under-the-hood improvements and changes, you can check the git commit history.
Note that Terminal package is still in v0.3 phase. v0.4 (or 2020.2) is still two months away, and will bring in more improvements, and hopefully a refined win10 pty support.)
Here is a screenshot of the stock terminal splitter example, running multiple instances of cmd.exe with resizing support. (You can also run powershell instead):
If you have any questions, suggestions, bug reports, etc., let me know.
Cheers!
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Fri, 21 August 2020 13:33] Report message to a moderator
|
|
|
|
|
Re: A terminal emulator widget for U++ [message #55134 is a reply to message #51415] |
Tue, 13 October 2020 12:41 |
Oblivion
Messages: 1112 Registered: August 2007
|
Senior Contributor |
|
|
Ok then, since there is no objection, the Terminal widget will be officially renamed as TerminalCtrl from version 2020.2 (0.4) on.
In the meantime, I'd like to share some news about my personal, pet project:
A robust and easy-to-use, multitabbed, cross-platform terminal emulator (which will also have support for SSH2 connections) I am currently writing in tribute to U++
As I've mentioned before, its project codename is "toad" (it may change in the future). It is a pre-alpha software now, but once it hits alpha (0.1) I will release it under BSD license on a separate git repo. (most stuff - sans SSH infrastructure - is already up and working.)
Here is a screenshot (on linux, GNOME 3.38):
If you have any questions, ideas, bug reports, etc. let me know.
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
|
|
|
|
|
Re: A terminal emulator widget for U++ [message #55726 is a reply to message #55721] |
Thu, 03 December 2020 16:25 |
Oblivion
Messages: 1112 Registered: August 2007
|
Senior Contributor |
|
|
Hello hongnod.
Thank you for your kind words!
Quote:I am watching your "Terminal" project for a duration of time. It looks amazing. I just want to know if the "toad" out will be something like XShell?
Yes, but Toad will be lighter. The prealpha (unreleased) version already has a (experimental sftp browser).
My focus with Toad is to provide
a) A cross-platform terminal emulator in U++ style (=single directory with few to none external dependencies, that can also be compiled to work on web browsers and on Linux framebuffer)
b) An ssh2 terminal with x11 forwarding.
c) An integrated sftp browser and a multithreaded sftp/scp file transfer client.
Steps a and b is basically done (I'm polishing them)
Step c is a TODO (done ATM only experimentally).
It is already delayed but its initial public beta will hopefully be released in the second quarter of 2021
In the meantime I will continue improving the TerminalCtrl
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Thu, 03 December 2020 16:26] Report message to a moderator
|
|
|
|
Re: A terminal emulator widget for U++ [message #55739 is a reply to message #51415] |
Sat, 05 December 2020 16:21 |
Oblivion
Messages: 1112 Registered: August 2007
|
Senior Contributor |
|
|
Hi,
Terminal package is now tagged as 2020.2 (v0.4)
There's a lot of changes under the hood but here are some highlights:
Terminal package, release: 2020.2, overview:
* Terminal class is finally renamed as TerminalCtrl. (Upp::Terminal will be available as an alias, until 2021.1 (v0.5) release tag).
* Fixed to compile with MSC 19.
* TerminalCtrl now officially supports Windows 10's native pseudoconsole api via the unified, basic interface of PtyProcess class.
* iterm2's inline images protocol is implemented and polished.
* Clipboard manipulation protocol (OSC 52) is implemented.
* Middle-drag (in application mouse-tracking mode) is implemented.
* Right-drag (in application mouse-tracking mode) is implemented.
* Auto-hide option for mouse cursor is added.
* Word selection is implemented. (double-click selection)
* Line selection is implemented. (triple-click selection)
* Text selection mechanism is refactored using the new range-based methods.
* Copy-on-select style text selection is added.
* Text cursor (caret) width is now automatically adjusted to cell width (i.e. reacts to single/double width unciode codepoints).
* Space character can now have overline/underline/strikeout attributes.
* Key handling is further improved across supported platforms.
* Scheduled time callbacks are now properly cleared on object destruction. (MT-fortification)
* Performance/throughput is further improved by removing the now redundant calls to page refresh methods.
* Hyperlink tooltips now display the decoded URL.
* RGBA, CMY and CMYK color text specifications (formatting and scanning) is now supported.
* Brightness component of faint colors is now correctly calculated.
* Jsonization and Xmlization support is added.
* More switches are added to the TerminalCtrl.usc (layout file).
* PtyProcess api docs are added.
* TerminalCtrl::InlineImage structure is documented.
- Terminal overview doc is removed.
Enjoy!
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Sat, 05 December 2020 16:27] Report message to a moderator
|
|
|
|
|
Re: A terminal emulator widget for U++ [message #56155 is a reply to message #51415] |
Mon, 01 February 2021 21:18 |
Oblivion
Messages: 1112 Registered: August 2007
|
Senior Contributor |
|
|
Hi,
This is going to be an announcement:
I have decided to move several packages from upp-components to UppHub. And the Terminal package is one of them.
So in the following two weeks I will move the package and the example code to its own github repository.
In this way,
1) You will be able to download and update TerminalCtrl source code, examples via TheIDE's package manager, into the upp sandbox (no need to setup any assembly, etc.) with a single and simple click.
2) You won't have to download the whole upp-components repository to get TerminalCtrl and its examples.
This, however, does not mean that upp-components is dead. On the contrary, it will be maintained and synchronized with the upphub version as usual.
Besides, upp-components, and especially Terminal package gets a lot of hits, as it is referenced in various places in terminal emulation scene, and terminal emulator developer portals, and redirects curious people to Ultimate++. And I don't want to lose that.
What I will do is to add a notice to the installation instructions and packages list in the upp-components readme file stating that these packages are also available via upphub, in TheIDE - nightly.
If you have any questions, objections, suggestions, etc let me know.
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Mon, 01 February 2021 21:30] Report message to a moderator
|
|
|
|
|
Re: A terminal emulator widget for U++ [message #56240 is a reply to message #56236] |
Fri, 12 February 2021 21:58 |
|
Klugier
Messages: 1082 Registered: September 2012 Location: Poland, Kraków
|
Senior Contributor |
|
|
Hello Oblivion,
Glad to hear that it is available on UppHub I tested the TerminalExample and found one problems. The path inside terminal is not displayed correctly (it has the same color as terminal area). Here is the screenshot:
Maybe it is somehow related to white them. Please check!
Klugier
U++ - one framework to rule them all.
[Updated on: Fri, 12 February 2021 21:59] Report message to a moderator
|
|
|
Re: A terminal emulator widget for U++ [message #56241 is a reply to message #56240] |
Fri, 12 February 2021 22:26 |
Oblivion
Messages: 1112 Registered: August 2007
|
Senior Contributor |
|
|
Hello Klugier,
Quote:. The path inside terminal is not displayed correctly (it has the same color as terminal area). Here is the screenshot:
Thanks for reporting this!
However, I am unable to reproduce it on my two machines (Arch Linux, GNOME.) Tried with several different normal/dark themes. It seems to be working. (Even "powerline" styles are working! )
It is possibly theme related.
If you have time, could you please provide the below information:
- The TERM variable
- The SHELL variable
- Is Adjust to dark theme on? (You can check it via context menu)
- Is Light colors mode on? ( You can check it via context menu)
- Have you tried it with other terminals? (e.g. xterm, Konsole, etc.) xterm would be a good criterion to compare.
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Fri, 12 February 2021 22:28] Report message to a moderator
|
|
|
Re: A terminal emulator widget for U++ [message #56242 is a reply to message #56241] |
Fri, 12 February 2021 23:00 |
|
Klugier
Messages: 1082 Registered: September 2012 Location: Poland, Kraków
|
Senior Contributor |
|
|
Hello,
It is fine with Konsole and VS Code however, the xterm doesn't display colors correctly. The color tune up doesn't help. The values for $TERM, $SHELL and $PS1 are as follow:
xterm
/bin/bash
\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\]
I think the root cause of the problem is that distro do some overrides.
Klugier
U++ - one framework to rule them all.
[Updated on: Fri, 12 February 2021 23:02] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Sat Sep 21 00:49:48 CEST 2024
Total time taken to generate the page: 0.09120 seconds
|
|
|