Mouse drivers
13 August 2005

Summary

The Alps Glidepad is working! It doesn't appear to be giving gpm any problems either. Note that the pad behaves rather differently now -- for instance, you can scroll by holding your finger towards one of the sides.  This is controlled by x-windows, though I (perhaps unnecessarily) turned on scrolling in ksynaptics. The smooth scrolling is actually nicer than what I get with the external mouse wheel.

I activated a hotplug script that simply disables the touchpad while an external mouse is plugged in; cf. /etc/hotplug/USB/usbmouse.

The syndaemon automatically disables the pad while you're typing, enabling it after two seconds -- this is working fine in x-windows (but not in console).

To permanently disable the touchpad, unload the psmouse module, add ~/.touchpad.off, or use kcontrol.

The gpm program doesn't support events yet (I bugreported), so it doesn't yet handle these more sophisticated dimensions of the touchpad. Upstream may already do so; if not, the maintainer promised to write a patch. Note the new "input-events" program that lets you see exactly what the mouse is doing!

Software and guides

  • Use the 2.6.12 kernel with the latest alps drivers (no need to apply the alps patch)
  • Gentoo synaptics guide -- the most up to date so far
  • Synaptics touchpad driver and instructions -- outdated now (Peter Oesterlund)
  • Alps touchpad with udev instructions -- for Ubuntu
  • Debian packages
    • input-utils (Gerd Knorr)
      • lsinput (list event layer devices)
      • input-events 2 (show input on event device 2)
      • input-kbd (show keyboard to keysym mappings for keyboard event device)
    • xserver-xorg-input-synaptics
    • home page http://web.telia.com/~u89404340/touchpad/index.html
    • ksynaptics
    • gsynaptics
    • qsynaptics
  • cat /proc/bus/input/devices
  • cat /dev/input/event2
  • /etc/hotplug/USB/usbmouse
  • mev -- show mouse events in console
  • xmodmap -pp (show how mouse pointer buttons are mapped in x-windows)
  • syndaemon --  disables the touchpad when the keyboard is being used
  • synclient -l
  • synclient -m 100  (monitor touchpad events)
  • startx -- -logverbose 8  (more details in x-windows log)

Note that on the external mouse, buttons are mapped as follows in console (cf. xmodmap -pp):

Right 1
Middle 2
Right+Middle
3
Left 4
Right+Left
5
Left+Middle
6
All three
7

Mouse button 5 supposedly does some sort of scroll, but not on my mouse.

26 May 2006: synaptics under xorg

There's a new xorg driver, and you need the evdev module loaded. I found the device with "input-events 2" -- works both in xorg and in console. You can tell xorg to use /dev/psaux and it will find the correct device, but there's a lag, and as the device switches itself off all the time, there's a lag every time you want to use it. I modified /etc/X11/nvx to use /dev/input/event2 instead, and it's fast.

udev has taken over from hotplug -- I haven't checked how this affects syndaemon. However, the mouse turns itself off in X11 every time you touch the keyboard.

12 August 2005: syndaemon and hotplug mouse sensor

I discovered that syndaemon was written to turn off the touchpad while you're typing and added this to .xsession:

syndaemon -i 1 -d

See /usr/share/doc/xfree86-driver-synaptics/README.Debian for details. This is now working -- the mouse is deactivated when I type, and return after two seconds.

I also discovered /usr/share/doc/xfree86-driver-synaptics/script/usbhid, "a little hotplug script that disables the Touchpad when you plug in a usb mouse and reenables it when the mouse is unplugged" -- this sounds useful enough. They say "Simply put this into /etc/hotplug/usb/usbhid and thats it" -- note that the syndaemon program must of course be running.

Now, this script isn't working, but its buddy /usr/share/doc/xfree86-driver-synaptics/script/usbmouse works fine, so I used that instead and bugreported.

How do you get hotplug to back off stuff you don't want automatically loaded? Just list the modules in /etc/hotplug/blacklist. You can still load them manually as before. I turned on hotplug and then run 'cool' after boot; it cleans up perfectly.

You may run into a failure to detect the device in x-windows:

(EE) Mouse[1] no synaptics touchpad detected and no repeater device
(EE) Mouse[1] Unable to query/initialize Synaptics hardware.
(EE) PreInit failed for input device "Mouse[1]"

