この章では, いろんなアプリケーションにおける マウスの一般的な使いかたについて取り扱います.
Linux ディストリビューションのほとんどは, どんな種類のマウスを使うのかインストールの最中に尋ねてきて, gpm と X Window System を設定してくれます. 正しいマウス・プロトコルを選ばなかったとか, 新しいマウスをインストールしたという場合は, 何かコマンド・ラインのプログラムを使って, その新しいプロトコルを使うよう gpm と X Window System を再設定できるのが大半です.
RedHat では /usr/sbin/mouseconfig を使えます.
その他のディストリビューションの場合は, インストール方法の説明文書にあたってみてください.
gpm とは, マウスを使ったカット・アンド・ペーストを, X の上でできるのと 同じように, Linux の仮想端末間で可能とするプログラムです. お持ちのマウスの動作テストにもよい方法となります. gpm の最新バージョンは ftp://ftp.prosa.it/pub/gpm にあります. ほとんどの Linux ディストリビューションには コンパイル済みの 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 も再び立ち上がります.