Imagine que você precise detectar se o screensaver está ativo ou não. Utilizando o D-BUS, é muito simples!

Tudo o que você precisa fazer é acessar a interface "org.gnome.ScreenSaver", presente no Gnome.

bus = dbus.SessionBus()
obj = bus.get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver')
screensaver = dbus.Interface(obj, 'org.gnome.ScreenSaver')
screensaver.connect_to_signal('ActiveChanged', detect_screensaver)

Abaixo, você tem um exemplo completo.

#! /usr/bin/env python
 
import dbus
import dbus.glib
import commands
import gtk
 
def detect_screensaver(enabled):
    print "Screensaver enabled? %s" % enabled
 
def enable_screensaver(widget):
    commands.getoutput(' gnome-screensaver-command --activate')
 
bus = dbus.SessionBus()
obj = bus.get_object('org.gnome.ScreenSaver', '/org/gnome/ScreenSaver')
screensaver = dbus.Interface(obj, 'org.gnome.ScreenSaver')
screensaver.connect_to_signal('ActiveChanged', detect_screensaver)
 
win = gtk.Window()
button = gtk.Button('Activate screensaver')
 
win.connect('destroy', gtk.main_quit)
button.connect('pressed', enable_screensaver)
 
win.add(button)
win.show_all()
 
gtk.main()
 

Comentários #

Deixe um comentário





Não é aceito código HTML: adicione-o no pastie.org ou paste.milk-it.net e poste apenas o link.

Se este é seu primeiro comentário, ele terá que ser aprovado antes de ser exibido.

jQuery: Dominando o framework

Você quer aprender a usar jQuery de verdade? Então chegou a hora! Neste workshop você verá como funciona este framework de JavaScript, entendendo todos os aspectos que fazem do jQuery uma das melhores ferramentas para desenvolvimento de interfaces.

Saiba mais Fechar

Conheça também o HOWTO