特殊なマウスを使う

2008/08/17PC::Linux/BSD

X環境で以下のポインティングデバイスを利用する方法について調べてみた。

  • 5ボタンマウス
  • トラックポイント

環境

OS
Kubuntu 8.04.1 日本語ローカライズド
Window Manager
KDE 3.5.9
5ボタンマウス
Microsoft Wireless IntelliMouse Explorer 2.0 (USB)
トラックポイント
IBM Space Saver II Keyboard
Firefox
3.0.1 (Ubuntuパッケージ版)

5ボタンマウスを利用する

Kubuntuデフォルトの設定では5ボタンマウスの第4、第5ボタンが機能しません。これらを利用可能とするには/etc/X11/xorg.confをのマウスに関するセクションを以下のように編集します。

Section "InputDevice"
    Identifier    "Mouse0"
    Driver        "mouse"
    Option        "Protocol" "auto"
    Option        "Device" "/dev/psaux"
    Option        "Emulate3Buttons" "no"
    Option        "ZAxisMapping" "4 5"
EndSection

ちなみに、このマウスのセクションはnVidia Settingsが吐き出すものです。

トラックポイントを利用する

トラックポイント4ではセンターボタンを押下時にポインタを動かすことにより、スクロールさせる機能が備わっています。これをLinux上で利用する場合のメモ。

xorg.confの設定

こちらの記事を参考に、5ボタンマウスを利用する場合と同様に以下のように/etc/X11/xorg.confのマウスのセクションを変更します。

Section "InputDevice"
    Identifier    "Mouse0"
    Driver        "mouse"
    Option        "Device" "/dev/input/mice"
    Option        "Protocol" "ImPS/2"
    Option        "Emulate3Buttons" "on"
    Option        "Emulate3Timeout" "50"
    Option        "ZAxisMapping" "4 5"
    # スクロール機能の有効化
    Option        "EmulateWheel" "on"
    # センターボタン押下時にスクロールボタン機能を割り当て
    Option        "EmulateWheelButton" "2"
    Option        "EmulateInertia" "50"
    # 横スクロール機能の有効化
    Option        "XAxisMapping" "6 7"
EndSection

Firefox側の設定

Firefoxにて横スクロール機能を利用する場兄はabout:configにて以下の項目を設定する必要がある。

  • mousewheel.horizscroll.withnokey.action = 0
  • mousewheel.horizscroll.withnokey.numlines = 1

設定の効果

センターボタンをホールド時にはスクロールボタンとして機能することとなり、Windows環境でのトラックポイントのように利用することが出来ます。なお、Windowsのトラックポイントドライバはセンターボタンを常にスクロールボタンとして機能させていますが、上記の設定の場合、センターボタンクリック時には通常のセンターボタンとして動作するため、FirefoxでCtrl+クリックで新しいタブに開いていたところをセンターボタンクリックのみで実現できます。

また、この設定を通常の3ボタンマウス*1に適用することでトラックポイントライクな操作性を実現することが出来ます。

*1 : ホイールではない純粋な3ボタンマウス。いや、ホイールタイプのマウスでも同様に動作しますけど、ホイールタイプなら素直にホイール回せ、と(苦笑

5ボタンマウス+トラックポイントの組み合わせの場合

これまでの設定を参考に、私の環境である5ボタンマウス+トラックポイントの組み合わせの場合を記述してみた。

Section "InputDevice"
    Identifier    "Mouse0"
    Driver        "mouse"
    Option        "CorePointer"
    Option        "Device" "/dev/input/mice"
    Option        "Protocol" "ExplorerPS/2"
    # マウスのボタンの数
    # 5ボタン+上下スクロール+チルトスクロールで9つ
    Option        "Buttons" "9"
    # マウスのボタンのマッピング
    # 第4ボタン: 8(Firefoxで「戻る」ボタン)
    # 第5ボタン: 9(Firefoxで「進む」ボタン)
    Option        "ButtonMapping "1 2 3 8 9"
    Option        "Emulate3Buttons" "false"
    Option        "Emulate3Timeout" "50"
    Option        "ZAxisMapping" "4 5"
    # スクロール機能の有効化
    Option        "EmulateWheel" "on"
    # センターボタン押下時にスクロールボタン機能を割り当て
    Option        "EmulateWheelButton" "2"
    Option        "EmulateInertia" "50"
    # 横スクロール機能の有効化
    Option        "XAxisMapping" "6 7"
EndSection

ちゃんとした設定を行うにはxorg.conf(5)を読まないといけないのだが、日本語化されたものがないのが辛い。そのうち読むつもりはあるが、とりあえず意図した通りに動いているのでよしとする。