Synaptics Touchpad

Introduction
This guide describes setting up Synaptics and ALPS touchpads under Linux 2.6.X and 3.0.X It assumes basic linux knowledge (Kernel installation related tasks, basic editing of xorg.conf).

This is not strictly necessary for normal mouse configuration, which can be achieved with the normal X11 mouse configuration. The synaptics driver enables the following functionality:


 * 1) Movement with adjustable, non-linear
 * 2) Button events through tapping (Click and Double Click).
 * 3) Dragging.
 * 4) Middle and right button events on the upper and lower corners.
 * 5) Vertical scrolling (button four and five events) through moving the finger on the right side.
 * 6) The up/down button sends button four/five events.
 * 7) Horizontal scrolling (button six and seven events) through moving the finger on the lower side.
 * 8) The multi-buttons send button four/five events, and six/seven events for horizontal scrolling.
 * 9) Adjustable finger detection.
 * 10) Multifinger taps: two finger for middle button and three finger for right button (Requires hardware support).
 * 11) Run-time configuration. This means you can change parameter settings without restarting the X server.

Kernel Settings
Ensure you have a recent enough kernel:


 * True Touchpad: Kernel >=2.6.1
 * ALPS: Kernel >=2.6.11

Apple users may also need to add:

Applications
Add "synaptics" to the INPUT_DEVICES variable in /etc/make.conf. Example:

If you already installed Xorg then only emerge the synaptics driver: emerge -1 x11-drivers/xf86-input-synaptics

If you didn't install Xorg yet, the driver will be added when you do. The driver includes a command line utility (synclient) to control the touchpad. Graphical utilities are also available (kde-misc/synaptiks ksynaptics, gsynaptics).

Touchpad device file
If X.Org fails to automatically detect the touchpad, its device file will have to be entered manually. To find the touchpad's device file use: Look for your device (synaptics or ALPS) in the list. The device file name will be on the Handlers Line below it. If there is more than one listed, it is the first one.

Example section from /proc/bus/input/devices

As a basic test, run: (with the appropriate device file) and interact with the touchpad. If there is no output at all, either the device file is the wrong one, or the kernel driver isn't loaded.

Automatic Configuration
This guide assumes you have an otherwise working xorg.conf file. The automatic configuration settings are the same for both synaptics and ALPS devices. The following sections need to be modified:

If you use a mouse in parallel, you should only have one "CorePointer". For the other device put "SendCoreEvents". Add an input device section for the touchpad:


 * xorg.conf example using Section "InputClass"

Manual Configuration
Synaptics

ALPS

Use the "alps" protocol if the above fails.

Additional Settings
Additional options in the InputDevice section can be used to fine tune the touchpad's behavior. A list of these settings and their meaning is available in man synaptics. These are some examples:

xorg.conf - Defaults similar to MS Windows's behavior

Example 1

Example 2

For AlpsPS/2 ALPS GlidePoint

Example 3

Prevent Accidental Mouse Movement
NB. Starting syndaemon from init.d doesn't work. See bug #37767. Autostart syndaemon from your windowmanager instead.

If your laptop has a compact physical layout, you may often have accidental mouse clicks while typing. syndaemon (part of the synaptics package) can be used to disable the Touchpad while keyboard keys are pressed. Add the daemon to system startup: Its configuration file is /etc/conf.d/syndaemon. If you wish to use modifier keys (eg: Ctrl, Alt) while moving the mouse, add -k to the SYNDAEMON_OPTS in the config file:

Read syndaemon's man page for more options to control disabling the touchpad while typing.

Two Finger Click Transforms
There is a patch for the synaptics driver version 0.14.6 written by Douglas Mayle which enables two finger clicking similar to that found in OS X. To install, you'll need to create a portage overlay and patch the synaptics sources.

Two finger click installation steps

Real-Time Tweaking
As of version 0.14.4 of the synaptics package, changes can be made to the touchpad configuration without restarting X using synclient. These changes are not permanent, and must be explicitly set via xorg.conf, or in a startup script.

