ম্যাকবুকের মতো বিজ্ঞপ্তিগুলি অস্থায়ীভাবে আড়াল করার জন্য কি কোনও "বিরক্ত করবেন না" বিকল্প রয়েছে?


13

ওএসএক্স ডিভাইসে যেমন "ডিস্টার্ব মোড" নেই, সেখানে কী বিজ্ঞপ্তি আপনাকে বিরক্ত করতে পারে তা আপনি সিদ্ধান্ত নিতে পারেন কি না ..

আমি সবেমাত্র ক্রোম ইনস্টল করেছি এবং আমি সাধারণত গোষ্ঠী পাঠ্য এবং অন্যান্য বিজ্ঞপ্তি দ্বারা স্প্যাম পেয়ে যাই, যা আমি চেষ্টা করার সময় বিরক্তিকর হতে পারে .. আমার ম্যাকবুকে আমার কাছে "কোনও ঝামেলা করবেন না" চালু করার বিকল্প রয়েছে যা সমস্ত ধরণের নোটিশকে নিঃশব্দ করে দেয় .. উবুন্টুর জন্য কি এরকম কিছু বিদ্যমান?


ফায়ারফক্সের জন্য একটি বিকল্প রয়েছে, তবে আমি কোনও ক্রোম ব্যবহারকারী নেই তাই এটি সম্পর্কে বলতে পারি না
সের্গি কলডিয়াজহনি

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


2
একটি স্ক্রিপ্ট তৈরি করেছে। এখন পর্যন্ত এটি আমার গিথুবে রয়েছে : github.com/SergKolo/sergrep/blob/master/notify- block.sh আজ আমার সময় উপস্থিত হওয়ার সাথে সাথে আমি আমার উত্তরটি আপডেট করব। আপনি একটি দুর্দান্ত শর্টকাটও অন্তর্ভুক্ত করবেন যা আপনি
লঞ্চটিতে

1
উত্তর সম্পাদিত, দয়া করে পর্যালোচনা করুন। আপনি আমাকে যুক্ত করতে চান এমন অতিরিক্ত বৈশিষ্ট্যগুলি আছে কিনা তা আমাকে জানান
সের্গি কলডায়াজনি

উত্তর:


9

1. প্রধান আপডেট

সবেমাত্র সূচকটির সম্পূর্ণ পুনর্লিখিত সংস্করণটি শেষ হয়েছে (0.9.0)। বিকল্পগুলি এখন অন্তর্ভুক্ত:

  • নির্দিষ্ট স্ট্রিংগুলি সহ কেবলমাত্র বিজ্ঞপ্তিগুলি দমন করা
  • দমন (নিঃশব্দ) শব্দ
  • লগিং মিস বিজ্ঞপ্তি
  • প্রারম্ভকালে চলমান
  • পরবর্তী দৌড়ে শেষ অবস্থা (দমন করা বা না) মনে আছে

এছাড়াও ইন্টারফেস এবং আচরণের উপর অনেকগুলি উন্নতি।

এখানে চিত্র বর্ণনা লিখুন এখানে চিত্র বর্ণনা লিখুন

ইনস্টল করা অপরিবর্তিত (পিপিএ):

sudo apt-add-repository  ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs

2. পুরানো (এর) উত্তর

বিজ্ঞপ্তি নিঃশব্দ / প্রদর্শন করতে নির্দেশক

নীচের সূচকটির সাহায্যে আপনি অস্থায়ীভাবে বিজ্ঞপ্তিগুলি স্যুইচ করতে বেছে নিতে পারেন:

এখানে চিত্র বর্ণনা লিখুন

বা বিজ্ঞপ্তিগুলি দেখান:

এখানে চিত্র বর্ণনা লিখুন

কিভাবে এটা কাজ করে

কৌশলটি হ'ল একটি সহজ কমান্ড, dbus-monitorআসন্ন বিজ্ঞপ্তিগুলি বাধাগ্রস্ত করতে এবং সেগুলি উপস্থিত হওয়ার আগে তাদের থামিয়ে দেয়।
ইন্ডিকেটরটি টগল বন্ধ এবং চালিয়ে যাওয়ার জন্য ব্যবহারকারী-বান্ধব "র‍্যাপার"।

কিভাবে বসাব


অনুযায়ী এখন ( বিশ্বাসভাজন জন্য, প্রগাঢ়, কূটবুদ্ধি, Xenial ):

sudo apt-add-repository  ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs

এটি বিশ্বব্যাপী ইনস্টল করবে (লঞ্চার সহ)। এটি সর্বশেষতম সংস্করণ বজায় রাখে এবং নিয়মিত আপডেট হয় বলে পিপিএর মাধ্যমে ইনস্টল করা পছন্দ করা হয়।
সূচক ড্যাশ-এ নো নোটফিকেশন হিসাবে উপস্থিত হবে

