HOWTO know if your laptop screen is closed or open ? the desktop way (in python)
import dbus
import dbus.glib
import sys
class LidSwitch(object):
def __init__(self):
bus = dbus.SystemBus ()
hal_obj = bus.get_object ('org.freedesktop.Hal',
'/org/freedesktop/Hal/Manager')
hal = dbus.Interface (hal_obj, 'org.freedesktop.Hal.Manager')
udis = hal.FindDeviceByCapability ('input.switch')
for udi in udis:
dev_obj = bus.get_object ('org.freedesktop.Hal', udi)
dev = dbus.Interface (dev_obj, 'org.freedesktop.Hal.Device')
if dev.GetProperty ('button.type') == "lid":
self._lid_dev = dev
def _is_closed(self):
if hasattr(self, "_lid_dev"):
return self._lid_dev.GetProperty ('button.state.value')
else:
raise ValueError("no lid switch found")
is_closed = property(_is_closed)
if __name__ == "__main__":
ls = LidSwitch()
print "Lid switch is %s" % (ls.is_closed and "closed" or "open")



