Zenwalk Linux

Ever tried Zen computing?

Touchpad

 

From Zenwalk Wiki

Jump to: navigation, search


This article is part of the Zenwalk HARDWARE wiki pages
Desktops | Laptops | Graphic Devices |Networking Devices | Peripherals | Printers

Synaptics is the name of a driver that provides support for the Synaptics Touchpad, which is used in most modern laptops. This article will show you how to install support for your laptop's touchpad.

Contents

[edit] Installation

The synaptics driver is included with X.org server 7.3 and later, which is installed by default on every Zenwalk release except Core (because of the lack of the X Server). All that is required is loading it in a Device section in the xorg.conf file.

The synaptics driver supports authentic Synaptic-brand touchpads as well as ALPS-brand touchpads. The devices are similar, differing only in resolution and specific features (the genuine Synaptics pad supports more features).

NOTE: It is not necessary to load the synaptics driver in the Modules section of xorg.conf.

[edit] Editing the xorg.conf File

X.org provides an unparalleled amount of control over the fine-tuning of a touchpad. You can configure your touchpad to have properties that are simply not possible to attain in Mac OS X or Windows.

When editing the xorg.conf file, you need to restart the X server for the changes to take effect. There are two ways of doing this:

  1. Use the logout mechanism of your desktop, this will cause the X Server to restart and you will presented with the login screen.
  2. Press Ctrl-Alt-Backpace (NOT delete), which will immediately kill the X Server and restart it.

Now comes the harder part. From the same root terminal, enter:

# geany /etc/X11/xorg.conf

Or, if you prefer another editor, substitute its name for "geany." Your system almost certainly has "vi" and "nano," so you could use one of those if you uninstalled Geany.


[edit] Synaptics Touchpad

Add this block of text somewhere in the document (near the other InputDevice sections would be ideal). Just make sure you're not breaking up an important section by doing so:

# **********************************************************************
# Synaptics Touchpad
# **********************************************************************
Section "InputDevice"
	Identifier  "Pad1" #this identifier must match the ServerLayout section
	Driver      "synaptics"
	Option      "Device"       "/dev/input/mouse0"
	Option      "Protocol"     "auto-dev"
	Option      "LeftEdge"     "1700"
	Option      "RightEdge"    "5300"
	Option      "TopEdge"      "1700"
	Option      "BottomEdge"   "4200"
	Option      "FingerLow"    "25"
	Option      "FingerHigh"   "30"
	Option      "MaxTapTime"   "180"
	Option      "MaxTapMove"   "220"
	Option      "MinSpeed"     "0.06"
	Option      "MaxSpeed"     "0.12"
	Option      "AccelFactor"  "0.0010"
	Option      "SHMConfig"    "on"
EndSection

Depending on your touchpad, you can do all sorts of neat things with this part of the file. Hopefully someone else will add a section to this article explaining the possibilities, but at the very least this will give you vertical scrolling.

[edit] ALPS Touchpad

For the ALPS touchpad there is a different block if the block above doesn't work for your touchpad:

# **********************************************************************
# ALPS Touchpad
# **********************************************************************
Section "InputDevice"
     Identifier  "Pad1"
     Driver  "synaptics"
     Option  "Device"        "/dev/input/mouse0"
     Option  "Protocol"      "auto-dev"
     Option  "LeftEdge"      "78"
     Option  "RightEdge"     "960"
     Option  "TopEdge"       "90"
     Option  "BottomEdge"    "720" #increase this number to make the horizontal scroll area smaller
     Option  "FingerLow"     "7"
     Option  "FingerHigh"    "8"
     Option  "MaxTapTime"    "180"
     Option  "MaxTapMove"    "110"
     Option "MaxDoubleTapTime"     "180"
     Option "SingleTapTimeout"     "180"
     Option "ClickTime"            "100"
     Option "FastTaps"             "10" 
#      Option  "EmulateMidButtonTime"   "75"
     Option  "VertScrollDelta"     "10"
     Option  "HorizScrollDelta"    "10"
     Option "VertEdgeScroll"       "true"
     Option "HorizEdgeScroll"      "true"
#      Option "VertTwoFingerScroll"  "false"
#      Option "HorizTwoFingerScroll" "false"
     Option  "MinSpeed"            "1.1"
     Option  "MaxSpeed"            "1.8"
     Option  "AccelFactor"         "0.3"
#      Option  "EdgeMotionMinSpeed"   "200"
#      Option  "EdgeMotionMaxSpeed"   "200"
     Option	"UpDownScrolling"      "true"
     Option	"LeftRightScrolling"   "true"
#      Option  "CircularScrolling"     "false" 
#      Option  "CircScrollDelta"       "0.1"
#      Option  "CircScrollTrigger"     "2"
     Option  "SHMConfig"              "true"
     Option  "Emulate3Buttons"        "true"
EndSection

[edit] Advanced Fine-Tuning with Synclient

Synclient is a command line utility that uses the SHMConfig properties of the synaptics X.org driver. You must have SHMConfig enabled in order to use it.

  1. Enable SHMConfig in xorg.conf
  2. Restart the X Server
  3. Open and xterm and run:
synclient -m 1
  1. Any input on the touchpad is shown in the window. The X and Y coordinates of your finger movement will be reported. Move your finger close to the edges of the touchpad to determine the LeftEdge RightEdge TopEdge and BottomEdge properties of your device. Any space/threshold outside of the RightEdge and BottomEdge is your vertical and horizontal scroll area, respectively.
  2. To fine tune your vertical scroll bar, move your finger all the way to the right edge of the touchpad. Move your finger back to the left to determine where you'd like the scroll area to begin and use this number as the RightEdge value
  3. Press Ctrl-C to exit synclient
  4. Test your numbers by running:
synclient ParameterName=Value

the values affect the touchpad immediately without restarting X

Example:

synclient AccelFactor=0.2
synclient RightEdge=980

When you've found the numbers that work best for you, copy them into /etc/X11/xorg.conf to make them stick.

[edit] Driver Options Explained

The synaptics driver offers a number of options that can be customized to suit your needs. The following list (by no means complete) describes the InputDevice options we declared in the Xorg config:

Identifier is the name of this input device you've specified in the server layout section above.

Device defines where your synaptic device is located. See Troubleshooting to find your device handler if it isn't /dev/input/mouse0 or /dev/input/ts0 or the usual /dev/psaux for you.

LeftEdge, RightEdge, TopEdge and BottomEdge are integer values which indicate the dimensions of your touchpad as x or y coordinates. Scrolling functionality appears to rely on these values, so they must be specified.

FingerLow and FingerHigh are integer values which indicate the 'pressure value' or sensitivity at which the driver counts a touch (pressure value goes above FingerHigh) or a release (pressure value drops below FingerLow). Low values make the touchpad more sensitive to touches.

MaxTapTime is an integer value that defines the maximum time for detecting a tap (in milliseconds).

MaxTapMove is an integer value which defines the maximum movement of your finger for detecting a tap.

MinSpeed and MaxSpeed are set to determine the minimum and maximum speed factor as a ratio to the desktop. A floating point (decimal) value is expected. A value of 1 means that a horizontal swipe of the finger across the pad should move the cursor exactly the width the desktop. Values between 0.3 and 1 are similar to the range offered in the Windows Mouse control panel.

AccelFactor is the acceleration factor, which is a ratio between the MinSpeed and MaxSpeed values. Defined as a floating point value. Values above 0.5 provide aggressive acceleration on my touchpad.

VertScrollDelta and HorizScrollDelta is an integer value defining scrolling speed. Smaller values result in more granular (precise) scrolling, while larger values scroll more of the screen at a time.

TwoFingerScroll enables two-finger scroll similar to the scrolling function on Apple MacBooks. This is only supported on genuine Synaptics touchpads, not ALPS touchpads.

PalmDetect is a boolean value that enables (1) or disables (0) palm detection, so that the touchpad is not influenced by the palm of your hand while you are typing.

FastTaps unknown

VertEdgeScroll and HorizEdgeScroll unknown

SHMConfig is a boolean value (on/off) for activating or deactivating shared memory. This needs to be enabled if you want to monitor or configure your synaptics device with clients as synclient, which will be using in this article. Shared memory is also required if you want to use Udev rules to disable the touchpad automatically when external mouse is plugged in (see the relevant section below).--jupiter 16:13, 6 June 2008 (MDT)

[edit] Troubleshooting

[edit] Determining the Brand of Touchpad

Open a terminal and type:

root[zenwalk]# dmesg|grep input:

Which will return a line similar to the following:

input: AlpsPS/2 ALPS GlidePoint as /class/input/input1

[edit] Determining the /dev file for the Touchpad

[edit] External Links

Personal tools