Giriş
Aşağıdaki komut dosyası, bildirimlerin ekranda görünmemesini sağlar. -m
Sessiz ve sessiz için iki temel seçenek vardır -u
. Her ikisi de .desktop
başlatıcı görevi görmek üzere bir dosyaya konur .
Ne zaman -m
kullanılır, haber osd bloke edilmeden önce son bildirim gönderir. Başka bir komut dosyası örneği varsa, kullanıcıya komut dosyasının zaten işini yaptığını bildiren bir grafik açılır pencere görüntülenir.
-u
Seçenek ile çağrıldığında , komut dosyası bildirimleri engellemeyi durduracak ve bir tane göstererek bunu onaylayacaktır. Hiçbir komut dosyası örneği çalışmıyorsa, kullanıcıya şu anda hiçbir şeyin engellenmediği bildirilir.
Komut Dosyası Kaynağı
Komut dosyası kaynağını burada bulabilirsiniz. Daha güncel bir sürüm için her zaman github'ımda bulabilirsiniz . Git ile kurabilir sudo apt-get install git
ve tüm veri havuzunu klonlayabilir git clone https://github.com/SergKolo/sergrep.git
veya kullanabilirsiniz
wget https://raw.githubusercontent.com/SergKolo/sergrep/master/notify-block.sh && chmod +x notify-block.sh
sadece betiğin kendisini almak için.
#!/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 kısayol şablonu
Bu sadece kişisel olarak kullandığımın bir örneğidir. Her Exec=
satırı, ortamınızdaki komut dosyası için uygun yolla değiştirin. Tabii ki sizin Icon=
de değiştirilmesi gerekecek. Tercihen, bu dosyayı ~/.local/share/applications
klasörünüzde saklayın
[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
Ekran görüntüleri
Kısayol dosyası başlatıcıya kilitlendi
Susturmadan önce son bildirim