Examples:
 * List of available parameters : synclient -l
 * Decreasing the RightEdge value to 5000 may allow for easier verticall scrolling: synclient RightEdge=5000.
 * Turn off the Tap-to-Click feature: synclient MaxTapTime=0.

Usability Tips:
 * Convenient one-liner to format the output of synclient -l for use in xorg.conf:
 * Bash completion script for synclient:

Horizontal Scroll Issues with Firefox
Firefox may misinterpret the horizontal scroll as 'back' and 'forward'.

One option is to disable horizontal scroll by adding into the input section of your.

Another options is to configure Firefox so that it doesn't misinterpret the horizontal scroll. In firefox type in the address. Find the following lines and modify their values by double-clicking them:

about:config

Setting action to enables horizontal scrolling, and setting it to  enables forward and back pages feature.

If you actually want this feature (left scrolling takes you back, and right scrolling makes firefox go forward), set these values:

about:config

Opera
To configure Opera to recognize horizontal scrolling, go to and click the  button next to Mouse setup. Expand the Application section and delete the two entries and.

This ' fix ' may not work as intended in Opera 10.10. Instead of deleting entries, modify the actions to and.

"Can't access shared memory area. SHMConfig disabled?" error
e.g. from event1 to event2 (or mouse0 to mouse1). A better practice is to use "by-path" addressing, instead of "eventX", for Synaptics in Xorg.conf:
 * Check that is present in xorg.conf.
 * Check that the "Device" option is configured properly.
 * Make sure that your touchpad configuration is not overruled by your mouse configuration. That may happen if the mouse InputDevice comes before the touchpad InputDevice in Section "ServerLayout" in.
 * Make sure that xorg-server package was compiled with the debug USE-Flag disabled, otherwise modules loading is not possible.
 * It might also be that your computer does not recognize that you have a synaptics touchpad due to a bug. Compiling your kernel with psmouse as module, load it, unload it, touch the pad and load it again may solve it. If you have X started you have to restart it after you have reloaded the module.
 * Adding additional input devices afterwards may induce this error, because the enumeration of Synaptic input device may change,

Identifier      "Synaptics" ... Option "Device" "/dev/input/by-path/platform-i8042-serio-1-event-mouse" # by path addressing
 * 1) Option "Device" "/dev/input/event1" # the old addressing

Misbehaving external PS/2 mouse
Use "AlwaysCore" instead of "CorePointer" in the ServerLayout section for the "Touchpad" device. A "CorePointer" option will have to be set on another pointer input device (eg: external mouse).

Problems after upgrading to X.Org 7
A symlink might have to be created:

This is not needed in the latest version of the synaptics driver.

If your mouse stops working, you may need to replace "AlwaysCore" with "CorePointer" or "SendCoreEvents" in the "ServerLayout" section of xorg.conf. The "AlwaysCore" option no longer exists. See

Tapping does not work anymore
Probably the TapButtons have to be defined since they are not defined by default in some newer drivers.

You can try it on the fly if SHMConfig is enabled:

synclient TapButton1=1 synclient TapButton2=2 synclient TapButton3=3

If this works for you, you can add this configuration to your /etc/X11/xorg.conf Synaptics InputDevice section:

Option     "TapButton1" "1" Option     "TapButton2" "2" Option     "TapButton3" "3"

I do not use the CornerButtons but maybe this is also needed:

Option     "RTCornerButton" "2" Option     "RBCornerButton" "3"

If tapping still does not work and you are using xf86-input-synaptics-0.15.2-r2, try upgrading to one of the -0.99.* versions. There appears to be a bug in 0.15.2 that disables or at least cripples tapping support, according to a Red Hat bug report.

Scrolling does not work anymore
Probably the scroll variables must be set.

You can try it on the fly if SHMConfig is enabled:

synclient VertEdgeScroll=1 synclient VertScrollDelta=45 synclient HorizEdgeScroll=1 synclient HorizScrollDelta=45

If this works for you, you can add this configuration to your /etc/X11/xorg.conf Synaptics InputDevice section:

Option     "VertEdgeScroll"    "1" Option     "VertScrollDelta"  "45" Option     "HorizEdgeScroll"   "1" Option     "HorizScrollDelta" "45"