This may be caused by the failure to load the evdev module, or by a typo in the device name -- it's usually /dev/input/events2, but if other USB devices are plugged in, it may be /dev/input/events3. You should get this sort of thing:

(II) Synaptics touchpad driver version 0.14.2
(**) Option "Device" "/dev/input/event3"
(**) Option "SHMConfig" "on"
(**) Option "LeftEdge" "60"
(**) Option "RightEdge" "830"
(**) Option "TopEdge" "80"
(**) Option "BottomEdge" "650"
(**) Option "FingerLow" "25"
(**) Option "FingerHigh" "30"
(**) Option "MaxTapTime" "180"
(**) Option "MaxTapMove" "220"
(**) Option "EmulateMidButtonTime" "75"
(**) Option "VertScrollDelta" "100"
(**) Option "HorizScrollDelta" "100"
(**) Option "UpDownScrolling" "1"
(**) Option "TouchpadOff" "0"
(--) Mouse[1] touchpad found
(**) Option "AlwaysCore"
(**) Mouse[1]: always reports core events
(**) Option "Protocol" "IMPS/2"

Synaptics DeviceInit called
SynapticsCtrl called.
Synaptics DeviceOn called
(--) Mouse[1] touchpad found
A major bonus of using the synaptics driver is that you get scrolling -- both sides of the touchpad now scroll smoothly, which is extremely helpful.

6 August 2005: reportbug to gpm

The response I got to this bugreport, from Debian maintainer Peter Samuelson <peter@p12n.org>:

The problem is very simple: gpm does not support the Linux kernel input event device.  In practical terms, this means that with kernel 2.6 and anything plugged into the PS/2 port, gpm won't see any features beyond that of a Microsoft Intellimouse Explorer - up to 5 buttons and a wheel.

We'll try to support the event device soon - moving to new upstream, and if that doesn't properly support it, I'll write a patch.  The evdev API isn't all that difficult, but I don't want to write a patch for our current (rather old) gpm version.

gpm@lists.linux.it
Nico Schottelius <nico@schottelius.org>
Vojtech Pavlik <vojtech@suse.cz>
Alessandro Rubini <rubini@linux.it>

Subject: Alps touchpad tapping remap fails in gpm

In brief, gpm's "-g 2" switch in for remapping tapping to the middle key isn't working for my touchpad.

The Alps Glidepoint (on a vpr matrix 200a5) is correctly detected when the psmouse module is loaded:

alps.c: Enabling hardware tapping
input: PS/2 Mouse on isa0060/serio1
input: AlpsPS/2 ALPS GlidePoint on isa0060/serio1

In KDE's touchpad control panel, I can map tapping to the middle button and paste works. (Incidentally, how do I do this in the x-windows configuration file, so that I can use the touchpad for pasting in other window managers, such as icewm?) However, the remapping function in gpm, "-g 2", fails.

gpm's man page says to use "-g 2" to map tapping to the middle button, but it has no effect on tapping. When I run /etc/init.d/gpm with the -xv switch, I see

++ start-stop-daemon --start --quiet --nicelevel 0 --exec /usr/sbin/gpm -- -m /dev/psaux -t autops2 -Rms3 -g 2

Other "append" commands work fine, for instance "-B 321".

Incidentally, gpm-mouse-test refuses to proceed past the "Detecting the packet size" stage.

The synps2 type does not work (no response). The device /dev/input/events3, which is used to identify the touchpad in x-windows, doesn't work (no response).

Configuration file, /etc/gpm.conf:

device=/dev/psaux
type=autops2
repeat_type=ms3
append="-g 2"

On starting gpm, left button selects and right button pastes.

If I plug in a second mouse, an imps2, and press the middle button once, then the touchpad's right button gets remapped to extend selection, leaving me with no paste function. Using the "-2" switch works -- it forces the mouse into two-button mode, so I lose the "extend selection" function, but retain paste on both.

Everything looks fine, except tapping maps to button 1 instead of the far more useful button 2.

The problem is that tapping is mapped to button 1 (left) instead of button 2 (middle), so there is no "button 2", as I get with an external imps2 mouse:

mouse: event 0x14, at 39,12 (delta  0, 0), buttons 2, modifiers 0x00
mouse: event 0x18, at 39,12 (delta  0, 0), buttons 2, modifiers 0x00

