[ltp] Synaptics mouse driver: disable all but scroll events?

Ben Pearre linux-thinkpad@linux-thinkpad.org
Wed, 9 Mar 2005 22:31:19 -0700


Hi...

I'm trying to set up the Synaptics touchpad driver on my R40 (running
the latest Debian unstable).  I use the trackpoint for most things,
but I'm trying to configure the touchpad to send scroll events (and
nothing else).

Right now, the touchpad works for vertical scrolling (edge, and
circular).  But I cannot make it do horizontal.

Here's what I've tried:

* Configured using the KDE Synaptics touchpad tool.  Without this, I
  don't get _any_ scroll in either direction (in xterm and galeon),
  BUT I do get mouse button 6 and 7 events through xev (but now not
  buttons 4&5).  This seems to be true even if SHMConfig is set to
  false.  With ksynaptics, I get 4&5 but not 6&7.

* Setting the top and bottom borders of the touchpad to meet in the
  middle, so there is no middle area.  I inferred from the docs that
  horizontal scroll would begin when HorizScrollDelta movement was
  seen in the bottom area.  Synclient shows sensor events well below
  my set BottomEdge (down to about y=4750-ish), but xev reports no
  events for touches lower than about 4589-ish (BottomEdge=3001).

* Added "Buttons 7" to XF86Config-4, and played with many combinations
  of [XYZ]AxisMapping.  Seems this has to be duplicated in CorePointer
  (my trackpad is Send(ing)CoreEvents).  These seem to make no
  difference (?).

* Disabling circular scrolling doesn't get me horizontal scrolling.

Here's what I'd like to be able to do:

* Any finger drag that starts on the left edge of the touchpad would
  be vertical scroll (->circular scroll).  This works now.

* Any finger drag that starts elsewhere on the touchpad (below
  BottomEdge?  Then I would set BottomEdge=1 (ie. at the top of the
  pad)) would be a horizontal scroll.

* No button[1-3] events from the touchpad (I've disabled tapping, but
  the buttons under the touchpad still send events).

Thanks for reading!  If you have any ideas I will try stuff and
summarise to another post (and possibly add a page to ThinkWiki).

Here's the relevant bit of XF86Config-4:

Section "Module"
	[munch]
	Load	"synaptics"	# touchpad driver
EndSection

Section "InputDevice"
	Identifier	"TouchPad"
	Driver		"synaptics"
	Option		"Device"		"/dev/input/mouse0"
	Option		"SendCoreEvents"        "true"
	Option		"Protocol"		"auto-dev"
#	Option          "Buttons"               "7"
#        Option          "ZAxisMapping"  "4 5"
#        Option          "XAxisMapping"  "6 7"

	Option          "SHMConfig"             "true"

        Option          "FingerHigh"            "30"
        Option          "FingerLow"             "25"

        Option          "TopEdge"               "3000"
        Option          "BottomEdge"            "3001"
        Option          "LeftEdge"              "1400"
        Option          "RightEdge"             "5001"

        Option          "HorizScrollDelta"      "20"
        Option          "VertScrollDelta"       "20"
        Option          "CircScrollDelta"       "0.001"
        Option          "CircScrollTrigger"     "3"
        Option          "CircularScrolling"     "true"

        Option          "LockedDrags"           "false"

        Option          "AccelFactor"           "0.001"
        Option          "MaxSpeed"              "0.12"
        Option          "MaxTapTime"            "0"
        Option          "MinSpeed"              "0.06"
EndSection

Section "InputDevice"
	Identifier	"Clit"
	Driver		"mouse"
	Option		"Device"		"/dev/input/mouse1"
	Option		"CorePointer"
	Option		"Protocol"		"PS/2"
	Option		"Emulate3Buttons"	"false"
	Option          "Buttons"               "7"
EndSection

Section "InputDevice"
	Identifier	"Generic Mouse"
	Driver		"mouse"
	Option		"SendCoreEvents"	"true"
	Option		"Device"		"/dev/input/mice"
	Option		"Protocol"		"ImPS/2"
	Option		"Emulate3Buttons"	"false"
	Option		"ZAxisMapping"		"4 5"
EndSection

Section "ServerLayout"
	Identifier	"default"
	Screen		0 "builtin"
	InputDevice	"Generic Keyboard"
	InputDevice	"Clit" "CorePointer"
	InputDevice	"TouchPad" "SendCoreEvents"
	InputDevice	"Generic Mouse" "SendCoreEvents"
EndSection


-- 
Ben Pearre          http://hebb.mit.edu/~ben       PGP: CFDA6CDA
Don't let Bush read your email!             http://www.gnupg.org