タッチパッドを使えるようにしたxorg.conf

タッチパッドは直した(とりあえず,使えるようにはした)ので,

http://d.hatena.ne.jp/pneumaster/20090525/1243180905

タッチパッドの挙動を直した過程です.


まず使えなかった状態のxorg.conf

# /.../
# SaX generated X11 config file
# Created on: 2009-05-24T23:46:49+0900.
#
# Version: 8.1
# Contact: Marcus Schaefer <sax@suse.de>, 2005
# Contact: SaX-User list <https://lists.berlios.de/mailman/listinfo/sax-users>
#
# Automatically generated by [ISaX] (8.1)
# PLEASE DO NOT EDIT THIS FILE!
#

Section "Files"
  FontPath     "/usr/share/fonts/misc:unscaled"
  FontPath     "/usr/share/fonts/local"
  FontPath     "/usr/share/fonts/75dpi:unscaled"
  FontPath     "/usr/share/fonts/100dpi:unscaled"
  FontPath     "/usr/share/fonts/Type1"
  FontPath     "/usr/share/fonts/URW"
  FontPath     "/usr/share/fonts/Speedo"
  FontPath     "/usr/share/fonts/PEX"
  FontPath     "/usr/share/fonts/cyrillic"
  FontPath     "/usr/share/fonts/latin2/misc:unscaled"
  FontPath     "/usr/share/fonts/latin2/75dpi:unscaled"
  FontPath     "/usr/share/fonts/latin2/100dpi:unscaled"
  FontPath     "/usr/share/fonts/latin2/Type1"
  FontPath     "/usr/share/fonts/latin7/75dpi:unscaled"
  FontPath     "/usr/share/fonts/baekmuk:unscaled"
  FontPath     "/usr/share/fonts/japanese:unscaled"
  FontPath     "/usr/share/fonts/kwintv"
  FontPath     "/usr/share/fonts/truetype"
  FontPath     "/usr/share/fonts/uni:unscaled"
  FontPath     "/usr/share/fonts/CID"
  FontPath     "/usr/share/fonts/ucs/misc:unscaled"
  FontPath     "/usr/share/fonts/ucs/75dpi:unscaled"
  FontPath     "/usr/share/fonts/ucs/100dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/misc:unscaled"
  FontPath     "/usr/share/fonts/hellas/75dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/100dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/Type1"
  FontPath     "/usr/share/fonts/misc/sgi:unscaled"
  FontPath     "/usr/share/fonts/xtest"
  FontPath     "/opt/kde3/share/fonts"
  InputDevices "/dev/gpmdata"
  InputDevices "/dev/input/mice"
EndSection

Section "ServerFlags"
  Option       "AIGLX" "on"
  Option       "AllowMouseOpenFail" "on"
  Option       "ZapWarning" "on"
EndSection

Section "Module"
  Disable      "dri"
  Load         "glx"
  Load         "type1"
  Load         "extmod"
  Load         "dbe"
  Load         "freetype"
EndSection

Section "InputDevice"
  Driver       "kbd"
  Identifier   "Keyboard[0]"
  Option       "Protocol" "Standard"
  Option       "XkbLayout" "jp"
  Option       "XkbModel" "jp106"
  Option       "XkbRules" "xfree86"
EndSection


Section "InputDevice"
  Driver       "synaptics"
  Identifier   "Mouse[1]"
  Option       "Device" "/dev/input/mice"
  Option       "Emulate3Buttons" "on"
  Option       "Name" "Touchpad"
  Option       "Protocol" "auto-dev"
  Option       "SHMConfig" "on"
  Option       "Vendor" "Synaptics"
  Option       "ZAxisMapping" "4 5"
  Option       "RightEdge" "900"
  Option       "SpecialScrollAreaRight" "on"
  Option       "VertScrollDelta" "100"
  Option       "VertEdgeScroll" "on"
  Option       "BottomEdge" "960"
  Option       "HorizEdgeScroll" "off"
  Option       "HorizScrollDelta" "0"
  Option       "UpDownScrolling" "on"
  Option       "VertTwoFingerScroll" "on"

EndSection


Section "Monitor"
  DisplaySize  305 230
  HorizSync    31-81
  Identifier   "Monitor[0]"
  ModelName    "1280X1024@75HZ"
  Option       "PreferredMode" "1280x1024"
  VendorName   "--> LCD"
  VertRefresh  58-76
  UseModes     "Modes[0]"
EndSection


Section "Modes"
  Identifier   "Modes[0]"
EndSection


Section "Screen"
  DefaultDepth 16
  SubSection "Display"
    Depth      15
    Modes      "1280x1024" "1280x960" "1280x800" "1152x864" "1280x768" "1280x720" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480" 
  EndSubSection
  SubSection "Display"
    Depth      16
    Modes      "1280x1024" "1280x960" "1280x800" "1152x864" "1280x768" "1280x720" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480" 
  EndSubSection
  SubSection "Display"
    Depth      24
    Modes      "1280x1024" "1280x960" "1280x800" "1152x864" "1280x768" "1280x720" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480" 
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "1280x1024" "1280x960" "1280x800" "1152x864" "1280x768" "1280x720" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480" 
  EndSubSection
  Device       "Device[0]"
  Identifier   "Screen[0]"
  Monitor      "Monitor[0]"
