##(see the SpecSpec for an explanation) * '''Launchpad Entry''': UbuntuSpec:desktop-lucid-xorg-halsectomy == Summary == In our vendetta to move away from hal, handling X.org input devices is one of the last items. == Release Note == TODO when spec is beta. == Rationale == Hal is being [[https://wiki.ubuntu.com/Halsectomy|deprecated]] and is not maintained upstream any more. It has a lot of design and maintenance problems, takes extra time on boot, and most things in Ubuntu's default installation do not use it any more. Applications should use udev directly nowadays, which also has all the information about devices, and similar customization mechanisms (through udev rules). == Design == * Switch X.org to detect input devices from udev instead of hal. * Create udev rules to set proper attributes (driver, keyboard layout, touchpad quirks, etc.) to input devices, corresponding to the current hal fdi files. * Upgrade to new wacom tablet driver which [[http://lists.x.org/archives/xorg-devel/2009-October/002603.html|does not rely on faking multi-device devices]] in hal * Test other less common input devices (like touch screens); drivers which rely on an one-to-one correspondence to physical input/eventX devices should just require fdi → udev rules adaptions * If there are insurmountable regressions, make the call before beta-1 whether to keep this, or revert to hal == Implementation == === X.org === Julian Cristau, an X.org Debian maintainer, created a [[http://cgit.freedesktop.org/~jcristau/xserver/|branch]] for using udev for input device detection, and [[http://thread.gmane.org/gmane.comp.freedesktop.xorg.devel/2108|discussed it upstream]]. It now became an official 1.8 goal, and the branch was generally well received. Dan Nicholson proposed and posted patches for a new device input configuration system that does not rely on hal fdi files or udev rules [[http://lists.x.org/pipermail/xorg-devel/2009-October/002484.html]] We need to backport this branch to 1.7, which is the planned X.org server version for Lucid. === udev rules === * '''Keyboards''': The main thing that needs to be configured here is the keyboard layout/model/variant/options. This was previously done with `/usr/share/hal/fdi/policy/10osvendor/10-x11-input.fdi` and `/usr/lib/hal/debian-setup-keyboard`. MartinPitt wrote an [[http://people.canonical.com/~pitti/tmp/65-xorg-evdev.rules|udev rule]] to replace those and use -evdev by default for all input devices and apply the configured system keyboard layout. Later udev rules can then overwrite the driver for particular devices (similar to what happened with hal). * '''Mice''': Real mice do not generally need configuration and should work with -evdev without any special udev rules. There were no specific hal fdi rules either. * '''synaptics touchpads:''': These need to be identified as such, and switched to use the `synaptics` driver. On some models they also need particular quirks applied. MartinPitt wrote [[http://people.canonical.com/~pitti/tmp/66-xorg-synaptics.rules|udev rules]] for those which correspond to the hal fdi files. * '''wacom''': The latest upstream version dropped the requirement for faking multiple devices in hal with fdi files and instead does the detection all by itself. We need to upgrade to that version, and test it. == Test/Demo Plan == TODO when spec is beta. ---- CategorySpec