mev shows the following (just details, nothing interesting):

Left click:

mouse: event 0x14, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x18, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00

Double left click:

mouse: event 0x14, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x18, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x24, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x28, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00

Triple left click:

mouse: event 0x14, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x18, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x24, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x28, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x44, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x48, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00

Right click:

mouse: event 0x14, at 54,19 (delta  0, 0), buttons 1, modifiers 0x00
mouse: event 0x18, at 54,19 (delta  0, 0), buttons 1, modifiers 0x00

Single tap (equivalent to single left click):

mouse: event 0x14, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x18, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00

Double tap (equivalent to double left click):

mouse: event 0x14, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x18, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x24, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x28, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00

Triple tap (not equivalent to triple left click)

mouse: event 0x14, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x18, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x24, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x28, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x14, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x18, at 54,19 (delta  0, 0), buttons 4, modifiers 0x00

Movement with no key down:

mouse: event 0x01, at  8,15 (delta -1, 0), buttons 0, modifiers 0x00
mouse: event 0x01, at  7,15 (delta -1, 0), buttons 0, modifiers 0x00

Movement with left key down:

mouse: event 0x14, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x92, at 40,12 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x92, at 41,12 (delta  1, 0), buttons 4, modifiers 0x00

Movement with right key down:

mouse: event 0x14, at 75,22 (delta  0, 0), buttons 1, modifiers 0x00
mouse: event 0x92, at 75,22 (delta  0, 0), buttons 1, modifiers 0x00
mouse: event 0x92, at 76,22 (delta  1, 0), buttons 1, modifiers 0x00

Left key pressed, right key pressed and released, left released:

mouse: event 0x14, at 70,22 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x14, at 70,22 (delta  0, 0), buttons 5, modifiers 0x00
mouse: event 0x18, at 70,22 (delta  0, 0), buttons 1, modifiers 0x00
mouse: event 0x18, at 70,22 (delta  0, 0), buttons 4, modifiers 0x00

Right key pressed, single tap, right key released:

mouse: event 0x14, at  4, 2 (delta  0, 0), buttons 1, modifiers 0x00
mouse: event 0x14, at  4, 2 (delta  0, 0), buttons 5, modifiers 0x00
mouse: event 0x18, at  4, 2 (delta  0, 0), buttons 4, modifiers 0x00
mouse: event 0x18, at  4, 2 (delta  0, 0), buttons 1, modifiers 0x00

Movement with left and right keys pressed:

mouse: event 0x92, at 30,24 (delta  0, 0), buttons 5, modifiers 0x00
mouse: event 0x92, at 31,24 (delta  1, 0), buttons 5, modifiers 0x00

5 August 2005: the touchpad in gpm and x-windows

Expected behavior is mark with 1, paste with 2, and extend selection with 3. On a three=button mouse, when gpm is first started, 3 pastes until 2 is pressed; then 3 extends. I was unable to get all three functions to work on the external mouse without removing the paste function on the pad. To make the pad work, you simply have to restart gpm (if you've used the paste wheel). See /etc/gpm.conf-two for a failed attempt to define two mice.

The current situation actually isn't that bad -- if you use the external mouse, you get full functionality; if you use the pad, you get nearly full (tapping doesn't paste, but button two does). The only catch is that you can't switch from external to pad without restarting gpm.

In x-windows with the new 2.6.12 kernel, using "cat /dev/input/event0, I find that /dev/input/event0 is the keyboard, /dev/input/event2 is the touchpad, and /dev/input/event3 is the USB mouse. It may be that /dev/input/event1 is the touchpad with the old, simple configuration, currently not turned on in x-windows but listed in the configuration file.

In the x-windows logfile I see that the synaptics driver loads, and the device is detected -- and synclient shows it's all working. However, I can't paste! The second button extends the selection, and tapping won't paste.

In KDE's Touch pad configuration, I finally get tapping to paste. It's got to be possible in gpm too -- ask on some mailing list  -- and in icewm. That is to say, it should be possible to define this in x-windows in general, not just in KDE.

23 April 2005: instructions for setting up the Alps Glidepoint driver

The Alps Glidepoint touchpad is now working, thanks to the following:

  • the kernel driver (works in 2.6.12-rc2)
  • the xfree86-driver-synaptics package (required)
  • the ksynaptics package (part of kcontrol)
  • the xfree configuration (has been in place a long time)

