  X11-big-cursor MINIHOWTO
  X WINDOW SYSTEM でマウスカーソルを大きくして使う方法
  Joerg Schneider <mailto:joerg.schneider@ira.uka.de>
  V2, 1997 年 8 月 11 日
  宮田 忍 (Shinobu MIYATA) <mailto:shinobu@emichan.rim.or.jp>
  1997 年 11 月 19 日

  このドキュメントは X window system 上のマウスカーソルを拡大して使う方
  法を記述しています。
  ______________________________________________________________________

  目次

  1. 導入
  2. この文章について
  3. 方法
  4. 注意と限界
  5. 技術的議論
  6. さらにマウスカーソルを見やすくする、その他のアイデア
  7. 関連した情報
     7.1 フォントサーバの使い方
        7.1.1 フォントサーバのセットアップ
     7.2 フォントの bdf ソースの入手法

  ______________________________________________________________________

  1.  導入

  普通の X マウスカーソルが追いづらい人々にはそれなりの理由があります：

  o  解像度の低い LCD のノート型パソコンで X を使う方

  o  普通のモニタで、例えば 1600x1280 のような高解像度を使う方

  o  普通のハードウェアですら視覚的に問題のある方

  どの場合に対してもマウスカーソルを拡大して使えると助かるでしょう。理想
  としては、この作業はどのマウスカーソルも自動的に拡大する、一つの X の
  プログラムによってなされるべきでしょう。

  私の知識においては、そのようなユーティリティは単純には書けません。とい
  うのも、X のプロトコルにはマウスカーソルを追跡するような機能が備わって
  いないからです。以下の ``技術的議論'' において詳細を述べるとします。

  しかしながら、もし、多少一般的でないゴール設定をするならば、以下の方法
  が考えられます：

  カーソルフォントのなかに、普通のマウスカーソルのセットがあります (xfd
  -fn cursor とすることで、見ることが出来ます)。ほとんどのプログラムはこ
  れらを使いますので、拡大化したものをこれらと置き換える、というのが基本
  的な考え方です。

  2.  この文章について

  この MINIHOWTO は 私の、視覚的に問題のある同級生の一人に、 X 上のマウ
  スカーソルの拡大化を尋ねられたことから書き始めたものです。まず方法を見
  つけて、初版を仕上げました。ここに記述されている方法論は良く知られては
  いないようですので、Linux に全く特化していませんが Linux MINIHOWTO と
  いう形でまとめ、公開しました。その他の MINIHOWTO は Linux
  Documentation Project (LDP) <http://sunsite.unc.edu/LDP/HOWTO/> に見る
  ことが出来ます。

  この文章のマスター <http://i11www.ira.uka.de/~schneid/X11-big-
  cursor/master/> は SGML/linuxdoc 形式で管理されています。このお蔭で、
  自動的に、html、text、 LaTeX、DVI、PostScript、GNU info の各形式に容易
  に変換されて提供されています (master とおなじディレクトリに置かれてい
  ます)。

  この文章の日本語訳は宮田 忍 <mailto:shinobu@emichan.rim.or.jp> が行な
  い、 <http://i11www.ira.uka.de/~schneid/jp/X11-big-cursor/> に置かれて
  います。

  3.  方法

  以下に詳細を示します。もし bdfresize パッケージをコンパイルするのを避
  けたければ、Step 3 を飛ばし、拡大化したフォントを、作る代わりに the
  Net から入手することも出来ます。

  1. カーソルフォントのソース、cursor.bdf を例えば
     <ftp://ftp.x.org/pub/R6.3/xc/fonts/bdf/misc/cursor.bdf> のような X
     の配布先より入手する。(もしそこになければ archie で探すか、 my copy
     <http://i11www.ira.uka.de/~schneid/X11-big-cursor/cursor.bdf> から
     入手可能です。)

  2. bdfresize パッケージを、例えば、
     <ftp://ftp.cs.titech.ac.jp/X11/contrib/bdfresize-1.4.tar.Z>(や my
     copy <http://i11www.ira.uka.de/~schneid/X11-big-
     cursor/bdfresize-1.4.tar.gz> ) から入手しインストールする。

          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

  とする必要があるかもしれません。

  3. 拡大化したカーソルフォント用のディレクトリをつくり、インストールす
     る。 (以下の例では拡大化ファクタを２として行ないます)

          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のカーソルフォ
  ント <http://i11www.ira.uka.de/~schneid/X11-big-cursor/fonts/> を作り
  ましたので、bfdresize を使いたくない場合には ダウンロードして
  $HOME/fontsに置いて下さい。

  4. 自分の .xinitrc もしくは .xsession ファイルの内容を変更する： (カー
     ソルを使う) X クライアントすべてに先んじて以下の命令が実行されるよ
     うにします。

          xset +fp $HOME/fonts
          xsetroot -cursor_name X_cursor

  5. X のセッションから抜け、X を再起動する。

  以上です。--これでマウスカーソルがすべて 2 倍になったはずです。

  4.  注意と限界

  o  X サーバ、特にハードウェアにマウスカーソルを依存している場合には、
     マウスカーソルを拡大化できる大きさに限度があるかも知れません。それ
     ら以外ならばそのような限界はありません。例えば、XF86_S3 3.3 ならば
     (遅いものの) 512x512 サイズのマウスカーソルが動きます。

  o  拡大化されたカーソルフォントの名前は、元のものと同じものでなければ
     なりません(cursor というフォントの名前のことで、ファイル名は問題で
     はありません) -- この点は、bdfresize がフォントの名前を変えないので
     問題ありません。

  o  新しいカーソルフォントのディレクトリは、フォントパスのなかでは本来
     のものよりも前に来なくてはなりません -- この点は xset +fp で解決し
     ます(この動作の逆は xset fp+ です)。

  o  $HOME/fonts/ の中身の変更は mkfontdir $HOME/fonts; xset fp rehash
     の実行後に立ち上がる X のクライアントに (更に正確に述べるならば、そ
     れも、新たに作られたカーソルに対して) のみ反映します。

  o  xset +fp path は X-Terminal では作動しないかも知れません。この場
     合、もし X-Terminal にサポートされているならばフォントサーバが使え
     ますし、 (see the section ``フォントサーバの使い方'')、もしく
     は、(一般的にはあなたのシステム管理者のみが可能ですが) 他の方法で
     X-Terminalにフォントをインストールすることができます。

  o  olcursor や decw$cursor、そして、あなたが出会うだろう他のフォントに
     対しても今回と同じ手法が取れます。

  o  bcfresize で作られたカーソルフォントは、大きく拡大されると特に、滑
     らかな形をしていません。誰かが、ある共通のサイズに関してもっと見た
     めの良い手作りのものを用意すれば良いのですが。。。

  5.  技術的議論

  自動的にカーソルを拡大化する、X プログラムを書くことは可能でしょうか？

     (部分)解 1
        XTEST 拡張から、XTestCompareCursor を使うのです。どのウインドウ
        に対して、マウスポインタは"既知の"カーソルセット (例えばカーソル
        フォント)とそのウインドウのカーソルの比較に入ります。もしカーソ
        ルが見つかれば、それを拡大化したものに置き換え、見つからなければ
        そのままにするか、普通のカーソルに置き換えます。この方法は XTest
        拡張の有効なもののみで実現されます。

     解 2
        XCreate*Cursor Xlib 関数に対するすべての要求を中断し、その他の要
        求は変えずに本来の X サーバに中継する代理 X サーバを書くことで
        す。そこで、XCreate*Cursor の要求が拡大化されたカーソルを使うよ
        うに変更させるのです。

        この代理サーバは、例えば:1. のような新しいディスプレイをつくり出
        します。このディスプレイに接続するすべてのクライアント、例えば
        xterm -display :1 は本来のサーバ、通常 :0、に表示され、そのマウ
        スカーソルが自動的に拡大されるのです。しかし、:0 に接続したクラ
        イアントのマウスカーソルは変わらないのです。

  6.  さらにマウスカーソルを見やすくする、その他のアイデア

  マウスカーソルを追いやすくする、もっと簡単な X プログラムのアイデアを
  挙げるとします。

  o  ホットキーが押された時、ポインタの位置に 0.5 秒間何か (大きなカーソ
     ルや小さいウインドウ、形付けられたウインドウ)を表示する。

  o  XRecolorCursor を用いて 0.1 秒毎にマウスカーソルの色を変える。

  さらに苛酷なプロジェクトとしては mouse trails a la windoze、すなわち、
  マウスが移動し、マウスカーソルが別の位置に示される必要がある場合、元の
  位置のマウスはすぐには消えず、少し遅れて消える、というものです。マウス
  トレイルは X サーバの中では多分よく実行されるものですが X のクライアン
  トとしてこれを実現するのも可能でしょうし、代理サーバとしてならばもっと
  良いかも知れません (``技術的議論'' で詳細を御覧下さい)。

  7.  関連した情報

  7.1.  フォントサーバの使い方

  フォントサーバとは、簡単なプロトコルで X11 のフォントセットを提供する
  ネットサービスです。どのフォントを提供しているのか、もしくは、要求に応
  じてどのフォントのビットマップデータを供給するかを調べることができま
  す。

  ファイルシステム上のフォントを探す代わりに、手の加えられたカーソルフォ
  ントを X サーバに提供するフォントサーバを使いたくなるかも知れません。

  この方法は、共通のファイルシステムを共用していない数台のマシンを使って
  いたり、フォントサーバのプロトコルを理解できる X ターミナルを使ってい
  るならば、特に手頃でしょう。

  フォントサーバのプログラムと関連したツールは X11R5 とその distribution
  (AFAIK) にあります。

  7.1.1.  フォントサーバのセットアップ

  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

  を発行し、エラーメッセージがなければ良いでしょう。

  7.2.  フォントの bdf ソースの入手法

  もし、フォントサーバを立ち上げたのならば、フォントサーバについて来る
  fstobdf を使えばよいのです。

  代わりに、getbdf を実行して、インストールされている X11 のフォントから
  bdf ファイルをダンプすることもできます。

