1

In several programs I've used, the cursor stops blinking after the user has not interacted with the program for several seconds. gnome-terminal and gedit both do this, and I can't find any reasoning about why this happens.

I would assume that the cursor blinking is useful, as it draws the eye to where text will be inserted, so I don't understand why it would be good design for the cursor to ever stop blinking. Assuming the user has looked away from the screen for a moment, surely the cursor stopping blinking would just make it harder for the user to find the cursor again?

  • 1
    bash has no concept of a (graphical) cursor, as in the turning on and off of pixels on the screen to indicate the current input position. Your terminal emulator, however, very well might. bash deals with input and cursor movement, and the location of the cursor, but has nothing whatsoever to do with the drawing of said cursor. – a CVn Sep 23 '16 at 19:50
  • @MichaelKjörling - good point, I've edited the question. I'm sure I'll remember the difference some day... – Josh Sep 23 '16 at 22:08
1

What the other answer neglected to mention was that this behaviour is changeable using GSettings/DConf Editor: just bump the value of this key - /org/gnome/desktop/interface/cursor-blink-timeout- and lo and behold, your cursor can now continue to blink for longer if you want it to.

So, to literally answer the question: The reason the cursor stops blinking after 10 seconds in GNOME applications like those cited is because there is a GNOME-wide setting for the timeout after which blinking cursors should stop blinking, and that setting defaults to a timeout of 10 seconds. (What happens when using such apps outside of GNOME is unclear, whether it's 10 s or never.)

The cited reason for that was hilarious to me at first, as I thought about it in terms of literally taking energy to blink the cursor, but of course this is more about process wakeups and such, so I guess it stands to reason after all.

1

There was some fuzz about this some years ago, I remember the official answer for this on GNOME was to save energy. So I searched for this and found the original post in the forum

Upstream set bug as invalid. Comment from developer: That's normal. The cursor stops to blink after a timeout, in order to save energy.

However, there are ways to solve this if needed, basically you need to do a few config changes in order to stop using the default hardware cursor , replacing it with a software cursor (out of the scope of this forum, but a quick Google search will tell you how)

  • I wonder how much energy a static cursor actually saves over a blinking one. An article on LWN.net suggests around 2 W (source), but I couldn't find anywhere else that mentioned specific values. NB: don't bother reading the comments on that article, they quickly descend into vitriol. – Josh Sep 23 '16 at 22:22
  • I assume that it must be anecdotic at best, but well, that's the answer the developer gave – Devin Sep 23 '16 at 23:03
1

I don't have enough reputation to comment on underscore_d's answer so I'll leave this here:

For anyone using Xubuntu (and possibly xfce in other contexts) this behavior is controlled by xfconf rather than dconf, specifically by the key /Gtk/CursorBlinkTimeout in the xsettings channel. For (slightly) more information, see this answer. (Current as of Xubuntu 18.04)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.