Kürzlich bin ich von der awesome-eigenen Notificaion-Implementierung naughty auf xfce4-notifyd gewechselt – hauptsächlich wegen des (einfacheren) Themings.
Leider enden bei mir aus noch ungeklärten Gründen notify-send-Aufrufe sehr oft in Traps:
Nov 15 13:37:15 thor kernel: traps: notify-send[1857] trap int3 ip:7f92f516fa27 sp:7fff35a3a870 error:0 |
Also habe ich nach einem Weg gesucht, den xfce4-notifyd direkt per dbus anzusprechen.
Hierfür müsste eigentlich ein dbus-send-Aufruf à la
dbus-send --session --dest=org.freedesktop.Notifications \
--type=method_call /org/freedesktop/Notifications \
org.freedesktop.Notifications.Notify \
string:'application' uint32:0 \
string: string:'headline' \
string:'message body' \
array:string: dict:string: int32:3000 |
genügen, allerdings passt da irgendwas mit der Signatur der aufzurufenden Methode nicht und nicht mal dbus-explorer kann sie aufrufen.
Als Workaround, bis ich die Ursache gefunden habe, nutze ich diesen kleinen Fetzen Python, den ich aus einem Forum entnommen (und angepasst) habe:
#!/usr/bin/env python2
import dbus
import sys
item = ('org.freedesktop.Notifications')
path = ('/org/freedesktop/Notifications')
interface = ('org.freedesktop.Notifications')
if len(sys.argv) > 3:
icon = sys.argv[3]
else:
icon = 'dialog-information'
array = ''
hint = ''
time = 10000
app_name = ('')
title = (sys.argv[1])
body = (sys.argv[2])
bus = dbus.SessionBus()
notif = bus.get_object(item, path)
notify = dbus.Interface(notif, interface)
notify.Notify(app_name, 0, icon, title, body, array, hint, time) |
(Keine Beschwerden bitte, das sind die ersten Zeilen Python, die ich je angefasst habe
)