Blinking Cursor Turns 54
hackaday.com
hackaday.com
A few years later, I checked that with powertop when I was using my thinkpad in uni and it was true and measurable!
I'm not sure if it's still the case, but it's funny how UI features can tax the power budget in unsuspected ways.
Sublime Text 4 Update FAQ, May 2021
https://forum.sublimetext.com/t/sublime-text-4-update-faq/58...
This is actually more noticeable for efficient apps than inefficient/bloated apps as the latter don't get as many chances to enter deep idle states in the first place.
There's a considerable difference in doing that once a second and dozens (hundreds? thousands? depending on how it was implemented) times a second, which I would assume what the previous default ("smooth") setting meant.
There are ways around it, but it requires direct interaction with the compositor, which while supported by the APIs, it's more complicated.
So evolution. Does this mean that a laptop with lower screen resolution has better battety life ? It explaines why Win 10 is so crappy with screen and cursor updates.
It's true whether it's a terminal emulator, a browser or an office suite.
GPU power saving loves static content (OLED screens don't, but that's another story)
If using the API's correctly, the compositor can be limited to only updating a small part of the screen. If really only switching the cursor between on and off, that'll happen roughly once per second. And lastly, the whole thing can be skipped completely if the cursor happens to be invisible, for example if the editor is minimized or (partially or fully) obscured by other windows.
https://www.extremetech.com/computing/294907-why-moving-the-...
Still the case with macOS in Finder. Even on Big Sur running on an M1. I dealt with this over the weekend.
It's interesting how very subtle design decisions like these matter so much.
(Background: emacs is a single-threaded lisp program, and "blink the cursor" is just another lisp function [1] running on an event timer. (At least that's the case in GTK emacs). So if any lisp function hard-crashes, the cursor will immediately crash too).
[0] https://en.wikipedia.org/wiki/Spinning_pinwheel
[1] https://github.com/emacs-mirror/emacs/blob/emacs-28/lisp/fra...
Also prefer block cursor to underline cursor for the same reason.
blink-cursor-delay (defaults to 0.5 seconds): Keeps the cursor visible and not blinking when you're rapidly navigating around or typing. Most other apps seem to do this sort of thing too, but it's an easy detail to overlook.
blink-cursor-blinks (defaults to 10): Blinks the cursor a certain number of times and then stops blinking.
One way I do customize it is to set blink-cursor-alist to '((t . hollow)). When the cursor blinks it alternates between a full block and the outline of a block so that it never disappears completely.
Edit: M-x blink-cursor-mode FTW - thanks!
I do believe it is the default. Hard to know what's default when you've been carrying over your .emacs for two decades.
Every single fresh install on random throwaway installs I've done has defaulted to a single non-blinking block cursor though.
Ah, that probably explains my confusion. Sorry about spreading it.
More importantly, however, and also as I wrote there, the blinking cursor has existed since at least 1965, and has not just turned 54 this year.
The MAME emulation of the Tandy 2000 is reasonably complete. I get the feeling that it was barely worked on until Windows 1.0 for the 2000 turned up, then there was a flurry of activity to get that working. The reason is because while the system is mostly emulated, one critical component is not: the display board's support for a hardware blinking cursor. As a result, if you're navigating a word processing document in, say, WordStar, you're largely doing so blind. Only programs with a soft cursor (like GW-BASIC in graphic mode) work like they should.
It's like it's jumping up and down yelling "look at me, look at me!", tirelessly. Who can think with that going on? I guess this is not a neurotypical reaction.
Though with a quick Kernel patch you can slow it down. I just know that if the cursor blinks faster than what we are used to, I find it causes anxiety and is greatly distracting.