pengantar
Skrip di bawah memungkinkan mematikan pemberitahuan yang muncul di layar. Ada dua opsi dasar -m
untuk bisu dan -u
untuk bersuara . Keduanya dimasukkan ke dalam .desktop
file untuk dijadikan peluncur.
Saat -m
digunakan, notify-osd akan mengirim pemberitahuan akhir sebelum diblokir. Jika ada contoh lain dari skrip berjalan, itu akan menampilkan popup grafis yang akan memberi tahu pengguna bahwa skrip sudah melakukan tugasnya.
Saat dipanggil dengan -u
opsi, skrip akan berhenti memblokir notifikasi dan akan mengonfirmasi hal itu dengan menunjukkannya. Jika tidak ada skrip sebelumnya yang berjalan, pengguna akan diberi tahu bahwa saat ini tidak ada yang diblokir.
Sumber Skrip
Sumber skrip tersedia di sini. Untuk versi yang lebih baru, Anda selalu dapat menemukannya di github saya . Anda dapat menginstal git dengan sudo apt-get install git
dan mengkloning seluruh repositori dengan git clone https://github.com/SergKolo/sergrep.git
atau menggunakan
wget https://raw.githubusercontent.com/SergKolo/sergrep/master/notify-block.sh && chmod +x notify-block.sh
untuk mendapatkan hanya script itu sendiri.
#!/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 "$@"
templat pintasan .desktop
Ini hanyalah contoh dari apa yang saya gunakan secara pribadi. Ganti setiap Exec=
baris dengan jalur yang sesuai ke skrip di lingkungan Anda. Tentu saja Anda Icon=
harus diubah juga. Lebih disukai, simpan file ini di ~/.local/share/applications
folder Anda
[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
Tangkapan layar
File pintasan terkunci ke peluncur
Pemberitahuan terakhir sebelum mematikan