Well I did a lot of research and finally got it working. Here's a little tutorial for those who might be interested.
First, you need SHMConfig enabled. (see
here.) As the tutorial says, first run the following. (In my case i used mousepad instead of gedit because I use xfce)
Code:
gksudo gedit /etc/hal/fdi/policy/shmconfig.fdi
Then put this into the file:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="input.x11_driver" string="synaptics">
<merge key="input.x11_options.SHMConfig" type="string">on</merge>
</match>
</device>
</deviceinfo>
Second you need to test the touchpad to see if it actually recognizes multiple fingers. You do this by running
(that last number is the amount of milliseconds it takes to refresh) Use ctl-c to stop. anyway, the output will be lines and lines of this
Code:
~ $ synclient -m 250
216.975 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
time x y z f w l r u d m multi gl gm gr gdx gdy
213.969 2061 3543 61 1 4 0 0 0 0 0 00000000 0 0 0 0 0
214.224 2240 3185 61 1 4 0 0 0 0 0 00000000 0 0 0 0 0
214.474 1 5855 2 1 5 0 0 0 0 0 00000000 0 0 0 0 0
214.724 1 5855 3 1 5 0 0 0 0 0 00000000 0 0 0 0 0
214.974 2076 2813 57 1 11 0 0 0 0 0 00000000 0 0 0 0 0
215.225 2254 2482 63 1 13 0 0 0 0 0 00000000 0 0 0 0 0
215.475 2271 2896 63 1 12 0 0 0 0 0 00000000 0 0 0 0 0
215.725 2144 2593 63 1 13 0 0 0 0 0 00000000 0 0 0 0 0
215.975 2325 2551 63 1 14 0 0 0 0 0 00000000 0 0 0 0 0
216.225 2261 2787 63 1 14 0 0 0 0 0 00000000 0 0 0 0 0
216.475 1854 2738 63 1 12 0 0 0 0 0 00000000 0 0 0 0 0
216.725 1 5855 1 1 5 0 0 0 0 0 00000000 0 0 0 0 0
216.975 1 5855 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
Now comes time to analyze the data. (This is thanks to jnjackin at ucalgary
here. So under "
f" you will see either a 0, 1, or 2 as it monitors what you do with the touchpad. If it only reads 0 or 1, that means that the touchpad is not recognizing multiple fingers. If it reads a 2, that means that it does, and you're probably not reading this thread. Anyway, so if it doesn't read a 2, this means we will have to emulate the two-finger scrolling.
Third you need to emulate a two-finger press by using both the depth (z) and width (w) differences between one finger and two. And you must set these values by changing variables called EmulateTwoFingerMinZ and EmulateTwoFingerMinW. This is where I ran into problems because the file that holds these values was in two different directories for me:
/etc/hal/fdi/policy/11-x11-synaptics.fdi and
/usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi
They both have the same name, however, the file that is in /etc/hal... seems to be the one that actually made a difference for me. If you don't have this file in this location, use the other. And always remember to create a backup the file before altering it. Okay, now here's what I did (i will use gedit to be consistent, i actually used mousepad bc im in xfce)
Code:
gksudo gedit /etc/hal/fdi/policy/11-x11-synaptics.fdi
And then I added the following so that it finally looked like this
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.touchpad">
<merge key="input.x11_driver" type="string">synaptics</merge>
<merge key="input.x11_options.SHMConfig" type="string">On</merge>
<merge key="input.x11_options.EmulateTwoFingerMinZ" type="string">40</merge>
<merge key="input.x11_options.EmulateTwoFingerMinW" type="string">7</merge>*
<merge key="input.x11_options.VertTwoFingerScroll" type="string">1</merge>
<merge key="input.x11_options.HorizTwoFingerScroll" type="string">1</merge>
<merge key="input.x11_options.VertEdgeScroll" type="string">0</merge>
<merge key="input.x11_options.TapButton1" type="string">1</merge>
<merge key="input.x11_options.TapButton2" type="string">3</merge>
<merge key="input.x11_options.TapButton3" type="string">2</merge>
</match>
</device>
</deviceinfo>
BUT your values may vary from what is above. And you must judge your values from the output of synclient. (from jnjackin's page)
There. Phew. Three agonizing steps that I finally figured out after hours of searching. Hope this helps at least someone. If you have any questions, feel free to post on this thread.
Bookmarks