two fingers scrolling on a linux synaptics notebook touchpad with X.org 7.4 (xorg-server 1.5)
X.org version 7.4 with xorg-server 1.5 introduces a new way of handling input devices (keyboards, mouses, touchpads, trackball, etc..).
Instead of using some configuration rules in xorg.conf like in Xorg 7.3 and previous versions, input devices are now automatically configured and enabled in Xorg once the system found them.
This process is called Xorg input hotplugging and relies on HAL and Dbus to notify Xorg of additions or removing of input devices. This is a good step forward for Xorg and Linux as Desktop system as it removes all the problems related on having configurations hard coded in the xorg.conf file.
X.org Input Hotplugging and Synaptics Touchpads
Obviously this change introduces differences in how the various input devices are configured. After Archlinux, the linux distribution I use, has upgraded its packages to Xorg 7.4 I had to modify some of the configurations I had for my synaptics touchpad. Obviously I didn't want to loose the two fingers scrolling.
You will need the following packages: xf86-input-evdev and xf86-input-synaptics (your linux distribution might have called them differently). Moreover you will need to have HAL and Dbus enabled and correctly working in your system.
As the new input discovering and configuration now relies on HAL, the synaptics touchpad configurations will be inserted in an HAL .fdi policy rule file. You should find some examples of such files under /usr/share/hal/fdi/policy/10osvendor/ (your distribution might use a different path). Those files are XML policies rules used for configuring hardware devices.
By default HAL uses the rules available at /usr/share/hal/fdi/. Configurations and changes to those rule files should be made inserting modified policy files in /etc/hal/fdi/. Policies files inserted into that folder will have priority on the rules available by default in /usr/share/hal/fdi/.
So.. to configure a Synaptic Touchpad you can create a file called 11-x11-synaptics.fdi in your /etc/hal/fdi/policy/ folder.
Remember that each time you change a HAL policy file you have to restart the HAL daemon and, if the policy file are relevant to Xorg, it's better to also restart Xorg.
11-x11-synaptics.fdi
This is the content of my configuration file:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.touchpad">
<match key="info.product" contains="Synaptics TouchPad">
<merge key="input.x11_driver" type="string">synaptics</merge>
<!-- Arbitrary options can be passed to the driver using
the input.x11_options property since xorg-server-1.5. -->
<!-- EXAMPLE:
<merge key="input.x11_options.LeftEdge" type="string">120</merge>
-->
<!-- Added by Fabio Varesano using setting from xorg.conf after X.org update to 1.5.x
Following the old xorg.conf settings
Section "InputDevice"
Identifier "Touchpad"
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 "VertScrollDelta" "100"
Option "MinSpeed" "0.06"
Option "MaxSpeed" "0.12"
Option "AccelFactor" "0.0010"
Option "SHMConfig" "on"
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
EndSection
-->
<merge key="input.x11_options.LeftEdge" type="string">1700</merge>
<merge key="input.x11_options.RightEdge" type="string">5300</merge>
<merge key="input.x11_options.TopEdge" type="string">1700</merge>
<merge key="input.x11_options.BottomEdge" type="string">4200</merge>
<merge key="input.x11_options.FingerLow" type="string">25</merge>
<merge key="input.x11_options.FingerHigh" type="string">30</merge>
<merge key="input.x11_options.MaxTapTime" type="string">180</merge>
<merge key="input.x11_options.MaxTapMove" type="string">220</merge>
<merge key="input.x11_options.VertScrollDelta" type="string">100</merge>
<merge key="input.x11_options.MinSpeed" type="string">0.10</merge>
<merge key="input.x11_options.MaxSpeed" type="string">0.70</merge>
<merge key="input.x11_options.AccelFactor" type="string">0.00150</merge>
<merge key="input.x11_options.SHMConfig" type="string">on</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">1</merge>
<merge key="input.x11_options.HorizEdgeScroll" type="string">1</merge>
<merge key="input.x11_options.TapButton1" type="string">1</merge>
<merge key="input.x11_options.TapButton2" type="string">2</merge>
<merge key="input.x11_options.TapButton3" type="string">3</merge>
</match>
<match key="info.product" contains="AlpsPS/2 ALPS">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
<match key="info.product" contains="appletouch">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
<match key="info.product" contains="bcm5974">
<merge key="input.x11_driver" type="string">synaptics</merge>
</match>
</match>
</device>
</deviceinfo>
For your reference I inserted in the file my old xorg.conf touchpad settings. They are commented into the HAL configuration file and have been deleted into xorg.conf as no more used.
You can see that the new settings are pretty similar to the old ones: it's just changed the syntax but the settings name and some values are actually the same.
As you can note by comparing the speed and acceleration values from the current configuration and the old one seems that the new Synaptics Drivers have a lower sensitivity. So I had to make those values higher to get the same pointer speed I was used to. The affected values are MinSpeed, MaxSpeed and AccelFactor.
Moreover, as tapping and scrolling now have to be explicitly enabled, we now have 5 new settings: VertEdgeScroll, HorizEdgeScroll, TapButton1, TapButton2 and TapButton3. The first two enabled vertical and horizontal edge scrolling while the last three enable tapping.
Changes to xorg.conf
Obviously there are settings in xorg.conf which are now useless.
In the ServerLayout section you might comment out (add a # at the beginning of the line) each InputDevice line as we no more use input devices configured in xorg.conf.
Section "ServerLayout"
Identifier "Simple Layout"
Screen 0 "aticonfig-Screen[0]" 0 0
# InputDevice "Mouse1" "CorePointer"
# InputDevice "Touchpad" "SendCoreEvents"
# InputDevice "Keyboard1" "CoreKeyboard"
EndSection
Then we will have to comment out each InputDevice section we migh have.
Always remember to restart HAL and Xorg once doing such changes.



Works for me!
Hi and thanks, I downgraded last week after getting frustrated with this new configuration but yesterday I decided to upgrade my system completely. Found this post in a google search. Your settings work fine for me. But I had one problem: I had to add those settings to the /etc/hal/fdi/policy/shmconfig.fdi as mentioned by Jay. The mouse was on crack until I did that. I also added those settings to the regular files in the /etc/ and /usr/share hal directories.
Thanks for sharing, it finally works and my system can be up to date again. I also noticed that using Hal solves a lot of other problems. Like my sound, but another story.
Regards
Clinton Skakun
thanks a bundle :D
Thanks a bundle for this,
was like the rest also struggling getting my lill acer one back to life again in X.
now tapping and scrolling works like a charm ^_^
all the Best,
William
Thanks! A few tweaks of
Thanks! A few tweaks of mouse sensitivity + your config changes worked like a charm!
Thanks, thanks, thanks. I'm
Thanks, thanks, thanks. I'm crying from happiness :). 2 weeks struggling with the new xorg, and than this post... Works perfectly on my Samsung NC10.
:-) I'm glad you find it
:-) I'm glad you find it useful.
Thank you mate, it works
Thank you mate, it works perfectly!
Keep up the good work!!!
Small correction to my previous post
Hi,
The values given at the bottom of my reply are the touch pad edge values. Im sorry about my writting :)
No good for Lenovo R61
Hi,
I am fixing the issues after the last system update as many of others:)
With the new xorg now Im running with NO xorg.conf.
Now everything is working fine other than the touch pad.
It is not responding for tapping and scrolling and I gave a try with your settings but no luck.
I think may be I will have to find the exact valuse for
the followings. But I have no idea how to find them at the moment.
1700
5300
1700
4200
Thanks in advance for any help.
Did you tried to get the
Did you tried to get the correct values using synclient?
Do you still have the values
Do you still have the values which worked on your old xorg.conf? You could use them as I did not changed them in the upgrading from Xorg 7.3 to 7.4.
Ah.. and always remember to restart hal using /etc/rc.d/hal restart issued by root.
Its working now !!
Hi,
Thanks for the reply.
I managed to get the tapping and scrolling work with the touch pad.
For some reason the 11-x11-synaptics.fdi never worked for me. I had to add /etc/hal/fdi/policy/shmconfig.fdi with all the options and it worked well after a reboot.
Cheers,
Jay
Does not work for me
I also wanted to say that the solution as shown in this blog does not work for me. I run a Samsung nc10 with linux Mint 6 (which in essence is Ubuntu 8.10).
So, I am also very much interested in a more precise description of the workaround.
I'm sorry but I can't help
I'm sorry but I can't help you more. I'm definitely a beginner in this field.
You should ask for help to the Xorg mailing list.
touchpad
What were the settings for /etc/hal/fdi/policy/shmconfig.fdi with all the options?
I have nothing in this and have had problems with my touchpad for months.
tia
I'm sorry.. but I don't have
I'm sorry.. but I don't have that file. No idea what it is needed for you.
I'm glad it worked .. but I
I'm glad it worked .. but I really would like to know why it didn't worked with the standard file name.
Take care.
Post new comment