Commit 4e1bde1e authored by Guillaume Seguin's avatar Guillaume Seguin

Catch when dbus is unavailable (#522)

parent 2f32c923
...@@ -35,28 +35,39 @@ elif platform.system() == "Windows": ...@@ -35,28 +35,39 @@ elif platform.system() == "Windows":
else: else:
import dbus import dbus
def inhibit_sleep(reason): try:
if inhibit_sleep.handler is None: bus = dbus.SessionBus()
bus = dbus.SessionBus()
try:
# GNOME uses the right object path, try it first
service_name = "org.freedesktop.ScreenSaver"
proxy = bus.get_object(service_name,
"/org/freedesktop/ScreenSaver")
inhibit_sleep.handler = dbus.Interface(proxy, service_name)
except dbus.DBusException:
# KDE uses /ScreenSaver object path, let's try it as well
proxy = bus.get_object(service_name,
"/ScreenSaver")
inhibit_sleep.handler = dbus.Interface(proxy, service_name)
inhibit_sleep.token = inhibit_sleep.handler.Inhibit("printrun", reason)
inhibit_sleep.handler = None
def deinhibit_sleep(): def inhibit_sleep(reason):
if inhibit_sleep.handler is None: if inhibit_sleep.handler is None:
bus = dbus.SessionBus()
try:
# GNOME uses the right object path, try it first
service_name = "org.freedesktop.ScreenSaver"
proxy = bus.get_object(service_name,
"/org/freedesktop/ScreenSaver")
inhibit_sleep.handler = dbus.Interface(proxy, service_name)
except dbus.DBusException:
# KDE uses /ScreenSaver object path, let's try it as well
proxy = bus.get_object(service_name,
"/ScreenSaver")
inhibit_sleep.handler = dbus.Interface(proxy, service_name)
inhibit_sleep.token = inhibit_sleep.handler.Inhibit("printrun", reason)
inhibit_sleep.handler = None
def deinhibit_sleep():
if inhibit_sleep.handler is None:
return
inhibit_sleep.handler.UnInhibit(inhibit_sleep.token)
inhibit_sleep.token = None
except dbus.DBusException, e:
print "dbus unavailable:", e.message
def inhibit_sleep(reason):
return
def deinhibit_sleep():
return return
inhibit_sleep.handler.UnInhibit(inhibit_sleep.token)
inhibit_sleep.token = None
try: try:
import psutil import psutil
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment