Skip to content

Instantly share code, notes, and snippets.

@naftulikay
Created June 4, 2015 00:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save naftulikay/93e980b84a5635149abb to your computer and use it in GitHub Desktop.
Save naftulikay/93e980b84a5635149abb to your computer and use it in GitHub Desktop.
Screensaver DBUS Listener
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-
from dbus.mainloop.glib import DBusGMainLoop
import dbus
import gobject
import logging
logging.basicConfig(
format="%(asctime)-15s [%(levelname)-5s] - %(message)s",
datefmt="%Y/%m/%d %H:%M:%S",
level=logging.INFO
)
logger = logging.getLogger('screensaver')
dbus_loop = DBusGMainLoop(set_as_default=True)
def message_callback(bus, message):
if message.get_interface() == "org.gnome.ScreenSaver":
if message.get_member() == "ActiveChanged":
screensaver_enabled = bool(message.get_args_list()[0])
logger.info("Screensaver state changed. Active: %s", screensaver_enabled)
session = dbus.SessionBus(mainloop=dbus_loop)
session.add_match_string_non_blocking("interface='org.gnome.ScreenSaver'")
session.add_message_filter(message_callback)
logger.info("Starting up.")
loop = gobject.MainLoop()
loop.run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment