In previous blog entries (disabling the touchpad whilst typing and installing gsynaptics) I described how to enable SHMConfig in order to control the touchpad.
I had some feedback from at least two readers who could not enable SHMConfig, and when they tried to use gsynaptics or syndaemon, they were met with the error “You have to set ‘SHMConfig’ ‘true’ in xorg.conf or XF86Config“. The instructions provided in the post to enable SHMConfig using the /etc/hal/fdi/policy/shmconfig.fdi method did not appear to be working.
After a lot of troubleshooting work with Travis, we were able to determine why this was occuring, and how to resolve it.
Firstly, and briefly, the why. The HAL daemon (hald) keeps a cache in /var/cache/hald/fdi-cache. For some reason, hald was using this cache file, and not picking up the newly created shmconfig.fdi file.
Now the important part – how to resolve it! This is easy, you just need to remove the cache:
sudo rm /var/cache/hald/fdi-cache
Provided you have created the shmconfig.fdi file as described in the gsynaptics post, reboot your machine, and you should be able to load gsynaptics and setup syndaemon without being told SHMConfig needs to be set to true. The fdi-cache file will be recreated when you reboot, and you shouldn’t have any more problems.
A big thanks to Travis for helping to troubleshoot this one!
Hi Kayno -
Credit to yourself for cracking the problem – I just did what I was told!
Anyway, in my case, the syndaemon still worked. That is, the touchpad would not bounce around while I typed. It was just trying to invoke the Touchpad option in Preferences which produced the error. So in the scheme of things, a minor issue.
Talking about the syndaemon syntax, what’s your thoughts on adding the ‘-t’ switch? I believe ‘-t’ keeps the cursor active while you type while still disabling the cursor from jumping around.
You must be very careful with your thumbs when you type, Travis! I found my thumbs, hovering at the ready for the space, often brush the touchpad.
From the syndaemon man page:
The -t flag is a good suggestion – I guess it is the tapping/scrolling on the touchpad that causes the focus loss (from the window/textbox you I am typing in). I might give that a go – sometimes I do catch the unresponsive touchpad whilst it is locked out for a second!
Sadly, doesn’t work for me. gsynaptics works fine, syndaemon barfs with BadDevice. Ubuntu 9x.
Yup, That fixed it perfectly. Thanks for the post.
Rick
followed all above and after multiple reboots & removing cache, etc, finally got some success when I amended xorg.conf file itself.
ie. $sudo gedit /etc/X11/xorg.conf
and made sure that I added “SHMConfig” “true” in appropriate section, ie:
Section “InputDevice”
Identifier “Synaptics Touchpad”
Driver “synaptics”
Option “SendCoreEvents” “true”
Option “Device” “/dev/psaux”
Option “Protocol” “auto-dev”
Option “HorizEdgeScroll” “0″
Option “SHMConfig” “true”
EndSection
After reboot, was finally able to open Touchpad from the Startup menu without the bloody annoying “GSynaptics couldn’t initialize.
You have to set ‘SHMConfig’ ‘true’ in xorg.conf or XF86Config to use GSynaptics” message!
Appending the xorg.conf file is apparently not the preferred method of resolving this, but it’s the only one that worked for me, so there it is.
Thanks a lot! That fixed it!