Xcursorを使用してカスタムマウスカーソルをオーバーライドする方法は?

Xcursorを使用してカスタムマウスカーソルをオーバーライドする方法は?

Microsoft Windowsサーバーに接続すると、rdesktopマウスカーソルはWindows True Colorカーソルの白黒バージョンに設定されます。これは輪郭のない白い矢印で表示されるため、白い面では見にくいです。

Windowsシステムでカーソルを変更したくありませんが、Xcursorのしくみについての理解は次のとおりです。

カーソルが設定されると、カーソルイメージのハッシュを使用してファイル名で照会されるため、一致するものが見つかると、元の白黒カーソルの代わりに対応するXcursorが使用されます。

私の考えは、このファイルを提供し、その中により鮮明なカーソル画像(たとえば、基本的な矢印)を置くことができる場合、ほとんどの場合、基本的な矢印を使用して問題を解決することです。リモートシステムで必要に応じて、カーソルを他の項目(サイズ変更矢印など)に変更することもrdesktopできます。

  • rdesktop私が得たカーソル画像に使用されたハッシュをどのように見つけることができますか?
  • そのハッシュを使用しているテーマの通常の矢印カーソルにどのようにマップしますか?

ベストアンサー1

私はこれを行う方法を見つけました。まず、XCURSOR_DISCOVERマウスカーソルを設定するプログラムを実行する前に環境変数を設定する必要があります。私の場合は次のようになりますrdesktop

$ XCURSOR_DISCOVER=1 rdesktop ...

これにより、各カーソルのビットマップとハッシュが印刷されます。一度だけ初めて設定するとき。オーバーライドしたいイメージであるデフォルトのWindowsカーソルを設定したときの出力は次のとおりです。

Cursor image name: 24020000002800000528000084810000
...
Cursor image name: 7bf1cc07d310bf080118007e08fc30ff
...
Cursor hash 24020000002800000528000084810000 returns 0x0

Xcursorが見つからないカーソルを見つけると、~/.icons/default/cursors見つからないカーソルのイメージをそこに配置できるようにする検索パスが含まれています。

$ mkdir -p ~/.icons/default/cursors

これで、ハッシュを既存のイメージに割り当てるだけです。このイメージは、アプリケーションがハッシュ値を設定しようとしたときに使用されます。この場合、テーマのイメージをleft_ptr使用しようとしますVanilla-DMZ(デフォルトの矢印です)。

$ ln -s /usr/share/icons/Vanilla-DMZ/cursors/left_ptr ~/.icons/default/cursors/24020000002800000528000084810000

それだけです!変更はすぐに表示されるはずです。

おすすめ記事