Xorg server and HAL
Versions that use HAL
Xorg versions 1.4 through 1.7 (and optionally later versions) use HAL for several things related to input devices:
- Finding input devices at startup
Being notified of input device hotplugging (arrival & removal)
- Mapping system input devices to Xorg input driver modules (via .fdi files provided with Xorg input drivers)
- Setting input device options (via user-customized .fdi files)
HAL is not used by Xorg for output devices or any other devices, only input.
Future Versions
Since the HAL project has stopped development and deprecated itself, X.Org is planning to move off HAL in the future. Support for udev instead of HAL is currently in git master and will be in the upcoming X Server 1.8. At the time of writing this (March 1 2010), udev support was disabled by default and needs to be enabled at configure time with --enable-config-udev:
The currently planned replacements for the above functionality pieces are:
- Direct calls to OS-dependent device enumeration libraries (libudev on Linux, libdevinfo on Solaris, etc. - basically whatever HAL called to do this)
- Direct calls to OS-dependent device notification libraries (libudev on Linux, libsysevent on Solaris, etc. - basically whatever HAL called to do this)
- Input driver delivered files in a new xorg.conf.d directory that use new syntax for matching devices (see patches proposed on xorg-devel)
- User edited xorg.conf file.
Neither DeviceKit, nor the udisks/upower/etc. replacements provide any of this functionality for input devices, and the DeviceKit authors have indicated that they do not plan to provide such functionality, suggesting direct use of the OS interfaces such as libudev instead.
https://fedoraproject.org/wiki/Input_device_configuration has instructions on how the new system works.


