Lam*_*mda 16 notification indicator scripts notify-osd notify-send
是否存在像 OSX 设备那样的“请勿打扰模式”,您可以决定何时通知会打扰您,或不打扰您。
我刚刚安装了 chrome,我通常会收到群文本和其他通知的垃圾邮件,这在我尝试工作时会很烦人。 Ubuntu 是否存在类似的东西?
Ser*_*nyy 11
下面的脚本允许将任何通知静音显示在屏幕上。-m静音和-u取消静音有两个基本选项。两者都放在一个.desktop文件中作为启动器。
当-m被使用时,通知-OSD将被阻塞之前发送一个最后通知。如果有另一个脚本实例正在运行,它将显示一个图形弹出窗口,通知用户该脚本已经在执行其工作。
当使用-u选项调用时,脚本将停止阻止通知并通过显示一个来确认。如果之前没有脚本实例在运行,用户将被通知现在没有任何阻止。
脚本源可在此处获得。有关更多最新版本,您始终可以在我的github上找到它。您可以安装 gitsudo 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
Run Code Online (Sandbox Code Playgroud)
只获取脚本本身。
wget https://raw.githubusercontent.com/SergKolo/sergrep/master/notify-block.sh && chmod +x notify-block.sh
Run Code Online (Sandbox Code Playgroud)
这只是我个人使用的一个例子。将每一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
Run Code Online (Sandbox Code Playgroud)
锁定到启动器的快捷方式文件
静音前的最终通知
Jac*_*ijm 10
刚刚完成了指标的完全重写版本 (0.9.0)。现在选项包括:
此外,对界面和行为的许多改进。
安装不变(ppa):
sudo apt-add-repository ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs
Run Code Online (Sandbox Code Playgroud)
通过下面的指示,您可以选择暂时关闭通知:
或显示通知:
诀窍是一个简单的命令,dbus-monitor用于拦截即将到来的通知并在它们出现之前阻止它们。
该指示器是一个用户友好的“包装器”,可以将其关闭和打开。
按照现在(对于 Trusty、Vivid、Wily、Xenial):
sudo apt-add-repository ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs
Run Code Online (Sandbox Code Playgroud)
这将全局安装(包括启动器)。首选通过 ppa 安装,因为它维护最新版本,并定期更新。
该指标将在 Dash 中显示为NoNotifications
如果您通过 ppa 安装,但以前从下面手动安装,请先运行rm ~/.local/share/applications/nonotif.desktop以删除本地.desktop文件。
或手动:
该解决方案存在多个项目,您只需将它们存储在同一个目录中即可。
指标:将下面的脚本复制到一个空文件中,另存为nonotif_indicator.py:
sudo apt-add-repository ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs
Run Code Online (Sandbox Code Playgroud)该dbus-monitor脚本; 将它(完全)保存nonotifs.sh 在与第一个脚本相同的目录中:
sudo apt-add-repository ppa:vlijm/nonotifs
sudo apt-get update
sudo apt-get install nonotifs
Run Code Online (Sandbox Code Playgroud)
使这个脚本可执行
三个图标;右键单击它们中的每一个并将它们与两个脚本一起保存为(完全正确):
就是这样。现在使用以下命令测试运行指标:
python3 /path/to/nonotif_indicator.py
Run Code Online (Sandbox Code Playgroud)
并打开/关闭通知
如果您想要一个带有指示器的启动器:
复制下面的图标,另存为nonotificon.png:
将下面的代码复制到一个空文件中:
#!/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()
Run Code Online (Sandbox Code Playgroud)编辑行:
Exec=python3 /path/to/nonotif_indicator.py
Run Code Online (Sandbox Code Playgroud)
和
Icon=/path/to/nonotificon.png
Run Code Online (Sandbox Code Playgroud)
根据实际路径,并且将文件保存为nonotif.desktop在~/.local/share/applications
您可以将指示器添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:
/bin/bash -c "sleep 15 && python3 /path/to/nonotif_indicator.py"
Run Code Online (Sandbox Code Playgroud)