EndSection


Section "Device"
  BoardName    "855 GM"
  BusID        "0:2:0"
  Driver       "intel"
  Identifier   "Device[0]"
  Option       "monitor-LVDS" "Monitor[0]"
  Screen       0
  VendorName   "Intel"
EndSection



Section "ServerLayout"
  Identifier   "Layout[all]"
  InputDevice  "Keyboard[0]" "CoreKeyboard"
  InputDevice  "Mouse[1]" "CorePointer"
  Option       "Clone" "off"
  Option       "Xinerama" "off"
  Screen       "Screen[0]"
EndSection


Section "DRI"
    Group      "video"
    Mode       0660
EndSection

Section "Extensions"
  Option       "Composite" "on"
EndSection

外部から接続したUSBマウスは正常に動作しますが,
タッチパッドは変わった動きになりました.


通常はマウスと同じように,今あるマウスポインタの位置から変位量を送ることになります.

しかしタッチパッドの領域がディスプレイ領域と1対1対応になって,

パッドに再度指を付けたときにはポインタがワープしてしまう...といった状態になりました.

しかもこの2点間がドラッグ動作として認識されるからタチが悪い.

# ブラウザ上で文字列が選択されてしまうとか,

# デスクトップアイコンが無意味に範囲選択されるとか


色々試してみた結果,USBマウスとタッチパッドの両方が
Mouse[1]として認識されているということがわかりました.


マウスに関する設定を,タッチパッドのみの1つを残すことで解決できました.


こちらが解決後のxorg.confです.

長いのでdiff表示*1です.

--- xorg.conf	2009-05-24 23:35:53.000000000 +0900
+++ /etc/X11/xorg.conf	2009-05-29 14:07:50.000000000 +0900
@@ -1,5 +1,5 @@
 # /.../
 # SaX generated X11 config file
-# Created on: 2009-05-24T23:33:37+0900.
+# Created on: 2009-05-24T23:46:49+0900.
 #
 # Version: 8.1
@@ -54,9 +54,9 @@
 Section "Module"
   Disable      "dri"
-  Load         "dbe"
+  Load         "glx"
   Load         "type1"
-  Load         "freetype"
   Load         "extmod"
-  Load         "glx"
+  Load         "dbe"
+  Load         "freetype"
 EndSection
 
@@ -72,19 +72,6 @@
 
 Section "InputDevice"
-  Driver       "evdev"
-  Identifier   "Mouse[1]"
-  Option       "HWHEELRelativeAxisButtons" "7 6"
-  Option       "InputFashion" "Mouse"
-  Option       "Name" "Microsoft IntelliMouse Explorer"
-  Option       "Pass" "3"
-  Option       "Vendor" "Sysp"
-  Option       "evBits" "+1-2"
-  Option       "keyBits" "~272-287"
-  Option       "relBits" "~0-2 ~6 ~8"
-EndSection
-
-Section "InputDevice"
   Driver       "synaptics"
-  Identifier   "Mouse[3]"
+  Identifier   "Mouse[1]"
   Option       "Device" "/dev/input/mice"
   Option       "Emulate3Buttons" "on"
@@ -94,17 +81,14 @@
   Option       "Vendor" "Synaptics"
   Option       "ZAxisMapping" "4 5"
-EndSection
+  Option       "RightEdge" "900"
+  Option       "SpecialScrollAreaRight" "on"
+  Option       "VertScrollDelta" "100"
+  Option       "VertEdgeScroll" "on"
+  Option       "BottomEdge" "960"
+  Option       "HorizEdgeScroll" "off"
+  Option       "HorizScrollDelta" "0"
+  Option       "UpDownScrolling" "on"
+  Option       "VertTwoFingerScroll" "on"
 
-Section "InputDevice"
-  Driver       "fujitsu"
-  Identifier   "Mouse[5]"
-  Option       "Device" "/dev/ttyS0"
-  Option       "InputFashion" "Touchpanel"
-  Option       "MaxX" "4036"
-  Option       "MaxY" "3999"
-  Option       "MinX" "82"
-  Option       "MinY" "146"
-  Option       "Name" "TABLET PCs;LG C1 (fujitouch)"
-  Option       "SendCoreEvents" "on"
 EndSection
 
@@ -167,6 +151,4 @@
   InputDevice  "Keyboard[0]" "CoreKeyboard"
   InputDevice  "Mouse[1]" "CorePointer"
-  InputDevice  "Mouse[3]" "SendCoreEvents"
-  InputDevice  "Mouse[5]" "SendCoreEvents"
   Option       "Clone" "off"
   Option       "Xinerama" "off"

当初は,タッチパッドの右エッジ部のスクロールも効かなかったので,

man synapticsを確認しつつRightEdge以降の設定を追加してあります.

ちなみに重要なのはRightEdgeです.

VertEdgeDeltaが設定してあってもRightEdgeを設定していないと,スクロールしませんのでご注意.


ただ,これでgsynaptics上の設定が有効にされないのが謎.
# SHMConfigはonにしてあるんだけどなあ

参考

man xorg.conf
man synaptics

*1:$ diff -u -2 xorg.conf /etc/X11/xorg.conf