On most laptops, a touchpad is the input device used as a substitute for a computer mouse.

The term "Synaptics Touchpad" should not be confused with "Synaptic", Ubuntu's Package Manager.

This page captures the (stale?) documentation prior to the availability of true multitouch support for Synaptics touchpads in late 2010 (ref. comment #115, #116 in https://bugs.launchpad.net/bugs/308191).

Disabling Touchpad for X.Org

The easiest way to disable the Touchpad for X.Org system-wide, is to uninstall the package xserver-xorg-input-synaptics.

  • Trying to apt-get remove xserver-xorg-input-synaptics also wanted to remove xserver-xorg-input-all. Another way to quickly disable the touchpad is install gpointing-device-settings (available in Maverick), then disable the touchpad in the Pointing Devices GUI. (Update: I'm having trouble getting the setting in gpointing-device-settings to stick, as the touchpad becomes re-enabled after a while. This may not be a good option after all.)

The following steps can solve the issue mentioned above (setting does not stick):

  • Go to System > Preferences > Mouse > Touchpad and uncheck 'Disable touchpad while typing' and 'Enable mouse clicks with touchpad'

  • Disable the touchpad in the Pointing Devices GUI again.

Other Configuration Methods

For Ubuntu 8.04 and earlier, see the older instructions.

Basic Configuration with a Graphical Interface

Ubuntu provides configuration of the most common touchpad options in System > Preferences > Mouse, under the Touchpad tab. If you cannot find this tab, see the Troubleshooting section at the end of this page.

Try the touchpad after unchecking the Enable mouse clicks with touchpad check box.

Check operation after Enable horizontal scrolling is checked. This may not have been the default setting.

If all else fails, when using two hands for operation, remember to lift your finger off of the touchpad when leaving a scroll bar, window or workspace.

Advanced Configuration with a Graphical Interface

This sections describes how to install a GUI configuration tool for your Synaptics touchpad which integrates into your desktop environment. Other methods of configuring the touchpad include using synclient on the command line, or by adding options to HAL fdi files.

Ubuntu

  • Enable SHMConfig.

  • For a preference tool which integrates into the GNOME Desktop environment, install the gsynaptics package from the universe repository. For help with installing packages see InstallingSoftware.

After installation, gsynaptics can be found under System > Preferences > Touchpad.

Kubuntu

  • Enable SHMConfig.

  • The preference tool which integrates into the KDE desktop environment, ksynaptics package from the universe repository, is no longer in the Intrepid Repositories. Until the tool is updated, please use the method for Xubuntu and others below.

Xubuntu and others

  • Enable SHMConfig.

  • For users of Xfce or anything else besides GNOME or KDE, install the qsynaptics package from the universe repository. For help with installing packages see InstallingSoftware.

  • Note: qsynaptics is no longer in the repositories either as of Jaunty. gsynaptics is the only remaining option for a full featured gui currently. There is a gui program called touchfreeze which can pause your touchpad while you are typing to help reduce erroneous touchpad actions using syndaemon below automatically.

Restoring gsynaptics settings on resume

  • Upon resuming from suspend gsynaptics-init needs to be run for each open X session, I've written a script to put in /etc/pm/sleep.d/98gsynaptics to do that automatically

#!/bin/bash

# Only run on resume/thaw
if [[ ${1} =~ (thaw|resume) ]] ; then

  synaptics() {

    # sleep to give time for X
    sleep 4s

    who | while read line ; do
      a=(${line})
      regex="^:[[:digit:]]"
      if [[ ${a[1]} =~ $regex ]] ; then
        init="sudo -H -u ${a[0]} DISPLAY=${a[1]} gsynaptics-init"
        eval "${init}"
      fi
    done
  }

  # run in background so sleep doesn't hold up resume
  synaptics &
  # disown so exiting shell doesn't kill function
  disown %1

fi

Disabling the Touchpad Temporarily While Typing

To avoid accidental mouse movement while typing, syndaemon can be used to monitor the keyboard activity and disable the touchpad for a period of time after the last keystroke.

The following commands should be typed in a terminal.

The -d option causes syndaemon to run in the background, so the terminal can be closed after executing the command.

syndaemon -d

The -t option causes syndaemon to only disable tapping and scrolling, not mouse movements:

syndaemon -d -t

By default syndaemon disables the touchpad for 2 seconds after the last keyboard activity. To specify a different timeout, use the -i option. For example, a timeout of 1 second:

syndaemon -d -i 1

If syndaemon doesn't work properly out of the box, try enabling SHMConfig, and force syndaemon to use it by passing the -S option. (This might generally be the case if you only use HAL fdi(as described further below) to configure your input interfaces for xorg)

syndaemon -d -i 1 -S

Further options can be found by reviewing the man page with:

man syndaemon

The following example invokes syndaemon for 4 seconds after any keyboard activity (-i 4), except when modifier keys such as Alt or Shift are used (-K), and only disables tapping and scrolling (-t) for this period.

syndaemon -i 4 -d -t -K

To make syndaemon start up each time you login, add the desired command to the list of Startup Programs in System > Preferences > Sessions or System > Preferences > Startup Applications. See AddingProgramToSessionStartup.

In Ubuntu Karmic (9.10) syndaemon is started automatically by gsynaptics-init but can be turned off in System > Preferences > Mouse > Touchpad > Disable touchpad while typing (which alters the gconf setting: /desktop/gnome/peripherals/touchpad/disable_while_typing )

Enabling SHMConfig

Note: Tools such as xinput and syndaemon can now alter touchpad settings without needing SHMConfig to be enabled. However, SHMConfig is still required for some functionality.

In order for tools such as synclient, syndaemon, gsynaptics, ksynaptics, and qsynaptics to work, they need access to the synaptics touchpad driver shared memory. This is done by enabling SHMConfig "on" in the X server Synaptics touchpad configuration. With this enabled, these tools can modify the run-time configuration of the touchpad input driver without restarting the X server.

  • Warning /!\ Note the warning from the man page for synclient:

    WARNING: This is not secure if you are in an untrusted multiuser
             environment. All local users can change the parameters at any time.

    If this is an issue for you, the touchpad can be configured without enabling SHMConfig by placing the desired options in a HAL fdi file or an xorg.conf file and rebooting.

Using HAL

In a terminal type (for Gnome/Ubuntu):

gksudo gedit /etc/hal/fdi/policy/shmconfig.fdi

(for KDE/Kubuntu):

kdesudo kate /etc/hal/fdi/policy/shmconfig.fdi

Put this into the file:

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="input.x11_driver" string="synaptics">
      <merge key="input.x11_options.SHMConfig" type="string">on</merge>
    </match>
  </device>
</deviceinfo>

Save and close that file, reboot, and SHMConfig should be enabled.

Using xorg.conf

In the latest versions of Ubuntu, HAL has been replaced by DeviceKit and the above method no longer works. SHMConfig can be enabled by configuring it in the Xorg configuration file.

In a terminal type (for Gnome/Ubuntu):

gksudo gedit /etc/X11/xorg.conf

(for KDE/Kubuntu):

kdesudo kate /etc/X11/xorg.conf

Add this to the file if there is already something there, or just put it in if the file doesn't exist yet:

Section "InputClass"
        Identifier "enable synaptics SHMConfig"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Option "SHMConfig" "on"
EndSection

Save and close the file and reboot.

(Based on the configuration in /usr/lib/X11/xorg.conf.d/10-synaptics.conf)

Configuration with synclient

synclient can be used to adjust touchpad settings from the command line. This will work even if a GUI Preference tool is installed.

Enable SHMConfig as described in the section Enabling SHMConfig.

List all settings:

synclient -l

Examples

Turn touchpad off:

synclient TouchpadOff=1

Turn touchpad on:

synclient TouchpadOff=0

Configuration with HAL fdi files

Touchpad options can be set permanently through HAL. See the HAL input section of the X config documentation for details.

Troubleshooting

Determine whether a touchpad has been detected

To check if a touchpad has been detected open a terminal and check the input device list given by this command:

xinput list

If one of the lines mentions a touchpad (perhaps also "Synaptics" or "ALPS"), your touchpad has been detected.

If one of the lines mentions an "ADB mouse", then your touchpad is old. Use the trackpad command line tool to configure it. Here's an example to switch on tapping and dragging:

sudo trackpad show
sudo trackpad tap
sudo trackpad drag

If nothing else works, see the other touchpad debugging pages.

See also


CategoryXwindowSystem

SynapticsTouchpad/PreMaverick (last edited 2011-04-08 03:17:28 by tomdavies04)