Path: blob/master/Documentation/VGA-softcursor.txt
10820 views
Software cursor for VGA by Pavel Machek <[email protected]>1======================= and Martin Mares <[email protected]>23Linux now has some ability to manipulate cursor appearance. Normally, you4can set the size of hardware cursor (and also work around some ugly bugs in5those miserable Trident cards--see #define TRIDENT_GLITCH in drivers/video/6vgacon.c). You can now play a few new tricks: you can make your cursor look7like a non-blinking red block, make it inverse background of the character it's8over or to highlight that character and still choose whether the original9hardware cursor should remain visible or not. There may be other things I have10never thought of.1112The cursor appearance is controlled by a "<ESC>[?1;2;3c" escape sequence13where 1, 2 and 3 are parameters described below. If you omit any of them,14they will default to zeroes.1516Parameter 1 specifies cursor size (0=default, 1=invisible, 2=underline, ...,178=full block) + 16 if you want the software cursor to be applied + 32 if you18want to always change the background color + 64 if you dislike having the19background the same as the foreground. Highlights are ignored for the last two20flags.2122The second parameter selects character attribute bits you want to change23(by simply XORing them with the value of this parameter). On standard VGA,24the high four bits specify background and the low four the foreground. In both25groups, low three bits set color (as in normal color codes used by the console)26and the most significant one turns on highlight (or sometimes blinking--it27depends on the configuration of your VGA).2829The third parameter consists of character attribute bits you want to set.30Bit setting takes place before bit toggling, so you can simply clear a bit by31including it in both the set mask and the toggle mask.3233Examples:34=========3536To get normal blinking underline, use: echo -e '\033[?2c'37To get blinking block, use: echo -e '\033[?6c'38To get red non-blinking block, use: echo -e '\033[?17;0;64c'394041