Why cursors blink

October 22, 2006

Cursors on 'dumb' serial terminals blink because their location usually is the most important spot on the screen; it was where your typing would go. Blinking made sure that you weren't going to lose track of it.

Cursors in terminal emulators blink because people haven't bothered to rethink this in the face of multiple windows. (I'm not sure that they've thought about it deeper than 'dumb terminal cursors blink, let's imitate them'.)

That's a strong statement. Let me try to justify it.

In GUI text controls, the active insertion point blinks (slowly) to keep it from being mistaken for a pipe character (according to the Apple Human Interface Guidelines) and to attract your attention to where your typing will go. However, the standard insertion point is a relatively hard to see vertical bar, usually floating in a sea of controls.

By contrast, terminal emulator cursors are usually square boxes, in a much more obvious setting (and their blinking is much, much more visible and thus much more irritating). Such a cursor is not going to be confused for any character normally found in nature (and if you are going to worry about reverse video spaces, you might as well worry about blinking reverse video spaces too).

A large blinking thing is a strong attention attractor, because people are reflexively attracted to apparent motion and change. However, in a multi-window environment you can't assume that you're the most important thing and that the user's attention should be dragged to you all the time, even if you currently have the mouse focus.

(As you can tell, this is one of my pet peeves.)

Comments on this page:

From at 2006-10-23 02:38:56:

It's time for you to kick your xterm habit and switch to gnome-terminal.

-- P

By cks at 2006-10-23 08:16:50:

I keep being unconvinced of the benefits of switching. As far as I can tell, the only feature gnome-terminal really has over xterm is 'open link' if you select a URL, and I long ago built a more general version for my environment. And gnome-terminal lacks some features in comparison to xterm, such as the vital ziconbeep stuff, and it has less sophisticated and useful word selection.

Modern xterms will use Xft fonts if I want to switch to them, so I don't think that's a net win or loss.

By cks at 2006-10-23 08:19:12:

(While gnome-terminal blinks the cursor by default, you can turn that off. Turning off cursor blink and the menubar are the first customizations I make in a new Gnome environment.)

From at 2006-10-23 10:08:56:

In which terminal emulator do you get the blinking cursor?

My desktop is KDE on Solaris 10 (Sparc), I use both KDE's Konsole terminal emulator and regular xterms. None of them have a blinking cursor. If I login to a remote host (even Redhat systems) and run xterm I don't get a blinking cursor either. What I get is a solid cursor if the window has focus or a hollow cursor as soon as it loses focus.

Now if I run gnome-terminal from my KDE desktop, I get a blinking cursor but only if it has focus, hollow non-blinking when it loses focus.


By cks at 2006-10-23 10:12:58:

gnome-terminal defaults to a blinking solid cursor (if it has focus; I don't think anyone is stupid enough to have their terminal emulator blink the cursor if it doesn't have focus).

(xterm has an option for a blinking cursor, which defaults to off and I leave it that way.)

By Greg A. Woods at 2019-08-24 00:18:35:

Hmmm... I don't recall ever having read this post....

But having been directed to it by a much more recent post...

It boggles my mind that anyone using terminal windows wouldn't want the cursor in the active (e.g. has keyboard focus) window to blink. Indeed I can't quite imagine anyone not wanting to have their attention drawn to the active terminal window by something like a blinking cursor, especially in a forest of such windows. I also can't imagine anything better than the traditional full-character block blinking box cursor for a terminal window -- the tiny blinking bar in this browser edit box is barely visible.

Maybe it's just that I've spent many a time staring at the blinking cursor while thinking a problem though and it's become a familiar friend.

I did though just read your more recent post about having the keyboard focus stay in the last window where it resided even if the mouse moves to the root window. Perhaps this is your problem -- you don't have an easy way to make the keyboard focus disappear from all terminal windows.

Then again, I was also the guy who put a BEL character in my prompt on an ancient over-loaded student system in university so that I could tell when a command had finished and it was time to revert my attention to the task at hand. I had the misfortune of having a bad habit of leaning on the return key when I was frustrated by some problem, and one of my profs wandered through at just such an inopportune time and scolded me for the annoying noise -- from then on he was known to the whole class as Professor Control-G.

Written on 22 October 2006.
« Weekly spam summary on October 21st, 2006
A dump performance hint: the block size really matters »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Oct 22 23:03:01 2006
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.