VGA 用ソフトウェアカーソル ========================== 著者:Pavel Machek Martin Mares 日本語訳:野本浩一 現在 Linux にはカーソルの外見を制御する能力があります。普通ハードウェ アカーソルの大きさを設定できます (さらに悲惨な Trident カードにおける 醜いバグの対処も - drivers/video/vgacon.c 内の #define TRIDENT_GLITCH を参照してください)。すぐに二三の新しいいたずらができます - ブリンクし ない赤い四角、その文字の背景を逆にした文字や、オリジナルハードウェアカー ソルを見えるようにするかしないかどちらかを選ぶこともできます。私が考え つかなかった他の外見も可能かもしれません。 カーソルの外見は "[?1;2;3c" のエスケープシーケンスにより制御さ れ、この 1, 2, 3 は以下に記述するパラメータです。それらのいずれかを 省略した場合、自動的に 0 になります。 パラメータ 1 はカーソルの大きさ (0=default, 1=invisible, 2=underline, ..., 8=full block) を指定し、ソフトウェアカーソルとし たければ +16、背景色を変更したければ + 32、前景色と同じ背景色が嫌な らば +64 します。ハイライトは最後の二つのフラグで指定されるので、こ のパラメータでの指定は無視されます。 二番目のパラメータは変更したい文字属性ビットを選択します (このパラ メータの値で単純に XOR します)。標準的な VGA 上で、上位四ビットは背 景を、下位四ビットは前景を指定します。両グループで、下位三ビットは 色を設定 (コンソールが使う一般的なカラーコードです) し、最上位の一 ビットはハイライト (もしくはしばしば明滅 - VGA の設定に依存します) を切り替えます。 三番目のパラメータは設定したい文字属性のビットから成ります。ビット 設定は前の状態から切り替わるので、設定マスクと切り替えマスクの両方 を指定することで簡単にビットをクリアすることができます。 例: 通常の明滅するアンダーライン:echo -e '\033[?2c' 明滅するブロック: echo -e '\033[?6c' 赤い明滅しないブロック: echo -e '\033[?17;0;64c'