News | About | Get Frugalware | Packages | Documentation | Discussion Forums | Bug Tracker | Wiki | Community | Development

Touchpad Synaptics

From FrugalWiki

Jump to: navigation, search



Contents

Installation and configuration of touchpad synaptics of your laptop

Synaptics NASDAQ: SYNA is a touchpad original equipment manufacturer (OEM) provider for most major computer and laptop companies, such as Asus, Acer, Dell, HP, Sony, Toshiba, Gateway, IBM, Lenovo, Samsung, Packard Bell and several others. Synaptics is located in Santa Clara, California and was founded in 1986 by Federico Faggin who asked Carver Mead to join him as co-founder.

Synaptics develops user interface products, such as touchpads, which are used to interact with a variety of mobile computing, communications, entertainment, and other electronic devices. The company provides an array of technologies, including ASICs, firmware, software, and pattern recognition and touch sensing technologies.


Installation of synaptics

Root terminal 48px.png
# pacman-g2 -S libsynaptics xf86-input-synaptics


Then the touchpad will work after restarting X

Configuration file

The primary method of configuration for the touchpad is through an xorg server configuration file. After installation of xf86-input-synaptics, a default configuration file is located at /etc/X11/xorg.conf.d/20-synaptics.conf.

/etc/X11/xorg.conf.d/20-synaptics.conf
 Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
            Option "TapButton1" "1"
            Option "TapButton2" "2"
            Option "TapButton3" "3"
 EndSection

Available options

The Synaptics driver allows for a vast amount of options to be tweaked. Luckily, all of them are consistently named and well documented in Synaptic's manpage. Before you proceed to learn about the various configuration methods documented below: read the manpage so that you are aware of the available options.

$ man synaptics

Frequently used options

The following lists options that many users may wish to configure. Note that all these options can simply be added to the main configuration file in /etc/X11/xorg.conf.d/20-synaptics.conf, as shown in this example configuration file where we have enabled vertical, horizontal and circular scrolling:

/etc/X11/xorg.conf.d/20-synaptics.conf
 Section "InputClass"
       Identifier "touchpad"
       Driver "synaptics"
       MatchIsTouchpad "on"
              Option "TapButton1" "1"
              Option "TapButton2" "2"
              Option "TapButton3" "3"
              Option "VertEdgeScroll" "on"
              Option "VertTwoFingerScroll" "on"
              Option "HorizEdgeScroll" "on"
              Option "HorizTwoFingerScroll" "on"
              Option "CircularScrolling" "on"
              Option "CircScrollTrigger" "2"
              Option "EmulateTwoFingerMinZ" "40"
              Option "EmulateTwoFingerMinW" "8"
              ...
 EndSection
  • TapButton1: (integer) configures which mouse-button is reported on a non-corner, one finger tap.
  • TapButton2: (integer) configures which mouse-button is reported on a non-corner, two finger tap
  • TapButton3: (integer) configures which mouse-button is reported on a non-corner, three finger tap
  • RBCornerButton: (integer) configures which mouse-button is reported on a right bottom corner, one finger tap (use Option "RBCornerButton" "3" to achieve Ubuntu style tap behaviour for right mouse button in lower right corner)
  • RTCornerButton: (integer) as above, but for top right corner, one finger tap.
  • VertEdgeScroll: (boolean) enables vertical scrolling while dragging across the right edge of the touch pad.
  • HorizEdgeScroll: (boolean) enables horizontal scrolling while dragging across the bottom edge of the touch pad.
  • VertTwoFingerScroll: (boolean) enables vertical scrolling using two fingers.
  • HorizTwoFingerScroll: (boolean) enables horizontal scrolling using two fingers.
  • EmulateTwoFingerMinZ/W: (integer) play with this value to set the precision of two finger scroll.


Note: If you find that your hand frequently brushes your touchpad, causing the TapButton2 option to be triggered (which will more than likely paste from your clipboard), and you do not mind losing two-finger-tap functionality, set TapButton2 to 0.


Graphical Interfaces

GPointingDeviceSettings

GPointingDeviceSettings provides graphical on the fly configuration for several pointing devices connected to the system, including your synaptics touch pad. This application replaces GSynaptics as the preferred tool for graphical touchpad configuration through the synaptics driver.

Root terminal 48px.png
# pacman-g2 -S gpointing-device-settings


GNOME

Users of GNOME may have to edit its configuration as well, because in default it is set to disable tapping to click, horizontal scrolling and not to allow touchpad disabling while typing.To change these settings in Gnome 3:# Open System Settings.# Click Mouse and Touchpad.# Change the settings on the Touchpad tab.

Gnome settings daemon may override existing settings (for example ones set in xorg.conf.d) for which there is no equivalent in any of the graphical configuration utilities. It is possible to stop gnome from touching mouse settings at all:# Run dconf-editor# Edit /org/gnome/settings-daemon/plugins/mouse/# Uncheck the active settingIt will now respect your system's existing synaptics configuration.

Fine-tuning with synclient

Synclient is a command line utility to configure and query Synaptics driver settings.

The synclient monitor can display pressure and placement on the touchpad in real-time, allowing further refinement of the default Synaptics settings.

You can start the Synaptics monitor with the following command:

$ synclient -m 100

Where -m activates the monitor and the following number specifies the update interval in milliseconds.

I order for synclient to work you need to have the SHMConfig Option in your 20-synaptic.conf

/etc/X11/xorg.conf.d/20-synaptics.conf
…
Option "SHMConfig" "on"
… 

This monitor provides information about the current state of your touchpad. For example, if you move the mouse with the touchpad, the x and y values in the monitor will change. Therewith you can easy figure out your touchpad's dimension which is defined in the LeftEdge-, RightEdge-, BottomEdge- and TopEdge-Options.

The abbreviations for the parameters are as follow:

Abbreviation Description
time Time in seconds since the logging was started.
x, y The x/y coordinates of the finger on the touchpad. The origin is in the upper left corner.
z The pressure value. It represents the pressure you are using to navigate on your touchpad.
f Number of fingers currently touching the touchpad.
w Value that represents the finger width.
l,r,u,d,m,multi Those values represent the state of the left, right, up, down, middle and multi buttons pressed where zero means not pressed and one means pressed.
gl,gm,gr For touchpads which have a guest device, this are the associated button states for guest left, guest middle and guest right pressed (1) and not pressed (0).
gdx, gdy x/y coordinates of the guest device.

If a value constantly is zero, it implies that this option is not supported by your device.

Now use synclient to test new values. For example, to adjust minimum pointer speed:

synclient MinSpeed=0.5

To make the changes permanent, they will need to be put in your /etc/X11/xorg.conf.d/20-synaptics.conf file.

ALPS Touchpads

Warning: TODO needs to be rewritten for udev

For ALPS Touchpads, if the above configuration does not provide the desired results, try the following configuration instead:

 Section "ServerLayout"
   ...
   InputDevice    "USB Mouse" "CorePointer"
   InputDevice    "Touchpad"  "SendCoreEvents"
 EndSection
 Section "InputDevice"
       Identifier  "Touchpad"
   Driver  "synaptics"
   Option  "Device"   "/dev/input/mouse0"
   Option  "Protocol"   "auto-dev"
   Option  "LeftEdge"   "130"
   Option  "RightEdge"   "840"
   Option  "TopEdge"   "130"
   Option  "BottomEdge"   "640"
   Option  "FingerLow"   "7"
   Option  "FingerHigh"   "8"
   Option  "MaxTapTime"   "180"
   Option  "MaxTapMove"   "110"
   Option  "EmulateMidButtonTime"   "75"
   Option  "VertScrollDelta"   "20"
   Option  "HorizScrollDelta"   "20"
   Option  "MinSpeed"   "0.25"
   Option  "MaxSpeed"   "0.50"
   Option  "AccelFactor"   "0.010"
   Option  "EdgeMotionMinSpeed"   "200"
   Option  "EdgeMotionMaxSpeed"   "200"
   Option  "UpDownScrolling"   "1"
   Option  "CircularScrolling"   "1"
   Option  "CircScrollDelta"   "0.1"
   Option  "CircScrollTrigger"   "2"
   Option  "SHMConfig"   "on"
   Option  "Emulate3Buttons"   "on"
 EndSection

