Infelizmente, não é possível limpar ou "ignorar" o notify-osd
notificações. Você pode ter mais sorte usando Zenity ; tem mais opções do que notify-send .
Você pode usar a opção --timeout
para descartar uma notificação após alguns segundos.
zenity --info --timeout=5 --title="Test Notification" --text "$(date +%Y%m%d-%H%M%S): My notification"
Você também pode manter uma lista de IDs de processo (em uma variável de ambiente ou arquivo) de notificações anteriores e enviar a eles um sinal HUP
para apagá-los antes de exibir uma nova notificação.
i=0
pids=
for x in $(seq 1 5); do
i=$((i + 1))
zenity --info --title="Test Multiple Notifications" --text "$(date +%Y%m%d-%H%M%S): Notification number $i" &
pids+="$! "
done
sleep 5
for p in $pids; do kill -HUP $p >/dev/null 2>&1; done
i=$((i + 1))
zenity --info --timeout=2 --title="Test Multiple Notifications" --text "$(date +%Y%m%d-%H%M%S): Notification number $i" &
Ou mate todos os zenity
processos antes de exibir uma nova notificação:
killall zenity
zenity --info --title="Test Notifications" --text "$(date +%Y%m%d-%H%M%S): My notification" &
Ou mate determinados processos zenity
antes de exibir uma nova notificação:
ps ho pid,args | grep -i 'zenity.\+--title=test notifications' | sed -e 's/^ *\([0-9]\+\).*$//'
zenity --info --title="Test Notifications" --text "$(date +%Y%m%d-%H%M%S): My notification" &