====== Synaptics Touchpad Tricks ======
**NOTE!! This page is completely out of date and will likely not work for you. It is here for historical reference only!**
===== Intro =====
Although I've been using Linux for a desktop for quite some time, it wasn't that long ago that I installed it on my laptop. Since then I've been exploring all of the new hardware that you usually only find on a laptop, such as a touchpad. I'm using a relatively cheap, yet pretty powerful Gateway MX6931 which has a built-in Synaptics Touchpad. The first order of business is making sure that you have a Synaptics touchpad and not something else like Alps.
===== Verifying It's a Synaptics Touchpad =====
This is really pretty easy. All you have to do is check out the file ''/proc/bus/input/devices'' and you should have a section similar to this:
I: Bus=0011 Vendor=0002 Product=0007 Version=0000
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
S: Sysfs=/class/input/input2
H: Handlers=mouse1 event2 ts1
B: EV=b
B: KEY=6420 0 70000 0 0 0 0 0 0 0 0
B: ABS=11000003
If you do, let's plow forward into the fun stuff.
===== Modifying Your xorg.conf =====
Now, we need to open your ''xorg.conf'' file and make sure that a few key things are set before we move forward. This file should be located in the ''/etc/X11'' directory. Before opening this file with an editor, **MAKE A BACKUP!!!**. Seriously, **MAKE A BACKUP**. That said, open that file up and we should see a section in there like this:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "SHMConfig" "on"
EndSection
You may have more lines in it than that, but the one thing that we are really concerned with before moving forward is this line:
Option "SHMConfig" "on"
Make sure that if it does not exist, you add it. This will allow you to edit the config on the fly without having to restart X. This is essential to do anything else from here on out.
===== High Level Stuff With gsynaptics =====
The first thing to do is install qsynaptics. This is a nice GUI based editor that will allow you to make some high level changes to your touchpad settings. It's handy for some basic stuff. So, if you are on a Debian based distro (like Ubuntu), you can just run on the command-line:
$ sudo apt-get install gsynaptics
After that's installed, go ahead and run it:
$ gsynaptics
This will open up the GUI for you and most of the options inside should be self explanatory.
===== Digging Deeper With synclient =====
So, now that you've gone through and done some basic setup, it's time to dig in and really start tweaking with ''synclient''.
If you run ''synclient -?'' from the command-line, you should see something similar to this:
$ synclient -?
Usage: synclient [-m interval] [-h] [-l] [-V] [-?] [var1=value1 [var2=value2] ...]
-m monitor changes to the touchpad state.
interval specifies how often (in ms) to poll the touchpad state
-h Show detected hardware properties
-l List current user settings
-V Print synclient version string and exit
-? Show this help message
var=value Set user parameter 'var' to 'value'.
Now, if you want to see **all** the settings for your touchpad as they currently exist, type ''synclient -l'':
$ synclient -l
Parameter settings:
LeftEdge = 1872
RightEdge = 5950
TopEdge = 1712
BottomEdge = 4144
FingerLow = 25
FingerHigh = 30
MaxTapTime = 180
MaxTapMove = 220
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
FastTaps = 0
EmulateMidButtonTime = 75
VertScrollDelta = 60
HorizScrollDelta = 0
VertEdgeScroll = 1
HorizEdgeScroll = 1
VertTwoFingerScroll = 0
HorizTwoFingerScroll = 0
MinSpeed = 0.0822368
MaxSpeed = 0.197368
AccelFactor = 0.00164474
EdgeMotionMinZ = 30
EdgeMotionMaxZ = 160
EdgeMotionMinSpeed = 1
EdgeMotionMaxSpeed = 304
EdgeMotionUseAlways = 0
UpDownScrolling = 1
LeftRightScrolling = 1
UpDownRepeat = 1
LeftRightRepeat = 1
ScrollButtonRepeat = 100
TouchpadOff = 0
GuestMouseOff = 0
LockedDrags = 0
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 6
LBCornerButton = 7
TapButton1 = 1
TapButton2 = 2
TapButton3 = 3
CircularScrolling = 0
CircScrollDelta = 0.1
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 1
PalmMinWidth = 10
PalmMinZ = 200
CoastingSpeed = 0
PressureMotionMinZ = 30
PressureMotionMaxZ = 160
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
As you can see, there are many, many options to explore here. As stated in the help for ''synclient'', you can use ''synclient var=value'' to change settings on the fly. Personally, the main reason I started looking around at options for the touchpad was because, on my touchpad, I had a "divider ridge" for the vertical scrolling section on the right hand side that was supposed to separate off the scroll area. I had a large area of "spillover" into my normal movement area that ended up being usable only for scrolling. This was rather annoying to say the least. So in my case, the original setting for ''RightEdge'' was set at about ''4760''. I just started to tweak that value up with ''synclient RightEdge=5000'' and kept climbing until I settled on the value above for my setting, which moved my movement area all the way over to the ridge that is supposed to separate movement area from scroll area. This is just one example of what you can do with these settings.
Another fun thing you can do is make your vertical scrolling into a "Mac style" scroll (i.e. the 2 finger scroll). You can do this with the following:
$ synclient VertEdgeScroll=0 VertTwoFingerScroll=1
Now just slide 2 fingers down across the pad and down you scroll, just like a Mac.
Another, either handy or annoying (depending on who you are), thing that you can set up are corner buttons. There are 4 settings that I have in my config:
RTCornerButton = 2
RBCornerButton = 3
LTCornerButton = 6
LBCornerButton = 7
These correspond to mouse button numbers. Mouse button 2 is a middle click, 3 is a right click and 6 and 7 are special. Basically, what those settings mean is that I can tap the **R**ight **T**op corner of the touchpad (in the scroll area) to do a middle click, the **R**ight **B**ottom corner of the touchpad to do a right click. The 6 and 7 buttons (the left corners of the touchpad), function as the Back and Forward buttons in your browser, respectively.
So, those are some things to get you started. Most of the settings should be self-explanatory in terms of the names, so happy tweaking!
===== Making it "Stick" =====
So now if you've found some settings that you changed to better suit your use, you now have to add those to your ''xorg.conf'' so that they will stay in effect after a reboot. If you didn't do it earlier do it now: **MAKE A BACKUP** of your ''xorg.conf'' file. Once that is done, open up ''/etc/X11/xorg.conf'' in your favorite editor and go down to the Synaptics section again. For all of the settings that you wish to preserve, you simply add an "Option" line to your config. Mine looks like this:
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "SHMConfig" "on"
Option "RightEdge" "5950"
Option "RTCornerButton" "2"
Option "RBCornerButton" "3"
Option "LTCornerButton" "6"
Option "LBCornerButton" "7"
EndSection
Save and you are done. The next time you reboot, those options will be loaded with X.
===== More Info =====
[[http://web.telia.com/~u89404340/touchpad/|Synaptics Driver homepage]]