যদি আপনি পিপিএ দ্বারা ইনস্টল করেন তবে পূর্বে নীচে থেকে ম্যানুয়ালি ইনস্টল করা থাকলে দয়া rm ~/.local/share/applications/nonotif.desktopকরে স্থানীয় .desktopফাইলটি সরিয়ে নিতে প্রথমে চালান ।


অথবা ম্যানুয়ালি:

সমাধানটি আপনাকে কেবল এক এবং একই ডিরেক্টরিতে একত্রে সংরক্ষণ করতে হবে এমন অনেকগুলি আইটেম উপস্থিত রয়েছে।

  1. একটি ডিরেক্টরি বা ফোল্ডার তৈরি করুন (আপনার হোম ডিরেক্টরিতে যে কোনও জায়গায় যেমন হতে পারে)
  2. সূচক: নীচের স্ক্রিপ্টটি একটি খালি ফাইলে অনুলিপি করুন, এটি সংরক্ষণ করুন nonotif_indicator.py:

    #!/usr/bin/env python3
    import os
    import signal
    import gi
    import subprocess
    gi.require_version('Gtk', '3.0')
    gi.require_version('AppIndicator3', '0.1')
    from gi.repository import Gtk, AppIndicator3
    
    currpath = os.path.dirname(os.path.realpath(__file__))
    proc = "nonotifs.sh"
    
    def run(path):
        try: 
            pid = subprocess.check_output(["pgrep", "-f", proc]).decode("utf-8").strip()
        except subprocess.CalledProcessError:
            subprocess.Popen(path+"/"+proc)
    
    def show():
        try:
            pid = subprocess.check_output(["pgrep", "-f", proc]).decode("utf-8").strip()
            subprocess.Popen(["pkill", "-P", pid])
        except subprocess.CalledProcessError:
            pass
    
    class Indicator():
        def __init__(self):
            self.app = 'nonotif'
            iconpath = currpath+"/grey.png"
            self.testindicator = AppIndicator3.Indicator.new(
                self.app, iconpath,
                AppIndicator3.IndicatorCategory.OTHER)
            self.testindicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE)       
            self.testindicator.set_menu(self.create_menu())
    
        def create_menu(self):
            menu = Gtk.Menu()
            item_quit = Gtk.MenuItem('Quit')
            item_quit.connect('activate', self.stop)
            item_silent = Gtk.MenuItem("Don't disturb")
            item_silent.connect('activate', self.silent)
            item_show = Gtk.MenuItem("Show notifications")
            item_show.connect('activate', self.show)
            menu.append(item_quit)
            menu.append(item_silent)
            menu.append(item_show)
            menu.show_all()
            return menu
    
        def stop(self, source):
            Gtk.main_quit()
    
        def silent(self, source):
            self.testindicator.set_icon(currpath+"/red.png")
            run(currpath)
    
        def show(self, source):
            self.testindicator.set_icon(currpath+"/green.png")
            show()
    
    Indicator()
    signal.signal(signal.SIGINT, signal.SIG_DFL)
    Gtk.main()
    
  3. dbus-monitorস্ক্রিপ্ট; প্রথম স্ক্রিপ্টের মতো nonotifs.sh একটিতে এবং ঠিক একই ডিরেক্টরিতে এটি সংরক্ষণ করুন (ঠিক)

    #!/bin/bash
    dbus-monitor "interface='org.freedesktop.Notifications'" | xargs -I '{}' pkill notify-osd
    

    এই স্ক্রিপ্টটি কার্যকর কার্যকর করুন

  4. তিনটি আইকন; তাদের প্রত্যেকটিতে ডান ক্লিক করুন এবং দুটি স্ক্রিপ্টের সাথে একত্রে সংরক্ষণ করুন (ঠিক):

    এখানে চিত্র বর্ণনা লিখুন <- green.png

    এখানে চিত্র বর্ণনা লিখুন <- red.png

    এখানে চিত্র বর্ণনা লিখুন<- grey.png

  5. এটাই. কমান্ডটি দিয়ে সূচকটি পরীক্ষা করুন:

    python3 /path/to/nonotif_indicator.py

    এবং উপর / বিজ্ঞপ্তি পরিবর্তন

লঞ্চার

আপনি যদি সূচক সহ একটি লঞ্চার চান:

