GNOME Power Manager gets all information from HAL using information from org.freedesktop.Hal. GNOME Power Manager does not do independent probing for data, it relies on HAL, in this way it can stay very lightweight and uncomplicated. Its goal is to be architecture neutral and free of polling and other hacks.
The role GNOME Power Manager, HAL, and the Kernel play in Power Management.
HAL is the de-facto Hardware Abstraction Layer for the Linux desktop. David Zeuthen (and myself and lots of others) have written different addons for hald (the HAL daemon) that populate different devices with additional properties, e.g. battery.charge.current_level that can be queried in an architecture-neutral way.
With all the new HAL code, and the GNOME Power Manager services, we can disable loading of pmud/acpid/apmd and keep everything managed in one place.
New ACPI objects in the HAL device tree.
Pressing the power/sleep/lid buttons now generate events
Using the new methods in HAL CVS: org.freedesktop.Hal.Device.SystemPowerManagement.Suspend ()