বিজ্ঞপ্তি দ্বারা আপনি বোঝাচ্ছেন "ওএসডি বুদবুদ" যা কিছু সফ্টওয়্যার প্রেরণ করে, যেমন ভলিউম পরিবর্তন করা, আইএম চ্যাট ইত্যাদি? আপনি সেগুলি ধরার জন্য একটি অজগর প্রোগ্রাম তৈরি করতে চান?
ঠিক আছে, জিজ্ঞাসা করুন উবুন্টু কোনও প্রোগ্রামারের কিউএ নয়, এবং সফ্টওয়্যার বিকাশ সুযোগের বাইরে কিছুটা নয়, তবে এখানে একটি ছোট কোড দেওয়া হয়েছে যা আমি নোটিফিকেশন বুদবুদগুলি ক্যাপচার করেছি:
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'"
(টাইপটি 'পদ্ধতি_কলে' নয় 'সিগন্যাল')।