2008年7月4日金曜日

Linux(Ubuntu)で横チルト付きマウスを使う

横チルトマウスが欲しい!と、LogitechのMX3を買ったは良いものの、Linux向けドライバなんてありゃしないので、以前に四苦八苦しながら使えるようにしたのを思い出しながら書いてみます。

Linux(というかX Windowか?)では横チルトマウスはサポートしてませんが、evdevというドライバを使うと使えるようになります。

マシンはHPのnx6125ノート、Ubuntu 8.04を使ってます。
evdevはUbuntuではxserver-xorg-input-evdevというパッケージ名になってます。
8.04 Hardyでは初めからVer 1.2.0がインストールされてます。
んでもって、次みたいな感じで/etc/X11/xorg.confに追記。
Section "InputDevice"
Identifier "LogitechMX3"
Driver "evdev"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/by-id/usb-Logitech_USB-PS.2_Optical_Mouse-event-mouse"
Option "Protocol" "auto"
Option "RelHWHEELMapTo" "Buttons 7 6"
EndSection
似たようなの(他のInputDeviceセクション)があるあたりに付け足しときましょう。
さらにはServerLayoutセクションにも次みたいに書き足します。
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Synaptics Touchpad"
InputDevice "LogitechMX3" #この行を追記した
EndSection
これで、問題なく使えるようになりました。

InputDeviceセクションをもうちょっと詳しく説明すると、、、

・Identifier……セクションを識別する名前。自由に付けてOK
・Driver……このInputDeviceに使用するドライバを指定。今回はevdevを使用。
・SendCoreEventsオプション……これがtrueでないとボタンイベントが届かない?
・Deviceオプション……デバイスファイルを指定する。
・Protocolオプション……とりあえず、autoに。
・RelHWHEELMapToオプション……デフォルトだと横チルトの左右が逆になっているのでこのオプションで指定しなおす。ただし、evdevのバージョンごとに指定方法が違うので要確認。
こんな感じ。

あと、Deviceオプションについてですが、デバイスファイルはログイン毎に変わる事があるので直接デバイスファイルを指定しないようにしてます。
/dev/input/by-id/ディレクトリには、機器の接続時に機器ごとに一定な名前のシ ンボリックリンクが、適切なデバイスファイルにリンクされるのでこちらを指定しておきます。/proc/bus/input/devicesに記述されている 機器名(Name行)及びデバイスファイル名(Handlers行)を確認して、使用したい機器の適切なシンボリックリンクを見つけましょう。
RelHWHEELMapToオプションも要注意。
$ man evdev
で自分のディストリビューションに入っているバージョンのevdevでの指定方法を確認しましょう。

<追記>
Firefoxで横スクロールをするには、about:configでmousewheel.horizscroll.withnokey.numlinesの値を0にします。
また、横チルトに対する動作量をしていするmousewheel.horizscroll.withnokey.numlinesオプションの値がデフォルトだと-1になってたりします。これでは、せっかくXの設定で左右逆にしたのに、fxでだけ結局また左右逆になってしまうので、値を1にしましょう。
横チルトの左右が逆になってしまうことへの配慮なのかどうかは分かりませんが、fxでだけ対応されても困るって訳です。

0 件のコメント: