Существует ли режим «Не беспокоить», как для устройства OSX, где вы можете решить, когда уведомление может беспокоить вас или нет ..
Я только что установил Chrome, и я обычно получаю спам по групповым текстам и другим уведомлениям, которые могут раздражать, когда я пытаюсь работать. На моем MacBook есть возможность включить «Не беспокоить», что отключает все формы уведомлений. Существует ли что-то подобное для Ubuntu?
Только что законченный полностью переписанная версия индикатора (0.9.0). Опции теперь включают:
Кроме того, многие, много улучшений в интерфейсе и поведении.
Установка неизменна (ppa):
sudo apt-add-repository ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs
С индикатором ниже, можно принять решение временно выключить уведомления:
или выставочные уведомления:
Прием является простой командой, с помощью dbus-monitor
прервать предстоящие уведомления и остановить их, прежде чем они появятся.
Индикатор является удобной для пользователя "оберткой" для отключения его и на.
Согласно теперь (для Надежного человека, Яркого, Коварного, Гостеприимного):
sudo apt-add-repository ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs
Это установит глобально (включая средство запуска). Установка через ppa предпочтена, так как это поддерживает последнюю версию и регулярно обновляется.
Индикатор появится в Тире как NoNotifications
Если Вы устанавливаете ppa, но ранее установленный вручную снизу, работайте rm ~/.local/share/applications/nonotif.desktop
сначала удалить локальное .desktop
файл.
Или вручную:
Решение существует многих объектов, которые просто необходимо сохранить вместе в одном и том же каталоге.
Индикатор: Скопируйте сценарий ниже в пустой файл, сохраните его как 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()
dbus-monitor
сценарий; сохраните его (точно) как nonotifs.sh
в одном и том же каталоге как первый сценарий:
#!/bin/bash
dbus-monitor "interface='org.freedesktop.Notifications'" | xargs -I '{}' pkill notify-osd
Сделайте этот исполняемый файл сценария
Три значка; щелкните правой кнопкой по каждому из них и сохраните их вместе с этими двумя сценариями как (точно):
Именно. Теперь тестовый прогон индикатор с командой:
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"
Рев сценария позволяет отключать звук любых уведомлений от появления на экране. Существует две основных опции -m
для бесшумного режима и -u
для небесшумного режима. Оба соединены в a .desktop
файл для служения в качестве средства запуска.
Когда -m
используется, уведомление-osd отправит заключительное уведомление прежде чем быть заблокированным. Если будет другой экземпляр выполнения сценария, то он покажет графическое всплывающее окно, которое сообщит пользователю, что сценарий уже делает свое задание.
При вызове -u
опция, сценарий прекратит блокировать уведомления и подтвердит это путем показа один. Если никакой предыдущий экземпляр сценария не будет работать, то пользователь будет уведомлен, что ничто не заблокировано прямо сейчас.
Источник сценария доступен здесь. Для более актуальной версии можно всегда находить его на моем GitHub. Можно установить мерзавца с 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
Файл ярлыка заблокирован к средству запуска
Заключительное уведомление перед отключением звука