-
Notifications
You must be signed in to change notification settings - Fork 9.2k
Feature Request: Reduce cursor blinking to save battery life #5318
Copy link
Copy link
Open
Labels
Area-PerformancePerformance-related issuePerformance-related issueArea-TerminalControlIssues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.)Issues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.)Issue-TaskIt's a feature request, but it doesn't really need a major design.It's a feature request, but it doesn't really need a major design.Product-TerminalThe new Windows Terminal.The new Windows Terminal.
Milestone
Metadata
Metadata
Assignees
Labels
Area-PerformancePerformance-related issuePerformance-related issueArea-TerminalControlIssues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.)Issues pertaining to the terminal control (input, selection, keybindings, mouse interaction, etc.)Issue-TaskIt's a feature request, but it doesn't really need a major design.It's a feature request, but it doesn't really need a major design.Product-TerminalThe new Windows Terminal.The new Windows Terminal.
Description of the new feature/enhancement
In several more modern UI experiences in Windows, the blinking cursor effect has been changed to reduce battery impact - I'm proposing Terminal should do the same. The cursor stops blinking after a period of inactivity to save on the amount of CPU/GPU cycles spent running the animation, updating the graphics, updating the screen, stuff like that.
To see an example of this in action, use Outlook. Start writing an e-mail, type a little bit, then pause your typing for several seconds. The cursor will go solid and stop blinking.
It sounds crazy that this could have a meaningful battery impact - but it certainly can. I implemented this feature in Silverlight for Windows Phone, and my team did it for XAML in UWP. In both cases the battery impact far exceeded my expectations - and this is no doubt why Outlook did it too.
Proposed technical implementation details (optional)
The way this works in XAML, Outlook, etc. is that a 5 second timer is started after a key is let up. At the end of that 5 seconds the cursor is set to a solid 'on' state. Note that the cursor stays solid while you type too, so it stays in this 'on' state until you pause, then blinks for a few seconds, then goes back to solid.
This may have extra complexity in terminal due to block cursors and stuff like that, but it would be the rough sketch of what to do.