microsoft / microsoft/terminal

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

Open
#15,746 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Issue-Scenario Needs-Tag-Fix Product-Meta
Dominant language
C++
Stars
105k
Forks
9.6k
Avg merge
3d 17h
Merged PRs (30d)
29

Description

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 

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are named. Start by reviewing the cursor-shape inconsistencies in this issue and the linked tracking tasks #7827, #7382, and #1379, then determine which specific behavior is in scope. Done should mean an explicitly defined, consistent cursor-shape experience across WT, conhost, VT, UI, and API surfaces.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.