Tuesday, November 24, 2009

SHM config in synaptics

This is an addendum to Why SHMConfig is off by default.

SHM in synaptics provided two functionalities: run-time configuration and hardware monitoring.

run-time configuration works by having the driver configuration exposed as a shared memory segment and letting another process change this state. hw monitoring works by dumping the hw state read from the device into the shared memory and then having another process print this state.
synclient was the default UI (though syndaemon used SHM as well).

X Server 1.6 introduced input device properties, a generic way to attach information to input devices. The information can be attached by drivers or clients, and both drivers and clients are notified about changed values. Hence, it's a good vehicle for device-specific configuration.

  • synaptics 1.0 had input device property support in the driver, but SHM configuration is still available.
  • synaptics 1.1 had synclient and syndaemon use input device properties by default, but SHM configuration is still available.
  • synaptics 1.2 (current release) has configuration through SHM removed from both the driver and synclient/syndaemon and the SHM area is not writable by the user anymore.
All releases support hardware monitoring through SHM. However, there's little reason to enable it these days unless a developer asks you to do so to get more information on the data the touchpad provides. I haven't asked anyone for the monitoring output for months, usually the data from the kernel is enough.

The following GUI tools use properties:
  • gnome-mouse-properties + gnome-settings-daemon
  • gsynaptics (merely a wrapper around synclient). discontinued, see gpointing-device-settings.
  • gpointing-device-settings
  • synaptiks
(not sure what other KDE tools there are)


Tomasz said...

You write about gnome-mouse-properties. But in GNOME shipped in latest Ubuntu and Fedora g-m-p lost option to disable touchpad. Entirely, not only when typing. Loss o this option is serious usability grief for my girlfriend, which uses trackpoint exclusively.

Peter Hutterer said...

I wrote most of the patch for g-m-p and there was no "disable touchpad" option. Checking the F11 CVS sources, there's no such option either.
Now we just ship what's upstream,
I don't know what Ubuntu provides or provided.

Anyway, you might want to look at
https://bugzilla.gnome.org/show_bug.cgi?id=594831. Disabling the touchpad will soon be possible.

Kevin Kofler said...

> not sure what other KDE tools there are

There's kcm_touchpad, which we are now shipping in Fedora. The current version (which we are shipping) uses input device properties.


I wish we had more persons like Peter that work for the x.org realm...
Peter you are an idol for many that adore open source!
Sometime I hope i can join your ranks.