บทนำ
ซอลเบลโลว์สคริปต์อนุญาตให้ปิดเสียงการแจ้งเตือนใด ๆ ไม่ให้ปรากฏบนหน้าจอ มีสองตัวเลือกพื้นฐาน-m
สำหรับปิดเสียงและ-u
เปิดเสียง ทั้งสองรวมกันเป็น.desktop
ไฟล์เพื่อใช้เป็นตัวเรียกใช้งาน
เมื่อ-m
มีการใช้งาน notification-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 "$@"
.desktop แม่แบบทางลัด
นี่เป็นเพียงตัวอย่างของสิ่งที่ฉันใช้เป็นการส่วนตัว แทนที่แต่ละ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
ภาพหน้าจอ
ไฟล์ช็อตคัตล็อคเป็นตัวเรียกใช้งาน
การแจ้งเตือนครั้งสุดท้ายก่อนที่จะปิดเสียง