मैं विशिष्ट स्रोतों से अस्थायी रूप से कुछ अधिसूचना-बुलबुले को कैसे फ़िल्टर कर सकता हूं?


12

मेरे पास मेरा सिस्टम इस तरह से कॉन्फ़िगर किया गया है कि जब मुझे नया मेल प्राप्त होता है, तो मेरी स्क्रीन पर एक अधिसूचना गुब्बारा दिखाई देता है। यह कई बार सुविधाजनक होता है, और अन्य समय पर ध्यान भंग होता है। मेरे द्वारा उपयोग किए जा रहे जीमेल एकीकरण की स्थापना रद्द करने के बिना, क्या केंद्रीय रूप से टॉगल करने का एक तरीका है कि क्या कुछ प्रकार की सूचनाएं प्रदर्शित की जाएंगी?

दूसरे शब्दों में, मैं एक एप्लिकेशन (या एपीआई) की तलाश में हूं जो मुझे या तो "पंजीकृत" ऐप की सूची देखने की अनुमति देता है जो अधिसूचना सेवा का उपयोग करते हैं, और उन्हें सक्षम / अक्षम के रूप में टॉगल करते हैं। या, कोई चीज जो मुझे एक या एक से अधिक नियमित अभिव्यक्ति बनाने की अनुमति देती है जिसका उपयोग स्रोत-अनुप्रयोग-नाम या अधिसूचना-बुलबुला-सामग्री से मेल खाने के लिए किया जा सकता है, और यदि कोई नोटिफिकेशन ब्लॉक करने के लिए होता है।


1
सूक्ति-शैल अधिसूचना के विपरीत, उबंटू आवेदन अधिसूचना सेवा में पंजीकृत नहीं है। यह अधिसूचना के लिए उपयोग करता है जो अनुप्रयोगों में हार्ड-कोडित है। आप आवेदन वरीयता से अधिसूचना को स्विच करने का प्रयास कर सकते हैं, अगर इसमें अधिसूचना वरीयता (जैसे ग्विबर, विकास, थंडरबर्ड आदि) हो।
खुर्शीद आलम


@orschiro यह (हाल ही में पोस्ट किया गया) आपके द्वारा भेजे गए प्रश्न का डुप्लिकेट नहीं है - यह प्रश्न केवल कुछ प्रकार की सूचनाओं को प्रोग्राम करने में सक्षम होने के बारे में है, जबकि दूसरों के माध्यम से अनुमति देता है। अन्य प्रश्न विशेष रूप से सभी सूचनाओं को म्यूट करने के बारे में है।
मार्क

ओह, तुम सही हो। मुझे यह पहली नज़र में याद आ गया। धन्यवाद!
ऑर्किरो जू

जवाबों:


2

आप इसे डी-बस स्तर पर फ़िल्टर करने में सक्षम हो सकते हैं, लेकिन यह बहुत काम की तरह दिखता है। पहले इस पोस्ट को देखें कि कैसे ऑसड संचालित होता है

एक अलग कंसोल पर रन 'नोटिफ़िकेशन-भेजने' को भेजने से पहले डब-मॉनिटर शुरू करें।

मेथड कॉल सेंडर =: 1.2450 -> डिस्ट = org.freedesktop.DBus सीरियल = 5 पाथ = / org / freedesktop / DBus; इंटरफ़ेस = org.freedesktop.DBus; सदस्य = GetNameOwner
   स्ट्रिंग "org.freedesktop.Notifications"
मेथड कॉल सेंडर =: 1.2450 -> डेस्ट =: 1.41 सीरियल = 6 पाथ = / org / freedesktop / Notifications; इंटरफ़ेस = org.freedesktop.Notifications; सदस्य = GetServerInformation
विधि वापसी प्रेषक =: 1.41 -> भाग्य =: 1.2450 उत्तर_सैनिक = 6
   स्ट्रिंग "सूचना-ओएसडी"
   स्ट्रिंग "कैनोनिकल लिमिटेड"
   स्ट्रिंग "1.0"
   स्ट्रिंग "1.1"
मेथड कॉल सेंडर =: 1.2450 -> डेस्ट =: 1.41 सीरियल = 7 पथ = / org / freedesktop / Notifications; इंटरफ़ेस = org.freedesktop.Notifications; सदस्य = सूचित करें
   स्ट्रिंग "सूचना-भेजें"
   uint32 0
   स्ट्रिंग "/usr/share/pixmaps/debian-logo.png"
   "मेरा शीर्षक"
   स्ट्रिंग "कुछ पाठ निकाय"
   सरणी [
   ]
   सरणी [
      तानाशाही प्रविष्टि (
         स्ट्रिंग "तात्कालिकता"
         संस्करण बाइट 1
      )
   ]
   int32 -1