এখানে চিত্র বর্ণনা লিখুন

  • নীচের আইকনটি অনুলিপি করুন, এটি সংরক্ষণ করুন nonotificon.png:

    এখানে চিত্র বর্ণনা লিখুন

  • নীচের কোডটি একটি খালি ফাইলে অনুলিপি করুন:

    [Desktop Entry]
    Type=Application
    Name=No Notifications
    Exec=python3 /path/to/nonotif_indicator.py
    Icon=/path/to/nonotificon.png
    Type=Application
    
  • লাইনগুলি সম্পাদনা করুন:

    Exec=python3 /path/to/nonotif_indicator.py

    এবং

    Icon=/path/to/nonotificon.png

    প্রকৃত পাথ অনুযায়ী, এবং ফাইলটি সংরক্ষণ nonotif.desktopমধ্যে~/.local/share/applications

সূচনা অ্যাপ্লিকেশনগুলিতে সূচক যুক্ত করুন

আপনি সূচনাটি স্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করতে পারেন: ড্যাশ> স্টার্টআপ অ্যাপ্লিকেশন> যুক্ত করুন। কমান্ড যুক্ত করুন:

/bin/bash -c "sleep 15 && python3 /path/to/nonotif_indicator.py"

আপনি অসাধারণ! :-)
ফাব্বী

তিনি আপনাকে চারপাশে দেখতে খুব সুন্দর!
জ্যাকব ভিলিজম

তবুও আর একটি দুর্দান্ত স্ক্রিপ্ট, জ্যাকব! আইডিয়া: স্ক্রিপ্টটি অডিও বিজ্ঞপ্তিগুলিকেও অবহিত করতে পারে যা বিজ্ঞপ্তি-ওএসডিগুলির সাথে যায়?
orschiro

ধন্যবাদ! সেগুলিও কি বিজ্ঞপ্তি-ওএসডি বিজ্ঞপ্তিগুলি? আপনি কোন বিজ্ঞপ্তি উল্লেখ করছেন তা নিশ্চিত নয়।
জ্যাকব ভ্লিজম

1
@ রবার্ট অরজান্না সেই জিনিসগুলির মধ্যে একটি যা সংস্করণ 1.0 এ পরিবর্তিত হয়েছে :)
জ্যাকব ভিলিজ

11

ভূমিকা

স্ক্রিপ্ট বেলো স্ক্রিনে উপস্থিত হওয়া থেকে কোনও বিজ্ঞপ্তি নিঃশব্দ করার অনুমতি দেয়। -mনিঃশব্দ এবং -uসশব্দ করার জন্য দুটি মূল বিকল্প রয়েছে । উভয়কে .desktopলঞ্চ হিসাবে পরিবেশন করতে একটি ফাইলে একসাথে রাখা হয় ।

কখন -mব্যবহৃত হবে, অবহিত হওয়ার আগে বিজ্ঞপ্তি-ওএসডি একটি চূড়ান্ত বিজ্ঞপ্তি প্রেরণ করবে। যদি স্ক্রিপ্ট চলার অন্য কোনও উদাহরণ থাকে তবে এটি একটি গ্রাফিকাল পপআপ প্রদর্শন করবে যা কোনও ব্যবহারকারীকে জানিয়ে দেবে যে স্ক্রিপ্টটি ইতিমধ্যে তার কাজ করছে।

-uবিকল্প হিসাবে ডাকা হলে , স্ক্রিপ্টটি বিজ্ঞপ্তিগুলি অবরুদ্ধ করা বন্ধ করবে এবং একটি দেখিয়ে তা নিশ্চিত করবে। স্ক্রিপ্টের পূর্বের কোনও উদাহরণ চলমান না থাকলে, ব্যবহারকারীকে অবহিত করা হবে যে এখনই কোনও কিছুই অবরুদ্ধ নয়।

স্ক্রিপ্ট উত্স

স্ক্রিপ্ট উত্স এখানে উপলব্ধ। আরও আপ-টু-ডেট সংস্করণের জন্য আপনি সর্বদা এটি আমার গিথুবে খুঁজে পাবেন । আপনি গিটটি ইনস্টল করতে sudo apt-get install gitএবং git clone https://github.com/SergKolo/sergrep.gitব্যবহার করতে বা সম্পূর্ণ সংগ্রহস্থলটিকে ক্লোন করতে পারেন

wget https://raw.githubusercontent.com/SergKolo/sergrep/master/notify-block.sh  && chmod +x notify-block.sh

খালি স্ক্রিপ্ট নিজেই পেতে।

