-
Notifications
You must be signed in to change notification settings - Fork 720
Fixes #4191 Make v2 true color on by default (i.e. opt out) #4195
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
base: v2_develop
Are you sure you want to change the base?
Conversation
…lt unless user explicitly forces 16
That's right, I fixed this in #4193 but that makes worse for cmd.exe |
In cmd.exe or conhost.exe, when virtual terminal is disabled you need avoid sending escape sequence at all. |
There is no cross terminal solution for wide characters using the kernel32 api I created this repro: The test cases are as follows
Here is a comparison of various terminals. Notice that there is no column that works for all 3.
|
|
Based on the above I have started a rewrite of 16 color mode in WindowsOutput (v2). Here is WIP: I think I can declutter some of this class while I am at it. |
A thot I had long ago was we'd eventually have 3 drivers:
What are your thoughts on moving in this direction? |
What's the difference between ansi and net?
Both use pure escape sequences I think
…On Mon, 21 Jul 2025, 13:42 Tig, ***@***.***> wrote:
*tig* left a comment (gui-cs/Terminal.Gui#4195)
<#4195 (comment)>
A thot I had long ago was we'd eventually have 3 drivers:
- ansi
- net
- win (legacy)
What are your thoughts on moving in this direction?
—
Reply to this email directly, view it on GitHub
<#4195 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHO3C5CBYNA2GKDQ733PAR33JTN4NAVCNFSM6AAAAACBWOWA7WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTAOJWGYYDEMZYHA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
Good question. I haven't looked at your code closely in a while. If it is in fact how we do "pure ansi that works xplat" then it fits. Pure ansi, to me, means the ONLY ansi sequences emitted are sequences WE emit btw. If v2net fits this, then
Right? |
Yes v2net works almost exclusively with standard csharp dotnet methods and escape sequences. There is some dll import stuff in
Input is read as Input sequences are detected and processed by It is called 'net' because it uses only core dotnet methods. Output primarily uses escape sequences for color, style etc. It does mix in some dotnet calls e.g. I agree v2net should be default - It does seem there is anecdotal evidence of people having issues with it on windows. This is probably because of the wide range of versions of terminals out there fore windows, some with known bugs. v2win has 2 modes
|
@tznind super important that we view all this through 3 lenses:
The discussion above is mostly about 1. The dotnet console API is VERY broken relative to 3 on Windows (but, oddly, not Linux). See dotnet/runtime#96490 Until that issue is fixed, I'm afraid |
Fixes
Proposed Changes/Todos
We now assume SupportsTrueColor is
true
unless user explicitly setsfalse
themselves.Pull Request checklist:
CTRL-K-D
to automatically reformat your files before committing.dotnet test
before commit///
style comments)