1. Atualização principal
Acabou de terminar uma versão completamente reescrita do indicador (0.9.0). As opções agora incluem:
- suprimindo somente notificações, contendo strings específicas
- suprimindo (silenciando) o som
- registro de notificações perdidas
- em execução na inicialização
- lembrando do último estado (suprimindo ou não) na próxima execução
Além disso, muitas melhorias na interface e no comportamento.
Ainstalaçãoestáinalterada(ppa):
sudoapt-add-repositoryppa:vlijm/nonotifssudoapt-getupdatesudoapt-getinstallnonotifs
2.Respostaantiga(er)
Indicadorparasilenciar/mostrarnotificações
Comoindicadorabaixo,vocêpodeoptarpordesativartemporariamenteasnotificações:
oumostrarnotificações:
Comofunciona
Otruqueéumcomandosimples,usandodbus-monitor
parainterceptaraspróximasnotificaçõesepará-lasantesqueelasapareçam.
Oindicadoréum"wrapper" de fácil utilização para ativar e desativar.
Como configurar
Como por agora ( para Trusty, Vivid, Wily, Xenial ):
sudo apt-add-repository ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs
Isso será instalado globalmente (incluindo o inicializador). A instalação via ppa é preferida, pois mantém a versão mais recente e é atualizada regularmente.
O indicador aparecerá no Dash como NoNotifications
Se você instalar pelo ppa, mas instalado manualmente a partir de baixo, execute rm ~/.local/share/applications/nonotif.desktop
primeiro para remover o arquivo .desktop
local.
Ou manualmente:
A solução existe de vários itens que você precisa armazenar juntos em um único diretório.
- Crie um diretório ou pasta (pode estar em qualquer lugar em seu diretório pessoal, por exemplo)
-
O indicador: Copie o script abaixo em um arquivo vazio, salve-o como
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()
-
O script
dbus-monitor
; salve-o (exatamente) comononotifs.sh
em um único diretório e como o primeiro script:
#!/bin/bash dbus-monitor "interface='org.freedesktop.Notifications'" | xargs -I '{}' pkill notify-osd
Torne este script executável
-
Três ícones; clique com o botão direito em cada um deles e salve-os junto com os dois scripts como (exatamente):
<- red.png
<- grey.png
Éisso.Agorateste-executeoindicadorcomocomando:
python3/path/to/nonotif_indicator.py
emudeasnotificaçõesem/de
Lançador
Casovocêqueiraumlançadorcomoindicador:
Copieoíconeabaixoesalve-ocomo
nonotificon.png
:Copieocódigoabaixoemumarquivovazio:
[Desktop Entry] Type=Application Name=No Notifications Exec=python3 /path/to/nonotif_indicator.py Icon=/path/to/nonotificon.png Type=Application
-
Edite as linhas:
Exec=python3 /path/to/nonotif_indicator.py
e
Icon=/path/to/nonotificon.png
de acordo com os caminhos reais e salve o arquivo como
nonotif.desktop
em~/.local/share/applications
Adicione o indicador aos aplicativos de inicialização
Você pode adicionar o indicador a Startup Applications: Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:
/bin/bash -c "sleep 15 && python3 /path/to/nonotif_indicator.py"