Ubuntu 9.04 Touchpad Scroll Region

Jess has switched her laptop to Ubuntu and in the process there are some tweaks to be done. One of them was that her touchpad has a little area set apart for scrolling and the default option on Ubuntu was allowing scrolling for a small amount past that set apart area. Unfortunately, they've just updated those settings to be part of the HAL device settings rather than the Xorg.conf settings. So now there is not a nice clean GUI configuration program.

After some messing around I was able to figure it out though. You need to create an FDI policy in the directory "/etc/hal/fdi/policy". It doesn't seem to matter what you call this as long as it ends in ".fdi". So I called mine "touchpad.fdi". In this file we put:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="input.x11_driver" string="synaptics">
 <merge key="input.x11_options.RightEdge" type="string">5900</merge>
</match>
</device>
</deviceinfo>

(For more information on how to form this file see: https://wiki.ubuntu.com/X/Config/Input.)

If you follow these instructions and things don't seem to work, you might try switching the encoding option from "ISO-8859-1" to "UTF-8".

Anyway, save that text into a file like "/etc/hal/fdi/policy/touchpad.fdi". The next step (which was left out of 99% of the information I found online and made me very frustrated) is to restart HAL:

sudo /etc/init.d/hal restart

After HAL restarts, log out and then log back in.

If it found and read your file properly something should have changed. If you want to test to see if things are working at all you can try setting the RightEdge value (5900 in the above) to something small (I'll warn you that this will probably turn your entire touchpad into a vertical scroll area, however you can do some sneakiness to recover, first you can still access a terminal by accessing your menus using ALT+F1, and you can access the shutdown menu (not the logout menu sadly) with ALT+CTRL+DEL).

You'll need to play with that value in order to get it to work for you. I tried to be clever and calculate it from some information, but it didn't work, so [shrug] just play with it. I changed things about 200 at a time which was enough of a change to notice.

I hope this helps someone out.