mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.9 KiB
62 lines
1.9 KiB
Software cursor for VGA |
|
======================= |
|
|
|
by Pavel Machek <[email protected]> |
|
and Martin Mares <[email protected]> |
|
|
|
Linux now has some ability to manipulate cursor appearance. Normally, |
|
you can set the size of hardware cursor. You can now play a few new |
|
tricks: you can make your cursor look like a non-blinking red block, |
|
make it inverse background of the character it's over or to highlight |
|
that character and still choose whether the original hardware cursor |
|
should remain visible or not. There may be other things I have never |
|
thought of. |
|
|
|
The cursor appearance is controlled by a ``<ESC>[?1;2;3c`` escape sequence |
|
where 1, 2 and 3 are parameters described below. If you omit any of them, |
|
they will default to zeroes. |
|
|
|
first Parameter |
|
specifies cursor size:: |
|
|
|
0=default |
|
1=invisible |
|
2=underline, |
|
... |
|
8=full block |
|
+ 16 if you want the software cursor to be applied |
|
+ 32 if you want to always change the background color |
|
+ 64 if you dislike having the background the same as the |
|
foreground. |
|
|
|
Highlights are ignored for the last two flags. |
|
|
|
second parameter |
|
selects character attribute bits you want to change |
|
(by simply XORing them with the value of this parameter). On standard |
|
VGA, the high four bits specify background and the low four the |
|
foreground. In both groups, low three bits set color (as in normal |
|
color codes used by the console) and the most significant one turns |
|
on highlight (or sometimes blinking -- it depends on the configuration |
|
of your VGA). |
|
|
|
third parameter |
|
consists of character attribute bits you want to set. |
|
|
|
Bit setting takes place before bit toggling, so you can simply clear a |
|
bit by including it in both the set mask and the toggle mask. |
|
|
|
Examples |
|
-------- |
|
|
|
To get normal blinking underline, use:: |
|
|
|
echo -e '\033[?2c' |
|
|
|
To get blinking block, use:: |
|
|
|
echo -e '\033[?6c' |
|
|
|
To get red non-blinking block, use:: |
|
|
|
echo -e '\033[?17;0;64c'
|
|
|