FreeBSD on LOOX R: タッチパッドとマウスの併用

LOOX Rに移行の続き

やっぱり、Exultなんかをやろうと思うと、マウスが必要になるわけです。で、外出してLOOX Rを使う場合は、タッチパッドを使うことになる。もちろんタッチパッドのスクロール機能は有効にしておきたい。

で、マウスとタッチパッドを併用する場合、ちと問題になるのが中ボタンの扱い。X Window Systemでは第2ボタン(いわゆる中ボタン)はペーストボタンとして使用される。また、僕が使っているFluxbox[archive]というウィンドウマネージャでは、第2ボタンドラッグでタブの管理を行う。そして、通常のホイールマウスでは、第2ボタンはホイールなので、ホイールを操作するときに間違ってホイールボタンが押されてしまってペーストされてしまったり、逆にペーストしようとしてホイール操作が行われたりと操作性があまりよろしくない。

このような問題を避けるためには、4ボタン以上付いているマウスを使用して、第4ボタンと第2ボタンを入れ替えてしまえばよい。この設定は、大抵の場合はxmodmapを使うのだが、タッチパッドとマウスを併用している場合は、タッチパッドの第2ボタン(左右同時押し)までも入れ替わってしまうため、使用できない。

そこで、ボタンの入れ替えを /etc/X11/xorg.conf の方でやることにした。参考にしたのはx.orgのマウスドライバのマニュアル(しかしx.orgのサイトの使いにくさはどうよ)。また、マウスはmoused経由で使うことにした。以下、 /etc/rc.conf と /etc/X11/xorg.conf のマウス・タッチパッド関連の記載を抜き出してみる。

/etc/rc.conf:

moused_enable="YES"
moused_port="/dev/ums0

rc.confでは、moused_portを設定して、タッチパッドがmousedで管理されないようにする。

/etc/X11/xorg.conf:

Section "ServerFlags"
      Option  "AllowEmptyInput"
      Option  "AllowMouseOpenFail"
EndSection

Section "ServerLayout"
      Identifier     "X.org Configured"
      Screen      0  "Screen0" 0 0
      InputDevice    "Synaptics_Touchpad" "CorePointer"
      InputDevice    "USB_Mouse" "SendCoreEvent"
      InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
      Identifier  "Synaptics_Touchpad"
      Driver      "synaptics"
      Option      "Protocol" "psm"
      Option      "Device" "/dev/psm0"
      Option      "LeftEdge"              "1700"
      Option      "RightEdge"             "5300"
      Option      "TopEdge"               "1700"
      Option          "BottomEdge"            "4200"
      Option          "FingerLow"             "25"
      Option          "FingerHigh"            "30"
      Option          "MaxTapTime"            "180"
      Option          "MaxTapMove"            "220"
      Option          "VertScrollDelta"       "100"
      Option          "HorizScrollDelta"      "100"
      Option          "MinSpeed"              "0.05"
      Option          "MaxSpeed"              "0.20"
      Option          "AccelFactor"           "0.025"
      Option          "ScrollButtonRepeat"    "100"
      Option          "UpDownScrolling"       "on"
      Option          "UpDownRepeat"          "on"
      Option          "LeftRightScrolling"    "on"
      Option          "LeftRightRepeat"       "on"
      Option          "SHMConfig"             "off"
EndSection

Section "InputDevice"
      Identifier "USB_Mouse"
      Driver "mouse"
      Option "Protocol" "auto"
      Option "Device" "/dev/sysmouse"
      Option "Buttons" "8"
      Option "ZAxisMapping" "4 5 6 7"
      Option "ButtonMapping" "1 8 3 2"
EndSection

ServerFlagsセクションのAllowMouseOpenFailは、USBマウスが繋がっていなくてもXを起動させるための設定(moused経由なので不要かもしれない)。それから、ServerLayoutセクションで、USBマウスを"SendCoreEvent"に設定している。さらに、USBマウスのInputDeviceセクションのButtonMappingオプションでボタンの入れ替えを行っている。今使っているマウスは、4ボタン+ホイール(第4、第5ボタン扱い)+チルトホイール(第6、第7ボタン扱い)なので、4番目のボタンは第8ボタン扱いになる。

コメント(0)



Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。