নির্দিষ্ট উত্স থেকে আগত কিছু বিজ্ঞপ্তি-বুদবুদ আমি কীভাবে সাময়িকভাবে ফিল্টার-আউট করব?


12

আমি আমার সিস্টেমটি এমনভাবে কনফিগার করেছি যে আমি যখন নতুন মেল পাই তখন আমার স্ক্রিনে একটি বিজ্ঞপ্তি বেলুন উপস্থিত হয়। এটি সময়ে সুবিধাজনক এবং অন্য সময়ে বিভ্রান্তিকর। আমি যে জিমেইল ইন্টিগ্রেশনটি ব্যবহার করছি তা আনইনস্টল না করেই কি কেন্দ্রীয়ভাবে টগল করার কোনও উপায় রয়েছে যা নির্দিষ্ট ধরণের বিজ্ঞপ্তিগুলি প্রদর্শিত হবে কিনা?

অন্য কথায়, আমি একটি অ্যাপ্লিকেশন (বা এপিআই) সন্ধান করছি যা আমাকে "নথিভুক্ত" অ্যাপ্লিকেশনগুলির একটি তালিকা দেখতে দেয় যা বিজ্ঞপ্তি পরিষেবা ব্যবহার করে এবং সেগুলিকে সক্ষম / অক্ষম হিসাবে টগল করতে দেয়। বা, এমন কিছু যা আমাকে এক বা একাধিক নিয়মিত এক্সপ্রেশন তৈরি করতে দেয় যা উত্স-অ্যাপ্লিকেশন-নাম বা নোটিফিকেশন-বুদবুদ-সামগ্রীর সাথে মেলে এবং যদি কোনও মিল হয়, তবে বিজ্ঞপ্তিটি ব্লক করতে ব্যবহার করতে পারে।


1
জিনোম-শেল বিজ্ঞপ্তির বিপরীতে উবুন্টু অ্যাপ্লিকেশনটি বিজ্ঞপ্তি পরিষেবাতে নিবন্ধভুক্ত নয়। এটি বিজ্ঞপ্তির জন্য libnotify ব্যবহার করে যা অ্যাপ্লিকেশনগুলিতে হার্ড-কোডড। আপনি যদি অ্যাপ্লিকেশন পছন্দটি থেকে বিজ্ঞপ্তি পছন্দ (যেমন gwibber, বিবর্তন, থান্ডারবার্ড ইত্যাদি) পছন্দ থেকে বিজ্ঞপ্তি স্যুইচ অফ চেষ্টা করতে পারেন।
খুরশিদ আলম


@orschiro এটি আপনি উল্লেখ করেছেন (সম্প্রতি পোস্ট করা) প্রশ্নের সদৃশ নয় - এই প্রশ্নটি অন্যদের মাধ্যমে মঞ্জুরি দেওয়ার সময় প্রোগ্রামিয়ালি কেবলমাত্র নির্দিষ্ট ধরণের বিজ্ঞপ্তিগুলি ফিল্টার করতে সক্ষম হয়। অন্য প্রশ্নটি বিশেষভাবে সমস্ত বিজ্ঞপ্তি নিঃশব্দ করার বিষয়ে।
চিহ্নিত করুন

ওহ আপনি ঠিক. আমি এটি প্রথম নজরে মিস করেছি। ধন্যবাদ!
orschiro

উত্তর:


2

আপনি এটি ডি-বাস পর্যায়ে ফিল্টার করতে সক্ষম হতে পারেন তবে এটি অনেকটা কাজের মতো দেখাচ্ছে। ওএসডি কীভাবে কাজ করে তার অন্তর্দৃষ্টি পেতে প্রথমে এই পোস্টটি দেখুন

আপনি আলাদা কনসোলে 'নোটিফাইড-সেন্ড' রান প্রেরণের আগে ডিবাস-মনিটর শুরু করুন।

পদ্ধতি কল প্রেরক =: 1.2450 -> গন্তব্য = org.freedesktop.DBus সিরিয়াল = 5 পাথ = / org / ফ্রিডেস্কটপ / ডিবিস; ইন্টারফেস = org.freedesktop.DBus; সদস্য = GetNameOwner
   স্ট্রিং "org.freedesktop.Notifications"
পদ্ধতি কল প্রেরক =: 1.2450 -> গন্তব্য =: 1.41 সিরিয়াল = 6 পাথ = / org / ফ্রিডেস্কটপ / বিজ্ঞপ্তি; ইন্টারফেস = org.freedesktop.Notifications; সদস্য = GetServerInformation
পদ্ধতি রিটার্ন প্রেরক =: 1.41 -> গন্তব্য =: 1.2450 উত্তর_সারিয়াল = 6
   স্ট্রিং "নোটিফাই-ওএসডি"
   স্ট্রিং "ক্যানোনিকাল লিমিটেড"
   স্ট্রিং "1.0"
   স্ট্রিং "1.1"
