#title Synaptics Touchpad - Pre-Synaptics Driver (up to late 2010) <> <> ||<>|| On most laptops, a '''[[http://en.wikipedia.org/wiki/Touchpad|touchpad]]''' is the input device used as a substitute for a computer mouse. The term "Synaptics Touchpad" should not be confused with "[[SynapticHowto|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 [[SynapticsTouchpad/Hardy| 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|synclient]] on the command line, or by [[#hal|adding options]] to HAL fdi files. <> == Ubuntu == * [[#shmconfig|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 == * [[#shmconfig|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 == * [[#shmconfig|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 {{{#!Shell #!/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 [[UsingTheTerminal|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 [[#shmconfig|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|synclient]]''', '''[[#syndaemon|syndaemon]]''', '''[[#gsynaptics|gsynaptics]]''', '''[[#ksynaptics|ksynaptics]]''', and '''[[#qsynaptics|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. /!\ 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 [[#hal|a HAL fdi file]] or an xorg.conf file and rebooting. == Using HAL == In a [[UsingTheTerminal|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: {{{ on }}} 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 [[UsingTheTerminal|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|GUI Preference tool]] is installed. Enable SHMConfig as described in the section [[#shmconfig|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 [[https://wiki.ubuntu.com/X/Config/Input#Input%20Configuration%20with%20HAL|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 [[UsingTheTerminal|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 [[https://wiki.ubuntu.com/DebuggingTouchpadDetection|the other touchpad debugging pages]]. = See also = * [[SynapticsTouchpad/ShortcutKey|Turning Synaptics Touchpads On/Off with a Shortcut Key]] ---- CategoryXwindowSystem