#!/usr/bin/env bash
#
###########################################################
# Author: Serg Kolo , contact: 1047481448@qq.com 
# Date: May 10th 2016
# Purpose: Notification blocker for Ubuntu
# Written for: 
# Tested on:  Ubuntu 14.04 LTS
###########################################################
# Copyright: Serg Kolo ,2016 
#    
#     Permission to use, copy, modify, and distribute this software is hereby granted
#     without fee, provided that  the copyright notice above and this permission statement
#     appear in all copies.
#
#     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#     IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#     FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
#     THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
#     LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
#     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
#     DEALINGS IN THE SOFTWARE.

ARGV0="$0"
ARGC=$#

mute_notifications()
{ 

  self=${ARGV0##*/}
  CHECK_PID_NUMS=$(pgrep -f  "$self -m" | wc -l )
  if [ "$CHECK_PID_NUMS" -gt 2 ]; then
     zenity --info --text "Notifications already disabled"
     exit 0
  else  
     killall notify-osd 2> /dev/null # ensure we have PID
     notify-send 'All notifications will be muted after this one' 
     sleep 1
     while true 
     do 
        PID=$(pgrep notify-osd)
        [  "x$PID" != "x" ]  && 
        kill -TERM $PID 
        sleep 0.25
     done
  fi
}

unmute()
{
  echo $0
  self=${0##*/}

  MUTE_PID=$(pgrep -f  "$self -m" ) #match self with -m option
  if [ "x$MUTE_PID" != "x"   ];then
     kill -TERM "$MUTE_PID" &&
     sleep 1 && # ensure the previous process exits
     notify-send "UNMUTED"
     exit 0
  else 
     notify-send "NOTIFICATIONS ALREADY UNMUTED"
     exit 0
  fi  
}

print_usage()
{
  cat > /dev/stderr <<EOF
  usage: notify-block.sh [-m|-u]
EOF
exit 1
}
main()
{
  [ $# -eq 0  ] && print_usage

  while getopts "mu" options
  do

     case ${options} in
          m) mute_notifications & ;;
          u) unmute ;;
          \?) print_usage ;;
     esac

  done
}
main "$@"

.ডেস্কটপ শর্টকাট টেম্পলেট

এটি আমি ব্যক্তিগতভাবে যা ব্যবহার করি তার একটি উদাহরণ মাত্র। Exec=আপনার পরিবেশে স্ক্রিপ্টের উপযুক্ত পথ দিয়ে প্রতিটি লাইন প্রতিস্থাপন করুন । অবশ্যই আপনার Icon=ইচ্ছার পরিবর্তনও করতে হবে। সাধারণত, এই ফাইলটি আপনার ~/.local/share/applicationsফোল্ডারে রাখুন

[Desktop Entry]
Name=Notification Blocker
Comment=blocks any on-screen notifications
Terminal=false
Actions=Mute;Unmute
Type=Application
Exec=/home/xieerqi/sergrep/notify-block.sh -m
Icon=/home/xieerqi/Desktop/no-notif2.png

[Desktop Action Mute]
Name=Mute Notifications
Exec=/home/xieerqi/sergrep/notify-block.sh -m
Terminal=false

[Desktop Action Unmute]
Name=Unmute Notifications
Exec=/home/xieerqi/sergrep/notify-block.sh -u
Terminal=false

স্ক্রীনশট

image1

শর্টকাট ফাইলটি লঞ্চারে লক হয়ে গেছে

এখানে চিত্র বর্ণনা লিখুন

নিঃশব্দ করার আগে চূড়ান্ত বিজ্ঞপ্তি


এটিকে আনমিট করতে আমার সমস্যা হচ্ছে বলে মনে হচ্ছে? .. আমি কি প্রতিটি সময় নিজেই প্রক্রিয়াটি মেরে ফেলব নাকি?
লামদা

না, নিঃশব্দ বিকল্পটি হুবহু এটি করে, পূর্ববর্তী প্রক্রিয়াটির উদাহরণটিকে হত্যা করে। ঘটনাটি ঠিক কী ঘটছে?
সের্গেই কোলোডিয়াজনি

কোনও বার্তা নেই, ঘটবে। আমি নিঃশব্দ করতে পারি, তবে নিঃশব্দ
বোতাম

@ ল্যামদা ঠিক আছে, unmuteফাংশনের অভ্যন্তরে, আপনি দয়া set -xকরে echo $0লাইনের পরে যুক্ত করে টার্মিনালে প্রোগ্রামটি চালাতে পারবেন? এটি নির্দিষ্ট আউটপুট প্রদর্শন করবে। এটিকে অনুলিপি করুন এবং পেস্ট করুন.বুন্টু.কম এ এবং এখানে মন্তব্যগুলিতে সেই পেস্টের লিঙ্ক সরবরাহ করুন। ধন্যবাদ
সের্গেই কলডিয়াজনি

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