OSXデバイスの場合のように、「邪魔しないでください」モードが存在しますか?.
クロムをインストールしたばかりで、通常はグループテキストやその他の通知で迷惑になります。仕事中に迷惑になる場合があります。 Ubuntuにはそのようなものがありますか?
インディケータの完全に書き換えられたバージョン(0.9.0)を完成しました。オプションは次のとおりです。
さらに、インターフェイスと動作の多くの多くの改善。
インストールは変更されません(ppa):
Sudo apt-add-repository ppa:vlijm/nonotifs
Sudo apt-get update
Sudo apt-get install nonotifs
以下のインジケータを使用して、通知を一時的にオフにすることができます。
または通知を表示:
トリックは、dbus-monitor
を使用して今後の通知をインターセプトし、表示される前にそれらを停止する単純なコマンドです。
このインジケータは、使いやすい「ラッパー」であり、オフとオンを切り替えます。
now(Trusty、Vivid、Wily、Xenial)によると:
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
ファイルを削除してください。
または手動で:
ソリューションは、1つの同じディレクトリに一緒に格納する必要がある多くのアイテムで構成されています。
指標:以下のスクリプトを空のファイルにコピーし、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
1つの同じディレクトリにとして保存します:
#!/bin/bash
dbus-monitor "interface='org.freedesktop.Notifications'" | xargs -I '{}' pkill notify-osd
このスクリプトを実行可能にする
3つのアイコン。それぞれを右クリックして、2つのスクリプトとともに(正確に)保存します。
それでおしまい。次のコマンドでインジケーターをテスト実行します:
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
の2つの基本オプションがあります。両方が.desktop
ファイルにまとめられ、ランチャーとして機能します。
-m
を使用すると、notify-osdはブロックされる前に最終通知を送信します。実行中のスクリプトの別のインスタンスがある場合は、スクリプトが既にそのジョブを実行していることをユーザーに通知するグラフィカルなポップアップが表示されます。
-u
オプションで呼び出されると、スクリプトは通知のブロックを停止し、通知を表示して確認します。スクリプトの以前のインスタンスが実行されていない場合、ユーザーには現在何もブロックされていないことが通知されます。
スクリプトのソースはこちらから入手できます。最新バージョンについては、常に github で見つけることができます。 Sudo apt-get install git
で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: [email protected]
# 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
ランチャーにロックされたショートカットファイル
ミューティング前の最終通知