К сожалению, вы не можете очистить или "отклонить" notify-osd
. Возможно, вам повезет больше, если вы используете Zenity ; у него больше опций, чем у уведомления-отправки.
Вы можете использовать опцию --timeout
чтобы отклонить уведомление через некоторое количество секунд.
zenity --info --timeout=5 --title="Test Notification" --text "$(date +%Y%m%d-%H%M%S): My notification"
Вы также можете сохранить список идентификаторов процессов (в переменной или файле среды) предыдущих уведомлений и отправить им сигнал HUP
чтобы очистить их перед отображением нового уведомления.
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" &
Или убейте все процессы zenity
перед отображением нового уведомления:
killall zenity
zenity --info --title="Test Notifications" --text "$(date +%Y%m%d-%H%M%S): My notification" &
Или убейте определенные процессы zenity
перед отображением нового уведомления:
ps ho pid,args | grep -i 'zenity.\+--title=test notifications' | sed -e 's/^ *\([0-9]\+\).*$/\1/'
zenity --info --title="Test Notifications" --text "$(date +%Y%m%d-%H%M%S): My notification" &