この章では、いろんなアプリケーションにおけるマウスの一般的な使いかたに ついて取り扱います。
gpm とは、マウスを使ったカット・アンド・ペーストを、X の上でできるのと 同じように、Linux の仮想端末間で可能とするプログラムです。これはお持ち のマウスの動作テストにもよい方法となります。
gpm の現在のバージョンは gpm-1.13.tar.gz で、お近くの Linux 関係 FTP サイト(たとえば Ring Server)に もあるでしょう。コンパイルのための情報もそのなかに含まれています。例え ば Red Hat のように、コンパイル済みの gpm バイナリが付いてくるディスト リビューションもあります。
gpm を起動するときは、お使いのマウスがどのプロトコルを使っているかを -t
スイッチ、そしてマウスのデバイス・ファイルがどれなのかを -m オプション
を使って指定します。だいたいのバスマウスをまかなえる 3 プロトコルは、
それぞれ logi, bm, ps2 として指定します。マウスのデバイス・ファイルの
デフォルトは /dev/mouse
になっていますので、適切なシンボリッ
ク・リンクが張ってあるなら、-m オプションは省略してしまってかまいませ
ん。例えば Microsoft Inport マウスの場合は:
gpm -t bm
PS/2 プロトコルなら:
gpm -t ps2
それからマウスを動かしてみれば、スクリーン上をカーソル・ブロックが動き まわるのがわかるでしょう。マウスボタンを使って、仮想端末間でカット・ア ンド・ペーストできることも。より詳しい操作方法については、gpm に付いて くる文書を読むか、``man gpm'' してみましょう。
お持ちのバスマウスを XFree86 で使う場合、お使いのマウスのプロトコルを Xconfig ファイル(訳注: 現在では XF86Config ファイル。以下 XF86Config とします)に記さなければなりません。BusMouse プロトコルのマウスをお持ち の場合、XF86Config には以下の内容が入っていないといけません (ダブル・ クォートも入ります):
(訳注: 詳しくは man XF86Config を参照してください.)
Section "Pointer"
Protocol "Busmouse"
Device "/dev/mouse"
# Any other options such as Emulate3Buttons
EndSection
PS/2 マウスならこうします:
Protocol "PS/2"
2 ボタンのマウスなら、以下の行も必要です。マウスの左右ボタンを同時に押 せば、中央ボタンの付いていないマウスでも、中央ボタン押し下げをエミュレー トできます:
Emulate3Buttons
``BaudRate'' や ``SampleRate'' のようなマウスの他の設定項目はバスマウ スには関係ありませんから、コメント・アウトしておいたほうがよいでしょう。
カーネルのその開発の歴史において、バスマウスを複数のプロセスで共有する ことは長いあいだできませんでした。そのため、XFree86 と gpm を同時に走 らせることは困難だったのです。gpm が走っている状態で X を動かそうとし て下のようなエラーに見舞われた場合は、そういった古いカーネルのどれかを 使っている、ということなのです。
Fatal server error:
Cannot open mouse (Device or resource busy)
こういったカーネルで XFree86 と同時に gpm を使うには二つの方法がありま す。まず一つは、XFree86 を立ち上げる前に、gpm のプロセス全てを殺してし まうことです。もう一つは、gpm の ``repeater'' オプションを使うこと。こ れはマウスからのデータを受け取り、その情報を複数のアプリケーションに対 して再生します。
でも私としては、可能ならカーネルをアップグレードすることをおすすめしま す。そうすればバスマウスを他のプロセスと共有できますから。この文書では、 古いカーネルで XFree86 と gpm を一緒に使う件については、簡単な方法のほ うについてだけ説明します。repeater オプションを使う方法については gpm の文書を見てください。
以下のようにすれば、gpm は走っている自分のコピーすべてを終了させます。
gpm -k
これは X11 を立ち上げる前にやらないといけません。X を立ち上げるのに使っ
ているスクリプト、たとえば startx
を見て、上記のコマンドをそ
のスクリプトのてっぺんに追加します。そうすれば gpm は(X が立ち上がる前
に)自動的に終了することになります。そのスクリプトの最後に gpm をリスター
トさせるコマンドも追加しておけば、X のセッションを終了したあと、gpm も
再び立ち上がります。