Next: Line Truncation, Previous: Text Display, Up: Display [Contents][Index]

### 14.20 Displaying the Cursor

On a text terminal, the cursor’s appearance is controlled by the terminal, largely out of the control of Emacs. Some terminals offer two different cursors: a visible static cursor, and a very visible blinking cursor. By default, Emacs uses the very visible cursor, and switches to it when you start or resume Emacs. If the variable `visible-cursor` is `nil` when Emacs starts or resumes, it uses the normal cursor.

On a graphical display, many more properties of the text cursor can be altered. To customize its color, change the `:background` attribute of the face named `cursor` (see Face Customization). (The other attributes of this face have no effect; the text shown under the cursor is drawn using the frame’s background color.) To change its shape, customize the buffer-local variable `cursor-type`; possible values are `box` (the default), `hollow` (a hollow box), `bar` (a vertical bar), `(bar . n)` (a vertical bar n pixels wide), `hbar` (a horizontal bar), `(hbar . n)` (a horizontal bar n pixels tall), or `nil` (no cursor at all).

By default, the cursor stops blinking after 10 blinks, if Emacs does not get any input during that time; any input event restarts the count. You can customize the variable `blink-cursor-blinks` to control that: its value says how many times to blink without input before stopping. Setting that variable to a zero or negative value will make the cursor blink forever. To disable cursor blinking altogether, change the variable `blink-cursor-mode` to `nil` (see Easy Customization), or add the line

      (blink-cursor-mode 0)

to your init file. Alternatively, you can change how the cursor looks when it blinks off by customizing the list variable `blink-cursor-alist`. Each element in the list should have the form `(on-type . off-type)`; this means that if the cursor is displayed as on-type when it blinks on (where on-type is one of the cursor types described above), then it is displayed as off-type when it blinks off.

Some characters, such as tab characters, are extra wide. When the cursor is positioned over such a character, it is normally drawn with the default character width. You can make the cursor stretch to cover wide characters, by changing the variable `x-stretch-cursor` to a non-`nil` value.

The cursor normally appears in non-selected windows as a non-blinking hollow box. (For a bar cursor, it instead appears as a thinner bar.) To turn off cursors in non-selected windows, change the variable `cursor-in-non-selected-windows` to `nil`.

To make the cursor even more visible, you can use HL Line mode, a minor mode that highlights the line containing point. Use `M-x hl-line-mode` to enable or disable it in the current buffer. `M-x global-hl-line-mode` enables or disables the same mode globally.

Next: Line Truncation, Previous: Text Display, Up: Display [Contents][Index]