পদ্ধতি কল প্রেরক =: 1.2450 -> গন্তব্য =: 1.41 সিরিয়াল = 7 পাথ = / org / ফ্রিডেস্কটপ / বিজ্ঞপ্তি; ইন্টারফেস = org.freedesktop.Notifications; সদস্য = অনুপ্রেরিত আমাকে অবহিত
   স্ট্রিং "বিজ্ঞপ্তি-প্রেরণ"
   uint32 0
   স্ট্রিং "/usr/share/pixmaps/debian-logo.png"
   স্ট্রিং "আমার শিরোনাম"
   স্ট্রিং "কিছু টেক্সট বডি"
   অ্যারে [
   ]
   অ্যারে [
      ডিক এন্ট্রি (
         স্ট্রিং "জরুরি"
         বৈকল্পিক বাইট 1
      )
   ]
   int32 -1

notify-osd dbus এ লাইভ করে

dpkg -L notify-osd
/usr/share/dbus-1/services/org.freedesktop.Notifications.service

তবে /etc/dbus-1/system.d এ এই পরিষেবার জন্য কোনও অতিরিক্ত বাধা নেই

সুতরাং আপনি এমন একটি কনফিগার ফাইল তৈরি করতে সক্ষম হতে পারেন যা তাদের উত্সের উপর ভিত্তি করে বিজ্ঞপ্তি ইভেন্টগুলিকে ফিল্টার করতে পারে এবং আপনার পরে নিয়ন্ত্রণটি অর্জন করতে পারে। সমস্যা এবং ডিবিস স্পেকটি খনন না করেই আমি এটি করতে পারি সেরা। আমি আশা করি এটি সাহায্য করে, আপনার পরে কীটি দিয়ে কনফিগার করা সহজ হওয়া উচিত।


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অ পক্ষপাতমূলক হয় এবং সম্পূর্ণরূপে টিস্যু যেকোন বাকি থাকা বার্তাগুলির সূচনা স্ট্যাক কিনা irregardless NetworkManagerবা notify-sendজ্ঞাপক এজেন্ট।

একটি "সৎ" সমাধানের জন্য সম্ভাব্য জাতি অবস্থার জন্য অ্যাকাউন্ট প্রয়োজন যখন কোনও নোটিফিকেশন শোধনের প্রয়োজন হয় এবং তারপরে এটি করার সময়, অন্য একটি বিজ্ঞপ্তি আসে যাতে পপ-আপ হওয়া উচিত এবং বাকী অংশগুলির সাথে শুদ্ধ হওয়া উচিত নয়।

এছাড়াও, যদি আপত্তিজনক কোনওটি অবরুদ্ধ করা হবে যখন বিজ্ঞপ্তিগুলি মুলতুবি থাকে, সেগুলি সমস্ত শুদ্ধ হয়ে যাবে। এই পরিস্থিতিটি অন্তত dbusমুলতুবি থাকা বিজ্ঞপ্তিগুলির একটি অনুলিপি তৈরি করে সমাধান করা যেতে পারে এবং তারপরে শুদ্ধ notify-sendহওয়ার পরে কাঙ্ক্ষিতগুলি পুনরায় প্রকাশ করুন ।

এটি ম্যানুয়ালি শ্রমের নিবিড় কাজ!

আদর্শভাবে, এর সরাসরি ডিবিএস ব্যবহার

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

বিশেষভাবে কেবল পছন্দসই বিজ্ঞপ্তিগুলি লক্ষ্যবস্তু করা, দুর্ভাগ্যক্রমে প্রকট নয় ... তবে ...

আর একটি উত্তর
org.freedesktop.Notifications.CloseNotifications (uint id) ট্রিগার এবং ডিবিসের মাধ্যমে আহ্বান করা যেতে পারে? কমপক্ষে সাথে
কীভাবে ব্যবহার করা যায় তা দেখায় , তবে দুর্ভাগ্যক্রমে স্বেচ্ছাসেবক নোটিশ দেওয়ার জন্য নয় for যদিও কিছু এপিএস। পপ-আপ বিজ্ঞপ্তিগুলি নিয়ন্ত্রণ করতে কাস্টম ইন্টারফেস রয়েছে।[1]notify-send

ক্রস রেফারেন্স .:

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.