Під сповіщеннями ви маєте на увазі "бульбашки екранного меню", які надсилається деяким програмним забезпеченням, наприклад, зміна гучності, чат чату тощо? Ви хочете створити програму python для їх захоплення?
Ну, Ask Ubuntu - це не QA програміста, а розробка програмного забезпечення трохи виходить за межі сфери, але ось невеликий код, який я робив для зйомки бульбашок сповіщень:
import glib
import dbus
from dbus.mainloop.glib import DBusGMainLoop
def notifications(bus, message):
if message.get_member() == "Notify":
print [arg for arg in message.get_args_list()]
DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
bus.add_match_string_non_blocking("interface='org.freedesktop.Notifications'")
bus.add_message_filter(notifications)
mainloop = glib.MainLoop()
mainloop.run()
Залиште це працювати в терміналі, а потім відкрийте інше вікно терміналу і протестуйте його:
notify-send --icon=/usr/share/pixmaps/debian-logo.png "My Title" "Some text body"
І програма виведе це:
[dbus.String(u'notify-send'), dbus.UInt32(0L), dbus.String(u'/usr/share/pixmaps/debian-logo.png'), dbus.String(u'My Title'), dbus.String(u'Some text body'),...
Як ви могли здогадатися, message.get_args_list()[0]
це відправник, [2] для піктограми, [3] для резюме та [4] для тексту тексту.
Для значення інших полів перевірте документи офіційних специфікацій
dbus-monitor "type='signal',interface='org.freedesktop.Notifications'"
не показує нічого, але неdbus-monitor "interface='org.freedesktop.Notifications'"
показує сповіщення (тип "method_call", а не "сигнал").