From the synaptics driver man page:
The perceived physical edges may be adjusted with the AreaLeftEdge, AreaRightEdge,
AreaTopEdge, and AreaBottomEdge options. If these values are set to something other than
the physical edges, input in the space between the area edge and the respective physical
edge is ignored. Note that this reduces the available space on the touchpad.
And that's exactly what we want, right? Therefore, we are going to have to come up with a value for AreaBottomEdge
, get the other three using xinput
, and write a custom xorg.conf
.
First of all, we need to find some information about our touchpad. In a terminal, run xinput list
. For me, the output looks like this:
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PIXART USB OPTICAL MOUSE id=11 [slave pointer (2)]
⎜ ↳ ETPS/2 Elantech Touchpad id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ Chicony USB 2.0 Camera id=12 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
My touchpad is identified as ETPS/2 Elantech Touchpad
. Now we need to find out some information for creating the xorg.conf
later. Let's figure out what values the driver is currently using for the touchpad edges by running:
xinput list-props "ETPS/2 Elantech Touchpad"|grep Edges
which, for me, outputs:
Synaptics Edges (280): 97, 2339, 56, 988
Save these values for later.
Now, create a new file named /etc/X11/xorg.conf
if it doesn't already exist, open it using your favorite text editor as root, and put this in it, using the values we found earlier:
Section "InputDevice"
Identifier "touchpad"
Driver "synaptics"
Option "AreaLeftEdge" "97" # the first value from "Synaptics Edges"
Option "AreaRightEdge" "2339" # the second value
Option "AreaTopEdge" "56" # the third value
Option "AreaBottomEdge" "988" # the fourth value - change this
EndSection
Remember that, for best results when creating this file, you must use the values that you found yourself. Do not use mine. (I'm not calling you an idiot or anything; I'm just making sure so that you don't screw this up.)
Also, you are going to have to change the value for AreaBottomEdge
so that it is less than the original and meets your requirements. You are going to have to experiment with this until you are satisfied with the results.
Also remember to log out and log back in after saving the file for the changes to take effect.
Below is what I have in the file /usr/share/X11/xorg.conf.d/50-synaptics.conf
and works as intended.
Section "InputClass"
Identifier "touchpad catchall"
Driver "synaptics"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Option "TapButton2" "3"
Option "TapButton3" "2"
EndSection
Alternatively, you can create a script as described in
Execute a command 20 seconds after the desktop is booted
or include the commands below in $HOME/.xprofile
sleep 20
synclient TapButton2=3
synclient TapButton3=2
Best Answer
The simple initial approach would be to simply adjust your touchpad configuration, perhaps tun your sensitivity down, especially if it moves that much simply from taking your finger off the pad. Go to System Settings>Mouse and TouchPad> drag the bar next to TouchPad cursor speed to the left to turn down.
If the above option does not resolve the issue, see this link: http://memobadz.wordpress.com/2014/02/16/lenovo-yoga-pro-2-on-ubuntu/
which discusses several options for hardware configuration that you could explore. In reference to your issue, the section on Jumpy Touchpad and lack of middle button seems appropriate. Here is their suggestion:
Try creating the file
/etc/X11/xorg.conf.d/50-synaptics.conf
with this content:You can play with the values at runtime using synclient.
Amended:
To create above file, from command line:
Add the listed content to the file using gedit, then save and exit
Make destination folder, from command line (#added line per comment from OP).
To move file to appropriate folder, from command line
Good luck.