Ubuntu Weekly Recipe

第13回 ポインティングデバイスのカスタマイズ(2):マウスボタンの設定

この記事を読むのに必要な時間:およそ 4 分

多ボタンマウス用の設定

このように,マウス本体にキーボード操作を記録する機能があるもの以外のマウスを使う場合は,いくつかの設定を行う必要があります。

こうした設定をGUIで,かつ自動的に行えるようにしよう,という提案がUbuntu Brainstormで行われています。将来的には以下の設定は不要になるかもしれません。

まず最初にxorg.confを編集し,ドライバの設定を変更する必要があります。適切なデバイス名を確認するため,以下を実行してください。

$ cat /proc/bus/input/devices

システムに接続された入力デバイスすべてが一覧されますが,この中で,"N:"で始まる行を見ていくと,接続されたマウスと合致するものが存在するはずです。以下は筆者がMicrosoft SideWinder Mouseを用いて設定した際の例です。

I: Bus=0003 Vendor=045e Product=0724 Version=0111
N: Name="Microsoft SideWinder? Mouse"
P: Phys=usb-0000:00:1d.1-2/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.0/input/input9
U: Uniq=
H: Handlers=kbd mouse4 event9 js0 
B: EV=1f
B: KEY=c000000 1f0000 0 0 0 c000 100000 0 0 0
B: REL=143
B: ABS=ffffff00 701ff
B: MSC=10

/etc/X11/xorg.confを編集します。以下のようにgksuを用いてgeditを起動するか,sudo vi /etc/X11/xorg.confなどとしてください。念のためバックアップを取った方がよいでしょう。

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
$ gksu gedit /etc/X11/xorg.conf

xorg.confファイルを開いたら,以下のような「Section "InputDevice"」の下にある「Identifier "Configured Mouse"」セクションを探します。これはポインティングデバイスの設定です。

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "mouse"
        Option          "CorePointer"
        Option          "Device"        "/dev/input/mice"
        Option          "Protocol"      "ImPS/2"
        Option          "ZAxisMapping"  "4 5"
        Option          "Emulate3Buttons"       "true"
EndSection

これを以下のように,⁠Driver」として"evdev"を使うように書き換えます。

Section "InputDevice"
        Identifier      "Configured Mouse"
        Driver          "evdev"
        Option          "Name"  "Microsoft SideWinder? Mouse"
        Option          "HWHEELRelativeAxisButtons" "7 6"
EndSection

ここまで終了したら,一度ログアウトします。ログアウト後にXがあがってこなくなってしまった場合は,バックアップファイルを書き戻してください。

この状態であれば,Firefoxなどのアプリケーションでは「進む」⁠戻る」動作が可能になります。

ボタンへのキー割付の変更

さらにカスタマイズしたい場合,以下の手順を行います。

xevを用いて,マウスの各所にあるボタンが,X側ではどのように受け取られているかを確認します。

これは次のように利用します。

まず,端末でxevを起動すると,図4の左側にあるような,小さなウインドウが表示されます。これがxevの実体です。ここでキーボードやマウスボタンを入力すると,X上で発生したイベントが端末にそのまま出力されます。図4の右側にある表示がそれです。

図4 xevによるイベントの取得

図4 xevによるイベントの取得

この出力結果を用いることで,マウスの各所にあるボタンが,どのように処理されるか(Button何番にマッピングされているか)が確認できます。

Microsoft Sidewinder Mouseでは,以下のボタン割り当てになっていました(手のひら部分にあるGame Explorer起動用のボタンや,ホイールの下の解像度切り替えボタンは反応がありませんでした)⁠なお,チルトホイールを採用しているマウスの場合,チルト動作も個別のButtonとして認識されますので,忘れずに確認してください。

X上のButtonマウスのボタン
1左側クリック
2ホイールクリック
3右クリック
4ホイール前方回転
5ホイール後方回転
8サイドボタン下側
9サイドボタン上側

次に,設定に必要ないくつかのパッケージをインストールします。以下のように操作するか,Synapticからインストールしてください。

$ sudo apt-get update
$ sudo apt-get install xvkbd xbindkeys

各ボタンに割り当てるキーボード操作を定義する設定ファイルを作成します。

設定ファイルは~/.xbindkeysrcです※2)⁠

"/usr/bin/xvkbd -xsendevent -text "\[Control]\[w]""
  b:8
"/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Left]""
  b:9
※2
上記は筆者がMicrosoft SideWinder Mouseを用いて設定した際の例です。異なるマウスをお使いの場合はボタン割り当てが異なる可能性があり,単純なコピー&ペーストでは動作しません。必ずxevを用いて,ボタンの割り当てを確認してください。

この設定は,⁠戻る」「Ctrl+w」⁠閉じる)を,それぞれボタン9とボタン8に割り付けています。このようにすることで,マウスの特定ボタンを押下した時にキーボード操作が行われたのと同じ動作が得られます。

設定ファイルを作成したら,⁠Ctrl]+[F2]でプログラムの実行ダイアログを開き,xbindkeysを起動します。

マウスボタンの割り付けは好みがありますので,使いやすい設定を試行錯誤してみてください。

試行錯誤が終わり,ログイン時点で常に有効にする場合は,GNOME Doの時と同じように[システム]⁠⁠設定]⁠⁠セッション]を開き,⁠追加]ボタンを押して,⁠新しく自動起動するプログラム」「名前」「コマンド」に"xbindkeys"と入力し,自動起動するようにしてください。

参考になるドキュメント

著者プロフィール

吉田史(よしだふみひと)

Ubuntu Japanese Team Member株式会社創夢所属。システム管理を中心にWindows/PC Unixを併用している。Ubuntu Japanese Teamではパッケージサーバの管理や翻訳などの作業を担当。

コメント

  • xvkbdとxbindkeysを使う方法はKarmicでもOKでした

    吉田史さんに感謝。
    サイドボタンにPageUp、PageDownを割り当てる方法を、結構あちこち見て探していたのですが、この記事をみてやっと実現できました。

    Commented : #1  MidSpecLowLoad (2010/02/04, 21:56)

コメントの記入