- UPower, a D-Bus service for dealing with power management
- udisks, a D-Bus interface for dealing with storage devices
- media-player-info, information about portable media players
* <a href="http://projects.gnome.org/NetworkManager">NetworkManager</a>, <a href="http://wicd.sourceforge.net/">Wicd</a>, etc. for network information and control. * <a href="https://launchpad.net/ntrack">NTrack</a> should be sufficient for most applications' needs.
- Audio: hardware enumeration should generally be done through the same interface that is used to interact with audio devices, whether that is PulseAudio, ALSA, GStreamer or other libraries or platform-specific interfaces.
- Input: use XI2 (which uses udev itself on Linux).
- Display: use X: XRandR provides control over LCD backlights, for example.
* Linux: Enumeration via udev. Most of the info HAL provided (and more) is available via <a href="http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html">cpufreq</a>. Some information can currently only be obtained from `/proc/cpuinfo`, such as the processor model name. * FreeBSD: Use sysctl directly.
* On Linux, other hardware enumeration should be done directly through <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html">udev</a>, generally via <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/">libudev</a>. Work is under way to provide most of the "extra" information that HAL provided _(except quirks?)_ via udev rules; <a href="../media-player-info/">media-player-info</a> does this, and <a href="http://upower.freedesktop.org">UPower</a> provides battery recall information via udev, for example. * On other platforms, native hardware enumeration systems should be used.
- Qt/KDE applications can make use of the Solid library, which aims to provide a unified API for hardware enumeration across platforms and backends (Solid is Qt-only, but is distributed as part of kdelibs).
Announcements and discussion happen on the DevKit-devel mailing list.