trinity-users@lists.pearsoncomputing.net

Message: previous - next
Month: March 2012

Re: [trinity-users] kpowersave & ACPI

From: "Mag. Dr. Nikolaus Klepp" <office@...>
Date: Wed, 28 Mar 2012 19:03:49 +0200
Am Mittwoch, 28. März 2012 schrieb Serghei Amelian:
> On Wednesday 28 March 2012 19:43:54 Mag. Dr. Nikolaus Klepp wrote:
> [...]
>
> > > kpowersave doesn't use acpid, but HAL. Check if your user have
> > > permissions to query hal, via dbus.
> >
> > I can query hal, but how do I query hal via dbus?
>
> With dbus-send, but I can't tell you exactly how to query it, I'm not
> familiar with hal api.
>
> [...]

Ok, found a way. Looks like my user has access to hal via dbus:

$ python
Python 2.7.3rc2 (default, Mar 21 2012, 16:14:45)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import dbus
>>> bus = dbus.SystemBus()
>>> hal_manager_obj =
>>> bus.get_object("org.freedesktop.Hal","/org/freedesktop/Hal/Manager")
>>> hal_manager = dbus.Interface(hal_manager_obj,
>>> "org.freedesktop.Hal.Manager")
>>> batPath = hal_manager.FindDeviceByCapability("battery")
>>> bat = bus.get_object("org.freedesktop.Hal", batPath[0])
>>> bat.GetAllProperties(dbus_interface="org.freedesktop.Hal.Device")
dbus.Dictionary({dbus.String(u'battery.reporting.technology'):
dbus.String(u'Li-ion', variant_level=1), dbus.String(u'info.category'):
dbus.String(u'battery', variant_level=1), dbus.String(u'info.parent'):
dbus.String(u'/org/freedesktop/Hal/devices/computer', variant_level=1),
dbus.String(u'battery.charge_level.last_full'): dbus.Int32(56160,
variant_level=1), dbus.String(u'info.product'): dbus.String(u'92P1127',
variant_level=1), dbus.String(u'battery.charge_level.current'):
dbus.Int32(41210, variant_level=1),
dbus.String(u'battery.rechargeable.is_charging'): dbus.Boolean(False,
variant_level=1), dbus.String(u'linux.subsystem'):
dbus.String(u'power_supply', variant_level=1),
dbus.String(u'battery.voltage.unit'): dbus.String(u'mV', variant_level=1),
dbus.String(u'battery.charge_level.rate'): dbus.Int32(0, variant_level=1),
dbus.String(u'battery.type'): dbus.String(u'primary', variant_level=1),
dbus.String(u'battery.charge_level.percentage'): dbus.Int32(73,
variant_level=1), dbus.String(u'linux.sysfs_path'):
dbus.String(u'/sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/device:01/PNP0C09:00/PNP0C0A:00/power_supply/BAT0',
variant_level=1), dbus.String(u'battery.charge_level.design'):
dbus.Int32(56160, variant_level=1), dbus.String(u'battery.voltage.design'):
dbus.Int32(10800, variant_level=1), dbus.String(u'battery.is_rechargeable'):
dbus.Boolean(True, variant_level=1),
dbus.String(u'battery.reporting.current'): dbus.Int32(41210,
variant_level=1), dbus.String(u'info.subsystem'):
dbus.String(u'power_supply', variant_level=1),
dbus.String(u'battery.reporting.design'): dbus.Int32(56160,
variant_level=1), dbus.String(u'linux.hotplug_type'): dbus.Int32(2,
variant_level=1), dbus.String(u'battery.model'): dbus.String(u'92P1127',
variant_level=1), dbus.String(u'battery.voltage.current'): dbus.Int32(11310,
variant_level=1), dbus.String(u'battery.remaining_time'): dbus.Int32(6868,
variant_level=1), dbus.String(u'battery.serial'): dbus.String(u'30552',
variant_level=1), dbus.String(u'info.udi'):
dbus.String(u'/org/freedesktop/Hal/devices/computer_power_supply_battery_BAT0',
variant_level=1), dbus.String(u'info.capabilities'):
dbus.Array([dbus.String(u'battery')], signature=dbus.Signature('s'),
variant_level=1), dbus.String(u'battery.technology'):
dbus.String(u'lithium-ion', variant_level=1),
dbus.String(u'battery.rechargeable.is_discharging'): dbus.Boolean(True,
variant_level=1), dbus.String(u'battery.reporting.unit'):
dbus.String(u'mWh', variant_level=1), dbus.String(u'battery.present'):
dbus.Boolean(True, variant_level=1),
dbus.String(u'battery.reporting.last_full'): dbus.Int32(56160,
variant_level=1), dbus.String(u'battery.vendor'): dbus.String(u'SANYO',
variant_level=1)}, signature=dbus.Signature('sv'))
>>>

So ... what to do next? I installed xfce4-power-manager as a workaround (which 
actually works), but that's not quite what I was looking for :-)

nik