xref: /linux/Documentation/admin-guide/vga-softcursor.rst (revision 9d2cccdd6c226181c42a7bb0c5ede1583687b618)
1Software cursor for VGA
2=======================
3
4by Pavel Machek <pavel@atrey.karlin.mff.cuni.cz>
5and Martin Mares <mj@atrey.karlin.mff.cuni.cz>
6
7Linux now has some ability to manipulate cursor appearance. Normally, you
8can set the size of hardware cursor (and also work around some ugly bugs in
9those miserable Trident cards [#f1]_. You can now play a few new tricks:
10you can make your cursor look
11
12like a non-blinking red block, make it inverse background of the character it's
13over or to highlight that character and still choose whether the original
14hardware cursor should remain visible or not.  There may be other things I have
15never thought of.
16
17The cursor appearance is controlled by a ``<ESC>[?1;2;3c`` escape sequence
18where 1, 2 and 3 are parameters described below. If you omit any of them,
19they will default to zeroes.
20
21first Parameter
22	specifies cursor size::
23
24		0=default
25		1=invisible
26		2=underline,
27		...
28		8=full block
29		+ 16 if you want the software cursor to be applied
30		+ 32 if you want to always change the background color
31		+ 64 if you dislike having the background the same as the
32		     foreground.
33
34	Highlights are ignored for the last two flags.
35
36second parameter
37	selects character attribute bits you want to change
38	(by simply XORing them with the value of this parameter). On standard
39	VGA, the high four bits specify background and the low four the
40	foreground. In both groups, low three bits set color (as in normal
41	color codes used by the console) and the most significant one turns
42	on highlight (or sometimes blinking -- it depends on the configuration
43	of your VGA).
44
45third parameter
46	consists of character attribute bits you want to set.
47
48	Bit setting takes place before bit toggling, so you can simply clear a
49	bit by including it in both the set mask and the toggle mask.
50
51.. [#f1] see ``#define TRIDENT_GLITCH`` in ``drivers/video/vgacon.c``.
52
53Examples
54--------
55
56To get normal blinking underline, use::
57
58	echo -e '\033[?2c'
59
60To get blinking block, use::
61
62	echo -e '\033[?6c'
63
64To get red non-blinking block, use::
65
66	echo -e '\033[?17;0;64c'
67