अधिसूचित- osd dbus पर रहता है

dpkg -L अधिसूचित-ओएसडी
/usr/share/dbus-1/services/org.freedesktop.Notifications.service

लेकिन इस सेवा के लिए /etc/dbus-1/system.d में कोई अतिरिक्त बाधा नहीं है

तो आप एक विन्यास फाइल बनाने में सक्षम हो सकते हैं जो उनके स्रोत के आधार पर अधिसूचना घटनाओं को फ़िल्टर कर सकती है और आपके नियंत्रण को प्राप्त कर सकती है। यह सबसे अच्छा मैं समस्या में खुदाई और dbus कल्पना के बिना कर सकता है। मुझे उम्मीद है कि यह मदद करता है, आप के साथ शुरू करने के लिए कॉन्फ़िगर करने के लिए आसान होने के बाद क्या करना चाहिए।


2

... लेकिन यह बहुत काम की तरह लग रहा है ...

यह वास्तव में बहुत बुरा नहीं है, कम से कम क्रूड जेनेरिक समाधान के लिए।

यहाँ मेरे उत्तर से पिछले वर्ष (सितंबर 2012) तक के विवरण की एक प्रति है

नेटवर्क-मैनेजर से अधिसूचना कैसे निष्क्रिय करें

dbus-monitor "interface='org.freedesktop.Notifications'"                \
| grep --line-buffered  'string "NetworkManager"'                       \
| sed -u -e  's/.*/killall notify-osd/g'                                \
| bash

string "NetworkManager"अवरुद्ध निर्धारित करने के लिए वांछित आरई के साथ बदलें ।

चलाने के लिए क्या देखने के लिए आरई पैटर्न मैच का एक विचार प्राप्त करने के लिए:
dbus-monitor "interface='org.freedesktop.Notifications'"
और आउटपुट को देखो, जबकि सूचनाएं पॉप-अप कर रही हैं।

अर्थात। notify-sendसंदेशों को भी निकालने के लिए , इस grepलाइन का उपयोग करें :

| grep --line-buffered  'string "NetworkManager"\|string "notify-send"'  \

कैविएट :
killall notify-osdगैर-भेदभावपूर्ण है और पूरी तरह से किसी भी लंबित संदेशों की अधिसूचना स्टैक को पूरी तरह से मिटा देता है, भले ही वह गैर- अधिसूचित एजेंट हो NetworkManagerया नहीं notify-send

एक "ईमानदार" समाधान के लिए संभावित दौड़ की स्थिति को ध्यान में रखना आवश्यक है जब एक अधिसूचना पर्ज निर्धारित करने के बीच की आवश्यकता होती है और फिर ऐसा करते समय, एक और अधिसूचना आती है जिसमें पॉप-अप होना चाहिए और बाकी के साथ शुद्ध नहीं होना चाहिए।

इसके अलावा, यदि नोटिफिकेशन लंबित है, जब अवरुद्ध होने वाली स्थिति में आते हैं, तो वे सभी शुद्ध हो जाएंगे। इस स्थिति को कम से कम dbusलंबित सूचनाओं की प्रतिलिपि बनाकर हल किया जा सकता है और फिर पर्स के notify-sendबाद वांछित लोगों को फिर से जारी किया जा सकता है ।

यह मैन्युअल रूप से श्रम गहन काम का एक सा है!

आदर्श रूप में, प्रत्यक्ष dbus का उपयोग

method void org.freedesktop.Notifications.CloseNotification(uint id)     [1]

विशेष रूप से सिर्फ वांछित सूचनाओं को लक्षित करने के लिए, दुर्भाग्य से स्पष्ट नहीं है ... हालांकि ...

एक अन्य उत्तर
क्या org.freedesktop.Notifications.CloseNotification (uint id) को DBus के माध्यम से ट्रिगर और लागू किया जा सकता है?
दिखाता है कि [1]कम से कम कैसे उपयोग किया जाए notify-send, लेकिन दुर्भाग्य से मनमानी नोटों के लिए नहीं। हालांकि कुछ aps। पॉप-अप सूचनाओं को नियंत्रित करने के लिए कस्टम इंटरफेस है।

पार refs .:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.