X11-big-cursor MINIHOWTO X WINDOW SYSTEM でマウスカーソルを大きくして使う方法 V2, 1997 年 8 月 11 日 1997 年 11 月 19 日 このドキュメントは X window system 上のマウスカーソルを拡大して 使う方法を記述しています。 導入 普通の X マウスカーソルが追いづらい人々にはそれなりの理由があります: 解像度の低い LCD のノート型パソコンで X を使う方 普通のモニタで、例えば 1600x1280 のような高解像度を使う方 普通のハードウェアですら視覚的に問題のある方 どの場合に対してもマウスカーソルを拡大して使えると助かるでしょう。 理想としては、この作業はどのマウスカーソルも自動的に拡大する、一つの X のプログラムによってなされるべきでしょう。 私の知識においては、そのようなユーティリティは単純には書けません。 というのも、X のプロトコルにはマウスカーソルを追跡するような機能が 備わっていないからです。以下の において 詳細を述べるとします。 しかしながら、もし、多少一般的でないゴール設定をするならば、 以下の方法が考えられます: カーソルフォントのなかに、普通のマウスカーソルのセットがあります (xfd -fn cursor とすることで、見ることが出来ます)。 ほとんどのプログラムはこれらを使いますので、拡大化したものを これらと置き換える、というのが基本的な考え方です。 この文章について この MINIHOWTO は 私の、視覚的に問題のある同級生の一人に、 X 上のマウスカーソルの拡大化を尋ねられたことから書き始めたものです。 まず方法を見つけて、初版を仕上げました。ここに記述されている方法論は 良く知られてはいないようですので、 に見ることが出来ます。 この文章の は SGML/linuxdoc 形式で管理されています。このお蔭で、自動的に、html、text、 LaTeX、DVI、PostScript、GNU info の各形式に容易に変換されて提供されています (master とおなじディレクトリに置かれています)。 この文章の日本語訳は が行ない、 に置かれています。 方法 以下に詳細を示します。もし bdfresize パッケージをコンパイルするのを 避けたければ、Step 3 を飛ばし、拡大化したフォントを、作る代わりに the Net から入手することも出来ます。 カーソルフォントのソース、cursor.bdf を例えば のような X の配布先より入手する。(もしそこになければ archie で探すか、 から入手可能です。) bdfresize パッケージを、例えば、(や ) から入手しインストールする。 zcat bdfresize-1.4.tar.Z | tar xf - cd bdfresize-1.4 xmkmf make Linux 上ならば、 make CCOPTIONS='-include /usr/include/bsd/bsd.h' clean all とする必要があるかもしれません。 拡大化したカーソルフォント用のディレクトリをつくり、インストールする。 (以下の例では拡大化ファクタを2として行ないます) mkdir $HOME/fonts bdfresize -f 2 cursor.bdf | bdftopcf >$HOME/fonts/cursor2.pcf mkfontdir $HOME/fonts 拡大化ファクタ 1.5、2、2.5、3、4、5、6、7、8、そして 16の を作りましたので、bfdresize を使いたくない場合には ダウンロードして $HOME/fontsに置いて下さい。 自分の .xinitrc もしくは .xsession ファイルの内容を変更する: (カーソルを使う) X クライアントすべてに先んじて以下の命令が 実行されるようにします。 xset +fp $HOME/fonts xsetroot -cursor_name X_cursor X のセッションから抜け、X を再起動する。 以上です。—これでマウスカーソルがすべて 2 倍になったはずです。 注意と限界 X サーバ、特にハードウェアにマウスカーソルを依存している場合には、 マウスカーソルを拡大化できる大きさに限度があるかも知れません。それら以外ならば そのような限界はありません。例えば、XF86_S3 3.3 ならば (遅いものの) 512x512 サイズのマウスカーソルが動きます。 拡大化されたカーソルフォントの名前は、元のものと同じものでなければ なりません(cursor というbdfresize が フォントの名前を変えないので問題ありません。 新しいカーソルフォントのディレクトリは、フォントパスのなかでは 本来のものよりも前に来なくてはなりません — この点は xset +fp で 解決します(この動作の逆は xset fp+ です)。 $HOME/fonts/ の中身の変更は mkfontdir $HOME/fonts; xset fp rehash の実行後に 立ち上がる X のクライアントに (更に正確に述べるならば、 それも、新たに作られたカーソルに対して) のみ反映します。 xset +fp path は X-Terminal では作動しないかも知れません。 この場合、もし X-Terminal にサポートされているならばフォントサーバが使えますし、 (see the section )、 もしくは、(一般的にはあなたのシステム管理者のみが可能ですが) 他の方法で X-Terminalにフォントをインストールすることができます。 olcursor や decw$cursor、 そして、あなたが出会うだろう他のフォントに対しても今回と同じ手法が取れます。 bcfresize で作られたカーソルフォントは、大きく拡大されると特に、 滑らかな形をしていません。誰かが、ある共通のサイズに関してもっと見ための良い 手作りのものを用意すれば良いのですが。。。 技術的議論 自動的にカーソルを拡大化する、X プログラムを書くことは可能でしょうか? XCreate*Cursor Xlib 関数に対するすべての要求を中断し、 その他の要求は変えずに本来の X サーバに中継する代理 X サーバを書くことです。 そこで、XCreate*Cursor の要求が拡大化されたカーソルを使うように 変更させるのです。 この代理サーバは、例えば さらにマウスカーソルを見やすくする、その他のアイデア マウスカーソルを追いやすくする、もっと簡単な X プログラムのアイデアを 挙げるとします。 ホットキーが押された時、ポインタの位置に 0.5 秒間何か (大きなカーソルや 小さいウインドウ、形付けられたウインドウ)を表示する。 XRecolorCursor を用いて 0.1 秒毎にマウスカーソルの色を変える。 さらに苛酷なプロジェクトとしては で詳細を御覧下さい)。 関連した情報 フォントサーバの使い方 フォントサーバとは、簡単なプロトコルで X11 のフォントセットを提供する ネットサービスです。どのフォントを提供しているのか、もしくは、要求に応じて どのフォントのビットマップデータを供給するかを調べることができます。 ファイルシステム上のフォントを探す代わりに、手の加えられたカーソルフォントを X サーバに提供するフォントサーバを使いたくなるかも知れません。 この方法は、共通のファイルシステムを共用していない数台のマシンを使っていたり、 フォントサーバのプロトコルを理解できる X ターミナルを使っているならば、特に 手頃でしょう。 フォントサーバのプログラムと関連したツールは X11R5 とその distribution (AFAIK) にあります。 フォントサーバのセットアップ fs(1) や fslsfonts(1) (もしくは X11R6 の xfs(1) や xfslsfonts) のマニュアルページを読んで、挑戦して下さい。難しくは ないでしょう。例えば、some.host.edu というホスト上の 7100 番ポートで サーバを動かすのであれば、 fslsfonts -server some.host.edu:7100 というコマンドでセットアップを試みることができます。 実際にサーバを使う時は、 xset +fp tcp/some.host.edu:7100 を発行し、エラーメッセージがなければ良いでしょう。 フォントの bdf ソースの入手法 もし、フォントサーバを立ち上げたのならば、フォントサーバについて来る fstobdf を使えばよいのです。 代わりに、getbdf を実行して、インストールされている X11 のフォントから bdf ファイルをダンプすることもできます。