]> git.karo-electronics.de Git - karo-tx-linux.git/blob - Documentation/VGA-softcursor.txt
9eac6744b3a19d19c65b9530744d65a1a44642ce
[karo-tx-linux.git] / Documentation / VGA-softcursor.txt
1 Software cursor for VGA
2 =======================
3
4 by Pavel Machek <pavel@atrey.karlin.mff.cuni.cz>
5 and Martin Mares <mj@atrey.karlin.mff.cuni.cz>
6
7 Linux now has some ability to manipulate cursor appearance. Normally, you
8 can set the size of hardware cursor (and also work around some ugly bugs in
9 those miserable Trident cards [#f1]_. You can now play a few new tricks:
10 you can make your cursor look
11
12 like a non-blinking red block, make it inverse background of the character it's
13 over or to highlight that character and still choose whether the original
14 hardware cursor should remain visible or not.  There may be other things I have
15 never thought of.
16
17 The cursor appearance is controlled by a ``<ESC>[?1;2;3c`` escape sequence
18 where 1, 2 and 3 are parameters described below. If you omit any of them,
19 they will default to zeroes.
20
21 first 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
36 second 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
45 third 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
53 Examples:
54 =========
55
56 To get normal blinking underline, use::
57
58         echo -e '\033[?2c'
59
60 To get blinking block, use::
61
62         echo -e '\033[?6c'
63
64 To get red non-blinking block, use::
65
66         echo -e '\033[?17;0;64c'