Skip to content
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

👁🍬 Smooth cursor animation/transition when moving #9221

Open
ApplicationDeveloper opened this issue Feb 19, 2021 · 4 comments
Open

👁🍬 Smooth cursor animation/transition when moving #9221

ApplicationDeveloper opened this issue Feb 19, 2021 · 4 comments
Labels
Area-Extensibility A feature that would ideally be fulfilled by us having an extension model. Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Terminal The new Windows Terminal.
Milestone

Comments

@ApplicationDeveloper
Copy link

Description of the new feature/enhancement

Cursor should transition pixel-wise within a specified amount of milliseconds from one point to the other, whether
by typing or clicking to a new position/cell on the viewport.

Proposed technical implementation details (optional)

Preferably user customizable in terminal profile settings.
{ ..., smoothCursorTransitionDuration: 90 } or smoothCursorTransition: true or false perhaps.

Examples

word
cursoran
cur

@ApplicationDeveloper ApplicationDeveloper added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Feb 19, 2021
@ghost ghost added Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Needs-Tag-Fix Doesn't match tag requirements labels Feb 19, 2021
@zadjii-msft
Copy link
Member

Alright so this does look fairly slick. I have no idea how it would work with our current renderer engine. Currently, the cursor is only ever at one specific cell or another. Additionally, the renderer doesn't actually paint at 60fps, it paints when something has actually changed, at a maximum of 60 fps. So we'd need some way of virtually painting the cursor some fraction of the way between the old position and the new one, and then also immediately requesting new frames while the cursor is animating between positions.

Maybe this is something that could be done in an extension? But even then the extension would need to control where the cursor is drawn on a per-pixel basis, not just per-cell. And it would need to hop into the right place in the paint frame, to make sure it's still layered correctly. So maybe this would be really hard to do as an extension.

I'll tag it up regardless. It's a cool idea.

@zadjii-msft zadjii-msft added Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Product-Terminal The new Windows Terminal. labels Feb 19, 2021
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Feb 19, 2021
@zadjii-msft zadjii-msft added the Area-Extensibility A feature that would ideally be fulfilled by us having an extension model. label Feb 19, 2021
@DHowett DHowett removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Feb 23, 2021
@PaulAndreiTaranu
Copy link

I love the smooth cursor caret in VSCode please put it on the terminal !!!

@lhecker lhecker self-assigned this Jan 18, 2022
@lhecker lhecker removed their assignment May 16, 2024
@azabroflovski
Copy link

any updates?

@unrealapex
Copy link
Contributor

@azabroflovski : Please read this: Any updates?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Extensibility A feature that would ideally be fulfilled by us having an extension model. Area-Rendering Text rendering, emoji, complex glyph & font-fallback issues Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. Product-Terminal The new Windows Terminal.
Projects
None yet
Development

No branches or pull requests

7 participants