-
Notifications
You must be signed in to change notification settings - Fork 8.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eventually register a terminfo with ncurses upstream #2958
Comments
Related: #1040 We've actually been in touch with Thomas about the existing |
@DHowett I actually have a question about that: Are you eventually planning on having WT do its own VT processing/rendering via a raw pty (but still using the shared renderer library) instead of having conhost do it? This would make things a lot easier to divvy up by profile, in particular this feature #2946 |
For that one, you'll want to track #1173. It's our (rough, mostly "we should do this") plan to converge the output engines for WT and conhost at some point. For #2946, it's probably sufficient to parse but fail (ignore) |
Very good! That was one solution I had already considered, but I wasn't sure if the maintainers would be happy with it. |
Has there been any progress on this? Does the terminfo exist just not in the upstream of curses? |
@sandorex Nope, when there's progress, we'll make sure to post here 😉. For all intents and purposes, the Windows Terminal should be treated as |
@zadjii-msft to be clear that does not include conhost, just the new terminal? |
Technically, that's specific to conhost. The Terminal is currently powered by conpty, which uses conhost as a middle-man to translate console API calls into a stream of VT that the Terminal can understand. Part of what conpty does is also parse all the VT on behalf of the Terminal. It's not terribly efficient, but it gets the job done. Conpty only ever emits a few types of sequences. It doesn't need the full range of VT to be able to recreate the console buffer. Since conpty is always sitting in the middle, Terminal is actually far below |
Honestly this is confusing me a bit
How should The Terminal be treated, as partial |
Oh no, the Terminal is always attached to conpty, and conpty is just conhost. Conhost is |
I believe ncurses is now out with the In the case of Windows Terminal in particular, there have been several notable compliance bugs (e.g., lack of |
I don't know if I've seen a bug report on our repo for this! Admittedly, it's been a long holiday and I have not paged everything back in.
|
#832, which has been fixed, is the situation in which the I do strongly encourage you to use a terminal definition which is a subset (proper or not) of your terminal capabilities, such as You may not see the number of people this problem affects, but I've answered a decent number of questions on Stack Overflow, Super User, and similar sites about this particular problem, and it does affect a reasonably high number of users. It's also a very hard problem to search for, and it tends to lead to knee-jerk responses like "Use a real Linux VM, not WSL," which are not helpful. In my case, I normally use Linux, so when I do use Windows, having a fully functional, top-notch WSL experience is essential to me getting what I need to done and supporting my users who run Windows. I should point out that you will always have some lag time between when you implement new features and when WSL distros will make them available in their terminfo files. That's because most distros aren't rolling release. So it's completely fine if This isn't to put down all the hard work you've put into this project, just to ask you to please consider the user experience here when you set |
Thanks for writing that up. I totally agree. Once we have a better story here (which will hopefully be before too long), I'll engage the folks on WSL to make sure they set ¹ (We actually don't set |
Thomas Dickey, the maintainer of the ncurses project, also maintains the terminfo-db distributed with most Linux distributions. At the moment, the main TERM environment variable is
xterm-256color
, but not all xterm features are supported or even planned. When 1.0 releases, it would be good to leave xterm-256color as the default TERM environment, but also to maintain a separate terminfo with the ncurses project upstream. This means that as the changes in ncurses propagate down to the distros, the team can make a switchover and report the TERM asms-terminal
.This will give the team the freedom in the long-term to add new features not implemented in xterm (for example, to support 32-bit color (i.e. an alpha channel)) or any other cool features they might dream up. Some projects like
libvte
andkitty
have or previously had a bad relationship with the ncurses maintainer because they refused to submit their own accurate TERMINFO to the database.The text was updated successfully, but these errors were encountered: