]>
Commit | Line | Data |
---|---|---|
27641b95 MCC |
1 | Software cursor for VGA |
2 | ======================= | |
1da177e4 | 3 | |
27641b95 MCC |
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 | |
1da177e4 | 8 | can set the size of hardware cursor (and also work around some ugly bugs in |
27641b95 MCC |
9 | those miserable Trident cards [#f1]_. You can now play a few new tricks: |
10 | you can make your cursor look | |
11 | ||
1da177e4 LT |
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 | ||
27641b95 | 17 | The cursor appearance is controlled by a ``<ESC>[?1;2;3c`` escape sequence |
1da177e4 LT |
18 | where 1, 2 and 3 are parameters described below. If you omit any of them, |
19 | they will default to zeroes. | |
20 | ||
27641b95 MCC |
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. | |
1da177e4 | 47 | |
27641b95 MCC |
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. | |
1da177e4 | 50 | |
27641b95 | 51 | .. [#f1] see ``#define TRIDENT_GLITCH`` in ``drivers/video/vgacon.c``. |
1da177e4 LT |
52 | |
53 | Examples: | |
54 | ========= | |
55 | ||
27641b95 MCC |
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' |