LINUX.ORG.RU

gajim notification


0

0

Как сделать чтобы при приходе нового сообщения, gajim выполнял какую-нибудь команду? Чтото не могу в настройках найти.

ну я самым тупым способом в preferences/events/sounds плеером делал /bin/sh a на звук вешал /path/to/sript.sh :) по идее как-то через dbus разрулить можно.

kostian ★★★★☆
()
Ответ на: комментарий от kostian

хех, я так тоже могу :)

Как через dbus сделать?

wetming
() автор топика
Ответ на: комментарий от kostian

Вот такая вот штука получилась:

$ cat gajim_status.py 
import gobject, os
import dbus, dbus.glib

OBJ_PATH = '/org/gajim/dbus/RemoteObject'
INTERFACE = 'org.gajim.dbus.RemoteInterface'
SERVICE = 'org.gajim.dbus'

def new_message(details):
    print 'new message'
    os.system('mx610hack -i /dev/usb/hiddev0 && sleep 1.5 && mx610hack -O /dev/usb/hiddev0')

def init(service, arg1, arg2):
    if service == 'org.gajim.dbus':
        bus = dbus.SessionBus()
        try:
            bus.add_signal_receiver(new_message, 'NewMessage', INTERFACE, SERVICE, OBJ_PATH)
            print 'added gajim signal receivers'
        except:
            print 'oops, no gajim'


def main():
    bus = dbus.SessionBus()
    bus.add_signal_receiver(init, 'NameOwnerChanged',
            'org.freedesktop.DBus',
            'org.freedesktop.DBus',
            '/org/freedesktop/DBus',
            arg0='org.gajim.dbus')

    init('org.gajim.dbus', '', '')
   
    print 'listening to dbus...'
    mainloop = gobject.MainLoop()
    mainloop.run()
               
if __name__ == '__main__':
    import sys
    try:
        main()
    except KeyboardInterrupt:
        sys.exit(0)


Собственно теперь при приходе сообщения на мыше Logitech MX610 загорается соответствующая лампочка. Удобно.

wetming
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.