Linux上でのMozilla Firefoxのマウスカーソルの挙動について
CSS3のcursorについて*1、Linuxでの挙動がどうにも謎だったので調べていたところ、答えに近いものが見つかったのでメモ。
X Window Systemのマウスカーソルについて(その1) - きれいさっぱり、逝くぜ!、(その2)
LinuxというかGNOMEなんかの統合デスクトップ環境でFirefoxを動かしたとき、白黒のマウスカーソルとグラフィカルなマウスカーソルがごちゃ混ぜになっているのが気になった(といってもスクリーンショットを撮ることができないので文章で説明するしかないのが非常にもどかしい訳ですが)、というのが事の発端。
まず、マウスカーソルのファイルはどこにあるのかというと、/usr/share/icons/$theme/cursors以下に存在する。ここに対応すると思われるマウスカーソルが用意されていても、なぜかFirefoxに現れないことがある。これはリンク先によると、Linux版Firefoxはカーソルファイルを直接見ているのではなく、ハッシュに変換したファイル名を読み込んでいるとのこと。これはどうも歴史的な事情らしい。
つまり、対応するグラフィカルなマウスカーソルがある場合、シンボリックリンクを張って白黒のマウスカーソルを置換することができる。
n -sf file_name hash #一般的にはきっとこんな感じ
例えば、no-dropというカーソルがあって、CSS3のno-dropとしてFirefoxにレンダリングさせる場合、対応するハッシュ03b6e0fcb3499374a867d041f52298f0を作ればいい。
ln -sf no-drop 03b6e0fcb3499374a867d041f52298f0
しかし、手元で試したDebianでは*2微妙にマウスカーソルが用意されていなかったりするので結構悲しい。Kubuntuはまだマシだったものの、context-menuに対応するカーソルがなかったりするので、結局Firefoxに用意されている白黒カーソルが現れるという悲惨な現象が。