blob: f52175457e60ed5313dd61de46504a50472a4903 [file] [log] [blame]
Mauro Carvalho Chehab27641b92016-09-23 16:26:03 -03001Software cursor for VGA
2=======================
Linus Torvalds1da177e2005-04-16 15:20:36 -07003
Mauro Carvalho Chehab27641b92016-09-23 16:26:03 -03004by Pavel Machek <pavel@atrey.karlin.mff.cuni.cz>
5and Martin Mares <mj@atrey.karlin.mff.cuni.cz>
6
Linus Torvalds5266e702016-12-13 11:18:24 -08007Linux now has some ability to manipulate cursor appearance. Normally,
8you can set the size of hardware cursor. You can now play a few new
9tricks: you can make your cursor look like a non-blinking red block,
10make it inverse background of the character it's over or to highlight
11that character and still choose whether the original hardware cursor
12should remain visible or not. There may be other things I have never
13thought of.
Linus Torvalds1da177e2005-04-16 15:20:36 -070014
Mauro Carvalho Chehab27641b92016-09-23 16:26:03 -030015The cursor appearance is controlled by a ``<ESC>[?1;2;3c`` escape sequence
Linus Torvalds1da177e2005-04-16 15:20:36 -070016where 1, 2 and 3 are parameters described below. If you omit any of them,
17they will default to zeroes.
18
Mauro Carvalho Chehab27641b92016-09-23 16:26:03 -030019first Parameter
20 specifies cursor size::
Linus Torvalds1da177e2005-04-16 15:20:36 -070021
Mauro Carvalho Chehab27641b92016-09-23 16:26:03 -030022 0=default
23 1=invisible
24 2=underline,
25 ...
26 8=full block
27 + 16 if you want the software cursor to be applied
28 + 32 if you want to always change the background color
29 + 64 if you dislike having the background the same as the
30 foreground.
Linus Torvalds1da177e2005-04-16 15:20:36 -070031
Mauro Carvalho Chehab27641b92016-09-23 16:26:03 -030032 Highlights are ignored for the last two flags.
33
34second parameter
35 selects character attribute bits you want to change
36 (by simply XORing them with the value of this parameter). On standard
37 VGA, the high four bits specify background and the low four the
38 foreground. In both groups, low three bits set color (as in normal
39 color codes used by the console) and the most significant one turns
40 on highlight (or sometimes blinking -- it depends on the configuration
41 of your VGA).
42
43third parameter
44 consists of character attribute bits you want to set.
45
46 Bit setting takes place before bit toggling, so you can simply clear a
47 bit by including it in both the set mask and the toggle mask.
48
Jonathan Corbet7358bb22016-10-26 16:14:52 -060049Examples
50--------
Linus Torvalds1da177e2005-04-16 15:20:36 -070051
Mauro Carvalho Chehab27641b92016-09-23 16:26:03 -030052To get normal blinking underline, use::
53
54 echo -e '\033[?2c'
55
56To get blinking block, use::
57
58 echo -e '\033[?6c'
59
60To get red non-blinking block, use::
61
62 echo -e '\033[?17;0;64c'