After the recent upgrade in ArchLinux of xorg-server from 1.4.x to 1.5.x my thrusty Logitech Marble FX trackball did not work entirely. The trackball does not have a dedicated scroll wheel, but by pressing a button, and using the trackball, you can scroll both vertical and horizontal.
In order to get the emulated scroll working again you first have to update the evdev driver (the xf86-input-evdev package), as version 2.0.7 doesn’t support the needed options.
I use the xf86-input-evdev-git PKGBUILD from aur (which depends on xkeyboard-config-git) which works fine.
Once you have build the packages and installed them (remove the conflicting packages by using pacman -Rd packagename) you will have to create a Hal fdi file, I created “/etc/hal/fdi/policy/11-x11-mouse.fdi” containing:
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.mouse">
<match key="info.product" contains="PS2++ Logitech Mouse">
<merge key="input.x11.Protocol" type="string">ExplorerPS/2</merge>
<merge key="input.x11_options.Buttons" type="string">7</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.EmulateWheel" type="string">True</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">8</merge>
<merge key="input.x11_options.EmulateWheelInertia" type="string">30</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">False</merge>
</match>
</match>
</device>
</deviceinfo>
Now shutdown X, restart hal and X and the emulated scroll whell should work just fine. I have the following output in my “/var/log/Xorg.0.log”:
(II) config/hal: Adding input device PS2++ Logitech Mouse (**) PS2++ Logitech Mouse: always reports core events (**) PS2++ Logitech Mouse: Device: "/dev/input/event3" (II) PS2++ Logitech Mouse: Found 4 mouse buttons (II) PS2++ Logitech Mouse: Found x and y relative axes (II) PS2++ Logitech Mouse: Configuring as mouse (**) Option "Emulate3Buttons" "False" (II) PS2++ Logitech Mouse: Forcing middle mouse button emulation off. (**) Option "EmulateWheel" "True" (**) Option "EmulateWheelButton" "8" (**) Option "EmulateWheelInertia" "30" (**) Option "YAxisMapping" "4 5" (**) PS2++ Logitech Mouse: YAxisMapping: buttons 4 and 5 (**) Option "XAxisMapping" "6 7" (**) PS2++ Logitech Mouse: XAxisMapping: buttons 6 and 7 (**) PS2++ Logitech Mouse: EmulateWheelButton: 8, EmulateWheelInertia: 30, EmulateWheelTimeout: 200 (II) XINPUT: Adding extended input device "PS2++ Logitech Mouse" (type: MOUSE)