Advanced Configuration

Circular scrolling

Circular scrolling is a feature that Synaptics offers which closely resembles the behaviour of iPods. Instead of (or additional to) scrolling horizontally or vertically, you can scroll circularly. Some users find this faster and more precise. To enable circular scrolling, add the following options to the touchpad device section of /etc/X11/xorg.conf.d/20-synaptics.conf:

/etc/X11/xorg.conf.d/20-synaptics.conf
 Section "InputClass"
         ...
         Option      "CircularScrolling"          "on"
         Option      "CircScrollTrigger"          "0"
         ...
 EndSection

The option CircScrollTrigger may be one of the following values, determining which edge circular scrolling should start:

0    All Edges
1    Top Edge
2    Top Right Corner
3    Right Edge
4    Bottom Right Corner
5    Bottom Edge
6    Bottom Left Corner
7    Left Edge
8    Top Left Corner

Specifying something different from zero may be useful if you want to use circular scrolling in conjunction with horizontal and/or vertical scrolling. If you do so, the type of scrolling is determined by the edge you start from.

To scroll fast, draw small circles in the center of your touchpad. To scroll slowly and more precise, draw large circles.

Software Toggle

You may find it useful to have a software toggle that will turn on or off your touchpad, especially if it is extremely sensitive and you are doing a lot of typing. Please also see #Disable touchpad upon external mouse detection as that may be better solution, a matter of choice. The advantage here is you have the control, while the other solution has a daemon determine when to turn off the trackpad.

You will want to grab xbindkeys if you do not already have key binding software.

Then save this script to something such as /sbin/trackpad-toggle.sh:

/sbin/trackpad-toggle.sh
 #!/bin/bash
 
 synclient TouchpadOff=$(synclient -l | grep -c 'TouchpadOff.*=.*0')

Then finally add a key binding to use the script. It is best to call with xbindkeys like so (file ~/.xbindkeysrc):

~/.xbindkeysrc
 "/sbin/trackpad-toggle.sh"
     m:0x5 + c:65
     Control+Shift + space

Now just (re)start xbindkeys and Ctrl+Shift+Space will now toggle your trackpad!

Of course you could easily use any other keybinding software, such as the ones provided by Xfce4 and GNOME.

Tips

Firefox and special touchpad events

By default, Firefox is set up to do special events upon tapping or scrolling certain parts of your touchpad. You can edit the settings of those actions by typing about:config in your Firefox address bar. To alter these options, double-click on the line in question, changing "true" to "false" and vise versa.

To prevent Firefox from scrolling (backward/forward) through browser history and instead scroll through pages, edit these settings as shown:

mousewheel.horizscroll.withnokey.action = 1
mousewheel.horizscroll.withnokey.sysnumlines = true

To prevent Firefox from redirecting you to URLs formed from your clipboard content upon tapping the upper-right corner of your touchpad (or middle mouse button), set the following option to "false":

middlemouse.contentLoadURL = false

Opera: horizontal scrolling issues

Same as above. To fix it, go to Tools -> Preferences -> Advanced -> Shortcuts. Select "Opera Standard" mouse setup and click "Edit". In "Application" section:

  • assign key "Button 6" to command "Scroll left"
  • assign key "Button 7" to command "Scroll right"

External Resources

Synaptics TouchPad driver: [1]

Personal tools
Namespaces
Variants
Actions