Determining the type of Touchpad
The following command will tell you whether you have a Synaptics, ALPS or Elantech touchpad:
egrep -i 'synap|alps|etps' /proc/bus/input/devices
(Elantech support was enabled in Linux kernel 2.6.32-4.)
In case you don't have an xorg.conf
Create one with the following commands in a terminal:
Xorg :1 -configure
Alternatively, reboot the machine in single user mode, and type the following commands:
Then follow the on-screen instructions. This should give you something to work with.
Note: Xorg -configure may not always work, as indicated in Xorg(1). In any case, if you are using Squeeze, read on, as you no longer need a full xorg.conf.
Read the manual
This manual will tell you all the options that are available for the synaptics driver:
man 4 synaptics
At start, Xorg reads vendor-supplied configuration commands from directory /usr/share/X11/xorg.conf.d (so says man xorg.conf.d).
If generating xorg.conf fails for you, files there may be useful.
Debian squeeze, kernel 2.6.32-4 and later, Xorg 7.5
You should use a file in /etc/X11/xorg.conf.d, e.g. /etc/X11/xorg.conf.d/synaptics.conf, for configuration (but this will work just as well in a combined /etc/X11/xorg.conf file). /usr/share/X11/xorg.conf.d contains distro-supplied samples which can be copied over (or at least keep an eye on their settings when creating your own configuration). The following example shows how to enable tapping and how to configure various other options; you probably won't need everything in it. Comment out any old config for synaptics before replacing it with this new config.
(xserver-xorg-input-synaptics (in Squeeze) has tapping disabled by default for touchpads with one or more physical buttons; see /usr/share/doc/xserver-xorg-input-synaptics/NEWS.Debian.gz. For a list of available options, see synclient -l . Not all options are appropriate; for example, Elantech touchpads don't report pressure, and many other touchpads don't support multitouch.)
Note: If you are using GNOME, you may enable tapping through your desktop settings. Go to System -> Preferences -> Mouse, then, on the third tab "Touchpad", check the "Enable mouse clicks with touchpad" option.
Section "InputClass" Identifier "Touchpad" # required MatchIsTouchpad "yes" # required Driver "synaptics" # required Option "MinSpeed" "0.5" Option "MaxSpeed" "1.0" Option "AccelFactor" "0.075" Option "TapButton1" "1" Option "TapButton2" "2" # multitouch Option "TapButton3" "3" # multitouch Option "VertTwoFingerScroll" "1" # multitouch Option "HorizTwoFingerScroll" "1" # multitouch Option "VertEdgeScroll" "1" Option "CoastingSpeed" "8" Option "CornerCoasting" "1" Option "CircularScrolling" "1" Option "CircScrollTrigger" "7" Option "EdgeMotionUseAlways" "1" Option "LBCornerButton" "8" # browser "back" btn Option "RBCornerButton" "9" # browser "forward" btn EndSection
It is normal for a touchpad to be presented as both a Synaptics device and as an ImPS/2 device. If this is so, then /var/log/Xorg.0.log should show that X has found a touchpad on /dev/input/event6 (for example) and probably also that it has failed to do so on /dev/input/mouse0 (for example). This is fine.
If multitouch doesn't work for you, your hardware may not support it, but you can use the following options to emulate multitouch which allows most of the features to work. Try adding these lines to the Touchpad section (shown above):
Option "EmulateTwoFingerMinZ" "35" Option "EmulateTwoFingerMinW" "8"
You can check which buttons are reported in Xorg.0.log to see if you have multitouch. A touchpad without this capability reports only the usual "left", "right" and "middle" buttons:
$ grep "TouchPad: buttons:" /var/log/Xorg.0.log (II) SynPS/2 Synaptics TouchPad: buttons: left right middle
A touchpad with multitouch reports "double" for two-finger multitouch and "triple" for three-finger multitouch:
$ grep "TouchPad: buttons:" /var/log/Xorg.0.log (II) SynPS/2 Synaptics TouchPad: buttons: left right middle double triple
Debian squeeze, kernel 2.6.30-1, Xorg 7.4
If you are using a generic synaptic touchpad, but it fails to respond to tapping or scrolling actions under a new installation of Squeeze (as in testing), you can run the following two commands to immediately make it work:
modprobe -r psmouse modprobe psmouse proto=imps
To make this change permanent, create a file such as touchpad.conf under /etc/modprobe.d/, and put the following line in it:
options psmouse proto=imps
You do not need to install gsynaptics, synaptic, tpconfig or edit xorg.conf. All you need is passing the kernel options for module psmouse.
Asus eee PC 901
Note, however, that if you DO install the synaptics driver and you are running the "options ps proto-imps" option, that your Elantech touchpad will not be detected as such....it will show up as a mouse of some type. In this case, the symdaemon and synclient programs will not be usable.
On an Asus F3JC, most features of its Synaptics touchpad were not automatically detected by Xorg 7.4 although the xorg synaptics driver was already installed.
1. Install the driver, if not already installed
aptitude update aptitude install xserver-xorg-input-synaptics
2. Edit /etc/X11/xorg.conf
Section "Module" Load "synaptics" EndSection
Section "InputDevice" Identifier "Mouse0" Driver "synaptics" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" Option "TapButton1" "1" Option "SpecialScrollAreaRight" "true" Option "VertEdgeScroll" "true" Option "VertTwoFingerScroll" "true" EndSection
Note: on my Squeeze with Fluxbox, I had to add gsynaptics-init [I used gsynaptics] on my startup list program ~/.fluxbox/startup --?LucaGentile
Debian Lenny, kernel 2.6.21, Xorg 7.3
On a Dell Latitude C610, very little was needed to configure the more advanced features of the touchpad. The touchpad was detected and package xfree86-driver-synaptics was already installed.
1. Edit /etc/X11/xorg.conf Find the section regarding the Touchpad (which is correctly recognised during installation) and add the option SHMConfig "on"
Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" Option "SendCoreEvents" "true" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "HorizScrollDelta" "0" Option "SHMConfig" "on" EndSection
2. Restart X: close all unsaved documents, then ctrl-alt-backspace (you could also reboot)
3. install a package to act as a control panel for the touchpad. I used gsynaptics; there are a number of choices, including ksynaptics and qsynaptics.
4. Launch your control panel to finish configuration. The touchpad works as a mouse even before these steps, but with the control panel you can add the functionality of the right edge of the touchpad being a scroll cursor zone (like a mouse scroll wheel).
At this point, the touchpad works, including in firefox/iceweasel.
Read the rest of this page for more tips, which are still relevant to recent kernels.
The syndaemon Helper
syndaemon is able to help with a number of things, including palm-check and such. one possibility for loading this at X startup for all users is to add a separate file in /etc/X11/Xsession.d (i.e. /etc/X11/Xsession.d/98x11-syndaemon)
# This file is sourced by Xsession(5), not executed. # Load settings from ~/.qsynaptics /usr/bin/qsynaptics -r # start synaptics daemon to enable proper communication with touchpad /usr/bin/syndaemon -d -t -k -i 1
This also loads settings from the qsynaptics control panel. This can of course be omitted. If you leave it in, you should make sure all new users have sensible options set by copying a working .qsynaptics to /etc/skel.