This spec describes how to implement a graphical touchpad preferences application, and other supporting applications, to give users an easy out-of-the-box way to configure their touchpad device.


One of the problems many laptop users come across almost immediately after installing Ubuntu is that their touchpad does not work as they would like, and that there is no way to configure it.

Use cases

1. Alex has just finished installing Ubuntu on his new mobile computer. At the first logon he finds the touchpad default preferences uncomfortable: The mouse pointer always seems to jump while he is typing. He wants to disable the touchpad whenever he is typing.

2. From time to time Maria is sharing her laptop with her younger brother Tom. Tom has an unprivileged account on Maria's laptop and want to modify touchpad preferences just for his account.

3. John wants to modify his touchpad behavior. While making intermediate changes he wants to test the new behavior to see if he is comfortable with it.

Functional Overview

The implementation will consist of the following applications:

Preferences Application

Menu Entry: System > Preferences > Touchpad

The preferences application should:

Basic Preferences

The preferences application should support the following basic preferences, which should be suitable for most users.

Here's how this is implemented on OSX:


Advanced Preferences

Advanced users can click on an "Advanced" button which will give them access to every feature supported by their hardware.

synaptics(5) has a list of everything supported by the driver, we'll need to spec out how to display all these in the GUI, here's a set of screen-shots showing off how windows does this.

Note: the link here's a set of screen-shots results in http error 403 from some nginx server.

Techical Overview

Preferences Application

TODO: Describe technical details of preferences application here.


It's important that nothing relies on the presence of an Xorg.conf file, since in the future distributions may just stop including one. Even if that doesn't ever happen, the formatting of Xorg.conf is not really designed to be parsed or written by software, and generally when software attempts to modify the file, it either breaks customisations from the user, or otherwise just pisses them off.

Instead, let's use GCONF!

Configuration will be stored at //desktop/gnome/peripherals/touchpad/DEVICEID, where DEVICEID is a unique ID from HAL. We give each device it's own sub section so we can support multiple devices with different configurations.

Under each device would be all the preferences supported by the preferences application.

Applying the configuration

We need to apply touchpad configuration upon login, which can easily be done by creating a script and a .desktop file in /usr/share/gnome/autostart/ that references it.


Synaptics X Driver Changes

Open Issues


CategorySpec CategorySpec

GnomeTouchpadManager (last edited 2010-09-07 15:52:10 by intrader)