USBキーボード ウルトラナビ付のトラックポイントは有効にしつつタッチパッドは無効にする方法

※8.10以降のUbuntuではこの方法は使えません。

参考http://d.hatena.ne.jp/higepon/20080417/1208397924

やりたいこと

Ubuntuで外付け USB キーボードのトラックポイントを有効にしつつタッチパッドを無効にしたい。
かつ、普通のマウスは有効にしたい。
キーボードは↓

トラックポイントは便利で使っているのですが、タッチパッドは打鍵のときに無意識に触ってしまいカーソルが動いてしまうので無効にしたいという事情です。
そして、別のマウスはマウスで有効にしておきたいわけです。
プログラム書くときはトラックポイントで、ブラウザとか利用するときはマウスを利用したいという事情です。

方法

大まかな流れは

  1. トラックポイントタッチパッドのデバイスファイルを特定する
  2. xorg.conf を編集する
  3. 再起動

バイスファイルを特定する
/dev/input 以下に認識されているマウス(トラックポイントタッチパッドも含む)があります。


sudo ls /dev/input/mouse*
/dev/input/mouse0 /dev/input/mouse1 /dev/input/mouse2 /dev/input/mouse3
0〜3と、4つありました。

それぞれがどのマウスに該当するかを調べます。


sudo cat /dev/input/mouse3
のように cat しつつそれぞれのマウスでカーソルをぐりぐり動かします。
反応すると変な文字がいっぱい出ます。
中止はCtl + cです。
すると僕の環境では mouse3 はトラックポイントのときだけ反応しました。
タッチパッドは mouse2 、普通のマウスはmouse1でした。

xorg.conf編集
初めはこんな感じになっていると思います。


Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ExplorerPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
Option "EmulateWheel" "true"
Option "EmulateWheelTimeOut" "200"
Option "EmulateWheelButton" "2"
Option "YAxisMapping" "4 5"
Option "XAxisMapping" "6 7"
EndSection
#略
Section "ServerLayout"
Identifier "Default Layout"
screen 0 "Default Screen" 0 0
Inputdevice "Generic Keyboard"
Inputdevice "Configured Mouse"
EndSection

  1. マウス設定の部分の"/dev/input/mice"とありますが、これは先ほど確認した

/dev/input/mouse1〜3を全て受信している部分なようです。
このなかには、タッチパッドバイスのデータも含まれているので、"/dev/input/mice"を利用しないで、
"/dev/input/mouse1"と"/dev/input/mouse3"を別々に記述することでタッチパッドを退避させます。

要するに以下のように編集します。


Section "InputDevice"
Identifier "Pointer Mouse"
Driver "mouse"
Option "SendCoreEvents"
Option "Device" "/dev/input/mouse3"
Option "Protocol" "ExplorerPS/2"
Option "Emulate3Buttons" "true"
Option "ZAxisMapping" "4 5"
Option "EmulateWheel" "true"
Option "EmulateWheelTimeOut" "200"
Option "EmulateWheelButton" "2"
Option "YAxisMapping" "4 5"
Option "XAxisMapping" "6 7"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mouse1"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
EndSection

マウスを示すセクションを2つにし、それぞれマウスとポインタのデバイスを指定します。
Identifierはかぶらなければ何でもよいですが、ポインタの方を”Pointer Mouse"とし、
"SendCoreEvents"というOptionを追加します。

次に、新しいIdentifierをServerLayoutセクションに追加します。


Section "ServerLayout"
Identifier "Default Layout"
screen 0 "Default Screen" 0 0
Inputdevice "Generic Keyboard"
Inputdevice "Configured Mouse"
Inputdevice "Pointer Mouse" "SendCoreEvents" <=ここ
EndSection

設定が完了したらCtl + Alt + BSでXを再起動です。

うまく設定できてたら理想的な状態になります。
「イエーイ! ジ、エーンド!!」と叫びましょう。

また、設定を間違えていたら最悪Xが起動できなくて悲惨な結果になりますが、
その場合も「イエーイ! ジ、エーンド!!」と叫びましょう。