The Alps touchpad driver is in the 2.6.12-rc2 kernel and requires no further patches. 
I see from past dmesg that 2.6.11 had the driver and identified the device:

Mar 13 05:31:55 sigillo kernel: ALPS Touchpad (Glidepoint) detected
Mar 13 05:31:55 sigillo kernel: input: AlpsPS/2 ALPS TouchPad on isa0060/serio1
I now get this more confident identification:
Apr 24 16:39:52 sigillo kernel: mice: PS/2 mouse device common for all mice
Apr 24 16:39:52 sigillo kernel: serio: i8042 AUX port at 0x60,0x64 irq 12
Apr 24 16:39:52 sigillo kernel: input: PS/2 Mouse on isa0060/serio1
Apr 24 16:39:52 sigillo kernel: input: AlpsPS/2 ALPS GlidePoint on isa0060/serio1
In /proc/bus/input/devices I have this:
# cat /proc/bus/input/devices

I: Bus=0011 Vendor=0002 Product=0008 Version=0000
N: Name="PS/2 Mouse"
P: Phys=isa0060/serio1/input1
H: Handlers=mouse1 event2
B: EV=7
B: KEY=70000 0 0 0 0 0 0 0 0
B: REL=3

I: Bus=0011 Vendor=0002 Product=0008 Version=7321
N: Name="AlpsPS/2 ALPS GlidePoint"
P: Phys=isa0060/serio1/input0
H: Handlers=mouse2 event3
B: EV=f
B: KEY=420 0 70000 0 0 0 0 0 0 0 0
B: REL=3
B: ABS=1000003

(and stuff on the other mouse).
According to this Gentoo site, you can find the location of the device by issuing
cat /dev/input/event0 (or 1 or 2 or 3)
and touch the touchpad.  "If you see lots of gibberish output while touching it, then you found the right device." When you have the right event, you get responsive gibberish -- that is to say, screenfulls of stuff that respond to your touch. And I find that /dev/input/event1 is the USB mouse, /dev/input/event2 is the keyboard, and /dev/input/event3 is the touchpad!

The Gentoo site also says there may be a problem if psmouse loads before the rest of the USB modules: "The problem here is that USB legacy emulation breaks Synaptics detection" -- so load psmouse last in /etc/modules. I don't know if it matters.

Next, install xfree86-driver-synaptics, but don't worry about the kernel patch -- the 2.6.12-rc2 version is far more recent. The package gets you the programs syndaemon and synclient, and the /usr/X11R6/lib/modules/input/synaptics_drv.o module. There's  documentation in /usr/share/doc/xfree86-driver-synaptics.

In /etc/X11/XF86Config-4, I have to enable the synaptics driver in the Server Layout
        InputDevice    "Mouse[1]" "AlwaysCore"  # synaptics touchpad
and of course in the InputDevice section:
Section "InputDevice"
       Identifier  "Mouse[1]"
       Driver      "synaptics"
       Option      "SHMConfig"             "on" # use synclient to change config on the fly
       Option      "Name" "ALPS GlidePad"
       Option      "Device"                "/dev/input/event1"
       Option      "Protocol"              "event"
       Option      "LeftEdge"              "60"
       Option      "RightEdge"             "830"
       Option      "TopEdge"               "70"
       Option      "BottomEdge"            "650"
       Option      "FingerLow"             "25"
       Option      "FingerHigh"            "30"
       Option      "MaxTapTime"            "180" # set to 0 to disable tap
       Option      "MaxTapMove"            "110" # set to 0 to disable single tap
       Option      "EmulateMidButtonTime"  "75"
       Option      "VertScrollDelta"       "50"
       Option      "HorizScrollDelta"      "50"
       Option      "MinSpeed"              "0.2"
       Option      "MaxSpeed"              "0.5"
       Option      "AccelFactor"           "0.01"
       Option      "EdgeMotionSpeed"       "40"
       Option      "UpDownScrolling"       "1"
       Option      "TouchpadOff"           "0"
