Posted by Robert Jordens on Mon 6 Aug 19:47
report spam | download | new post
- #!/usr/bin/python
- import os
- import dbus, gobject, dbus.glib
- import dbus.decorators
- import gtk
- import mx610
- sysbus = dbus.SystemBus()
- sesbus = dbus.SessionBus()
- notify_obj = sesbus.get_object('org.freedesktop.Notifications',
- '/org/freedesktop/Notifications')
- notifications = dbus.Interface(notify_obj,
- 'org.freedesktop.Notifications')
- icon = gtk.StatusIcon()
- icon.set_visible(False)
- icon.set_from_icon_name('evolution')
- icon.set_tooltip('New mail arrived!')
- watch_boxes = [
- "INBOX",
- "INBOX/big",
- "ethz/qo",
- "lists/debian/devel/announce"
- ]
- def safe_mx610_state(*a, **k):
- try:
- mo = mx610.mx610("/dev/hiddev0")
- mo.state(*a, **k)
- except:
- pass
- def newmail_received(box_path, box_name):
- #os.system('play /usr/share/sounds/gaim/receive.wav >/dev/null 2>&1 &')
- if box_name in watch_boxes:
- gobject.idle_add(icon.set_visible, True)
- notifications.Notify('dbus-hooks', 0, '', 'New Mail!',
- "New mail in " + box_name, [], {}, -1)
- safe_mx610_state(s0="on")
- def newmail_read(*args, **keywords):
- gobject.idle_add(icon.set_visible, False)
- safe_mx610_state(s0="off")
- sesbus.add_signal_receiver(newmail_received, signal_name='Newmail',
- dbus_interface='org.gnome.evolution.mail.dbus.Signal',
- path='/org/gnome/evolution/mail/newmail')
- sesbus.add_signal_receiver(newmail_read, signal_name='MessageReading',
- dbus_interface='org.gnome.evolution.mail.dbus.Signal',
- path='/org/gnome/evolution/mail/newmail')
- def gaim_gotmsg(a, fr, body, b, c):
- # print fr, body
- safe_mx610_state(s1="pulse")
- def gaim_viewedmsg(a, fr, body, b, c):
- # print fr, body
- safe_mx610_state(s1="off")
- sesbus.add_signal_receiver(gaim_gotmsg, signal_name='ReceivingImMsg',
- dbus_interface='net.sf.gaim.GaimInterface',
- path='/net/sf/gaim/GaimObject')
- sesbus.add_signal_receiver(gaim_viewedmsg, signal_name='DisplayedImMsg',
- dbus_interface='net.sf.gaim.GaimInterface',
- path='/net/sf/gaim/GaimObject')
- mainloop = gobject.MainLoop()
- mainloop.run()
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.