[megathread] Cursor shapes in WT UI / conhost UI / VT #20276

Open
opened 2026-01-31 07:08:47 +00:00 by claunia · 3 comments
Owner

Originally created by @alabuzhev on GitHub (Jul 22, 2023).

Description of the new feature/enhancement

There are so many of them, and all the sets are slightly different:

WT:
image

Conhost:
image

VT:
image


There are quite a few inconsistencies:

  1. Terminology:
    • vintage / legacy
    • underscore / underline
    • bar / vertical bar
    • solid box / filled box / block
  2. UI order.
  3. Feature set: conhost does not have "double underscore"
  4. VT access: "vintage", "double underscore" and "empty box" are not exposed and cannot be set programmatically.
  5. UI access: non-blinking versions are not exposed.
  6. API behavior:
    • SetConsoleCursorInfo resets cursor to "legacy" in conhost if the size is different from the initial one, but not in WT (I understand why, but still).

I'm not saying that all those are bugs that should be fixed, but perhaps the situation could be improved.


maintainer tracking space

### Tasks
- [ ] #7827
- [ ] #7382 
- [ ] #1379 
Originally created by @alabuzhev on GitHub (Jul 22, 2023). # Description of the new feature/enhancement There are so many of them, and all the sets are slightly different: WT: ![image](https://github.com/microsoft/terminal/assets/11453922/99e55654-de4f-4fbf-a225-f033a4c6d034) Conhost: ![image](https://github.com/microsoft/terminal/assets/11453922/eea4731e-8b9e-4e9d-88ac-773e1c383dce) [VT](https://learn.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#cursor-shape): ![image](https://github.com/microsoft/terminal/assets/11453922/978fb0e3-e55b-4ab8-9878-85365a88701d) --------- There are quite a few inconsistencies: 1. Terminology: - vintage / legacy - underscore / underline - bar / vertical bar - solid box / filled box / block 2. UI order. 3. Feature set: conhost does not have "double underscore" 4. VT access: "vintage", "double underscore" and "empty box" are not exposed and cannot be set programmatically. 5. UI access: non-blinking versions are not exposed. 6. API behavior: - [SetConsoleCursorInfo](https://learn.microsoft.com/en-us/windows/console/setconsolecursorinfo) resets cursor to "legacy" in conhost if the size is different from the initial one, but not in WT (I understand why, but still). I'm not saying that all those are bugs that should be fixed, but perhaps the situation could be improved. ---- _maintainer tracking space_ ```[tasklist] ### Tasks - [ ] #7827 - [ ] #7382 - [ ] #1379 ```
claunia added the Needs-Tag-FixProduct-MetaIssue-Scenario labels 2026-01-31 07:08:48 +00:00
Author
Owner

@j4james commented on GitHub (Jul 22, 2023):

The "double underscore" cursor was a user contributed feature (PR #7827), and I don't think something like that is generally expected to be ported to conhost as well. Although it doesn't seem like it would require much more work - the GDI support was already done as far as I can see.

Extending the DECSCUSR sequence to support non-standard cursor styles is tracked in #7382.

Adding a UI setting to control the cursor blinking in WT is tracked in #1379.

Getting SetConsoleCursorInfo to work on WT the same as it does in conhost is also essentially covered by #7382 I think.

@j4james commented on GitHub (Jul 22, 2023): The "double underscore" cursor was a user contributed feature (PR #7827), and I don't think something like that is generally expected to be ported to conhost as well. Although it doesn't seem like it would require much more work - the GDI support was already done as far as I can see. Extending the `DECSCUSR` sequence to support non-standard cursor styles is tracked in #7382. Adding a UI setting to control the cursor blinking in WT is tracked in #1379. Getting `SetConsoleCursorInfo` to work on WT the same as it does in conhost is also essentially covered by #7382 I think.
Author
Owner

@zadjii-msft commented on GitHub (Jul 24, 2023):

That does seem like a pretty comprehensive answer. Anything missed/?

@zadjii-msft commented on GitHub (Jul 24, 2023): That does seem like a pretty comprehensive answer. Anything missed/?
Author
Owner

@zadjii-msft commented on GitHub (Jul 24, 2023):

(we're gonna leave this open because it's a pretty good megathread for tracking purposes. Thanks!)

@zadjii-msft commented on GitHub (Jul 24, 2023): (we're gonna leave this open because it's a pretty good megathread for tracking purposes. Thanks!)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#20276