EndSection
Now in /var/log/XFree86.0.log I see this:
(II) LoadModule: "synaptics"
(II) Loading /usr/X11R6/lib/modules/input/synaptics_drv.o
(II) Module synaptics: vendor="The XFree86 Project"
        compiled for 4.2.0, module version = 1.0.0
        Module class: XFree86 XInput Driver
        ABI class: XFree86 XInput driver, version 0.3
(II) Synaptics touchpad driver version 0.14.1
(**) Option "Device" "/dev/input/event3"
(**) Option "SHMConfig" "on"
(--) Mouse[1] touchpad found
(**) Option "AlwaysCore"
(**) Mouse[1]: always reports core events
(**) Option "Protocol" "IMPS/2"
Synaptics DeviceInit called
SynapticsCtrl called.
Synaptics DeviceOn called
(--) Mouse[1] touchpad found
-- and it works! For the first time.

8 May 2004 update on the Alps Glidepoint instructions

The new 0.13.0-1 release of the alps patch didn't look any different (I ran diffs), but anyway here's the full procedure.

First, copy the Alps patch from the xfree86-driver-synaptics package:

cp /usr/share/doc/xfree86-driver-synaptics/alps.patch.gz  /usr/src/patches
Untar and remove the gunk at the beginning of the file -- substitute a header with instructions:
# This is the cleaned up patch file for the alps touchpad driver
# From the xfree86-synaptics-driver package
# Not yet applied to 2.6.5 by FFS on 8 May 2004
# copy to /usr/src/linux and cd to /usr/src/linux
# issue patch -p1 --dry-run < alps.patch.clean
# and then patch -p1 < alps.patch.clean

and save as /usr/src/patches/alps.patch.clean.<VERSION>. Follow the instructions in the header; it should patch cleanly. Of course, you then need to rebuild your whole kernel, so I'm going to leave it for now.

Second, add the "SHMConfig" option to the X11 configuration file (only the .office version), inside that input device section for the synaptics driver (which is currently not activated).

Section "InputDevice"
        Identifier  "Mouse[1]"
        Driver      "synaptics"
        Option      "SHMConfig"             "on" # use synclient to change config on the fly

Adding this last option allows you to change the configuration of X11 on the fly, using the synclient program.

If you've recompiled the kernel with the alps patches and want to try the synaptics driver, you'll need to uncomment various lines in the X11 configuration file.

Third, verify that the synaptics_drv.o module in the xfree86-synaptics-driver package is where it should be, in

/usr/X11R6/lib/modules/input/synaptics_drv.o
-- the installation will put it there. It's called by the X11 configuration script; you should see it in the X11 log file.

In summary, I attempted to install the new synaptics driver with the alps kernel patch, but the result was poor. When touching the pad, the mouse would jump to a new location, so that it was impossible to move the cursor outside of a predefined square. I reverted to the vanilla kernel.

I've now downloaded the updated driver and created a clean patch file ready to go. Next time you build a kernel, try patching it with the /usr/src/patches/alps.patch.clean.0.13.0-1 and make the appropriate modifications to the /etc/X11/XF86Config-4.office file.

17 April 2004: Instructions for Getting an PS/2 Alps Glidepoint working in GNU/Linux

I found these alternative instructions for using the vanilla kernel driver -- which are already working -- at http://dast.freeshell.org/section/debian/glidepoint. Since I don't see a way to turn tapping off, I haven't implemented this. However, there may be a way to turn off tapping using this method.

If you have an Alps Glidepoint touchpad and you would like to set it up in GNU/Linux, these instructions should help you. I've used it with Debian Stable (Woody) 3.0 with 100% success.

Step 1: Setting up gpm

I like my mouse to work both on the console and in X, so first I set up gpm. After installing gpm, you can use the following settings.

device=/dev/psaux
responsiveness=
repeat_type=ms3
type=ps2
append="-B312 -g2"
sample_rate=

Once this is done, start gpm, like /etc/init.d/gpm start (as root of course). The key here is the repeat_type setting, which causes gpm to repeat all input from the mouse on a named pipe called /dev/gpmdata. This is what X will read for mouse input.

Step 2: Setting up X

At this point, the mouse should be working at the console; you should be able to see the cursor move, copy, paste, etc. If not, go back and figure out why.

Next, you need to set up X to use the /dev/gpmdata pipe for a mouse. The following settings in XFree 4.1.x work.

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/gpmdata"
Option "Protocol" "Intellimouse"
Option "ZAxisMapping" "4 5"
EndSection

Restart X and you should be good to go.


April 2004: Installation details and history for the new synaptics driver (failed)

Installation history

There's tap-to-click feature that in the 2.4 kernel could be turned on and off with the tpconfig utility at  http://www.compass.com/synaptics/ -- it detected my touchpad as an ALPS GlidePad and added, "Tapping is enabled" -- and I liked the feature initially; now I'd like to turn it off and tpconfig in the meantime got overwritten by a turboprint utility of the same name, since moved to /usr/local/bin/turboprintconfig. The utility does not detect the touchpad in 2.6 kernels.

All I really wanted was to turn off tapping. In the kernel help file for Device Drivers | Input device support | Input Device Drivers | Mice | PS/2 mouse, it says, "If you do not want install specialized drivers but want tapping working please use option psmouse.proto=imps". Now that means a kernel option, or
proto=imps on the psmouse module command line
(in /etc/modules), defined in modconf. I defined psmouse as a module to be able to do the latter. To see the options available, issue "grep strcmp /usr/src/linux/drivers/input/mouse/*".

See additional suggestions from the input maintainer.

For fancy features, you need Per Oesterlund's synaptics driver. It's available as a debian package, xfree86-driver-synaptics.

Kernel
  • Apply the ALPS patch, /usr/share/doc/xfree86-driver-synaptics/alps.patch.gz
  • CONFIG_INPUT_EVDEV
  • CONFIG_MOUSE_PS2
  • Result:
    • drivers/input/mouse/psmouse-base.o
    • drivers/input/mouse/logips2pp.o
    • drivers/input/mouse/alps.o
    • drivers/input/mouse/synaptics.o
    • drivers/input/mouse/psmouse.o
XFree configuration file:
  • Section "Modules"
      Load "synaptics"
  • Section "InputDevice"
      Driver        "synaptics"
      Identifier    "Mouse[1]"
      Option        "Device"                "/dev/input/event1"
      Option        "Protocol"              "event"
      Option        "LeftEdge"              "60"
      Option        "RightEdge"             "830"
      Option        "TopEdge"               "70"
      Option        "BottomEdge"            "650"
      Option        "FingerLow"             "25"
      Option        "FingerHigh"            "30"
      Option        "MaxTapTime"            "180"
      Option        "MaxTapMove"            "110"
      Option        "EmulateMidButtonTime"  "75"
      Option        "VertScrollDelta"       "50"
      Option        "HorizScrollDelta"      "50"
      Option        "MinSpeed"              "0.2"
      Option        "MaxSpeed"              "0.5"
      Option        "AccelFactor"           "0.01"
      Option        "EdgeMotionSpeed"       "40"
      Option        "UpDownScrolling"       "1"
      Option        "TouchpadOff"           "0"
    EndSection
How can I configure tap-to-click behavior?
  1. If you set MaxTapTime=0 then the touchpad will not use tapping at all, i.e. touching/tapping will not be taken as a mouse click.
  2. If instead you set MaxTapMove=0, then the touchpad will not use tapping for a single finger tap (left mouse button click) but will for the two and three finger tap (middle and right button click).
Synaptics TouchPad driver for XFree86 server

This package provides an input driver for the XFree86 X server to enable advanced features of the Synaptics Touchpad including:
  • Movement with adjustable, non-linear acceleration and speed
  • Button events through short touching of the touchpad
  • Double-Button events through double short touching of the touchpad
  • Dragging through short touching and holding down the finger on the touchpad
  • Middle and right button events on the upper and lower corner of the touchpad
  • Vertical scrolling (button four and five events) through moving the finger on the right side of the touchpad
  • The up/down button sends button four/five events
  • Horizontal scrolling (button six and seven events) through moving the finger on the lower side of the touchpad
  • The multi-buttons send button four/five events, and six/seven events for horizontal scrolling
  • Adjustable finger detection
  • Multifinger taps: two finger for middle button and three finger for right button events.
    • Needs hardware support. Not all models implement this feature.
  • Run-time configuration using shared memory. This means you can change parameter settings without restarting the X server (see synclient(1)).
  • It also provides a daemon to disable touchpad while typing at the keyboard and thus avoid unwanted mouse movements (see syndaemon(1)).
After patching I recompiled the kernel and installed it.
 

 

top