| Software cursor for VGA | 
 | ======================= | 
 |  | 
 | by Pavel Machek <pavel@atrey.karlin.mff.cuni.cz> | 
 | and Martin Mares <mj@atrey.karlin.mff.cuni.cz> | 
 |  | 
 | 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' |