Уведомление-отправка игнорирует тайм-аут?
Может быть, я делаю что-то не так, но не должны команды (запускаются отдельно)
notify-send -t 1 "test"
notify-send -t 1000 "test"
notify-send -t 10000 "test"
Есть разные таймауты? Первый почти мгновенный, второй занимает 1 секунду, а третий - 100 секунд. Во всех случаях это занимает около шести секунд.
Есть ли способ обойти поведение? Поскольку разработчики помечают это как "фичу" вместо ошибки, я бы хотел несколько альтернатив...
7 ответов
Это известная ошибка: https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508
(Это считается "дизайнерским решением" сопровождающего.)
Как упомянуто в одном из постов выше, есть дизайнерское решение, чтобы запретить эту функцию. К счастью для вас, другие люди тоже не согласны и создали PPA, и вы можете отменить это решение и для своей системы.
Чтобы решить вашу проблему просто:
sudo add-apt-repository ppa:leolik/leolik
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install libnotify-bin
pkill notify-osd
Необязательный
Чтобы добавить еще больше функций для отправки-уведомления, чем у вас есть:
Начиная с Ubuntu 16.04 и далее:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install notifyosdconfig
Для версий 9.10-14.10:
sudo add-apt-repository ppa:amandeepgrewal/notifyosdconfig
sudo apt-get update
sudo apt-get install notifyosdconfig
Для получения дополнительной информации о решении выше, прочитайте эту статью:
Это было намеренно реализованным нарушением установленных соглашений без дисквалификации в среде хост-терминала. то есть. notify-send
больше не должен существовать, так как это ставит под угрозу хорошо установленную ожидаемую и документированную функциональность, поэтому вместо этого новая команда notify-graffiti
теперь должно существовать - что???? Подождите секунду... все те сценарии, которые используют "обычное" написание имени команды, будут скомпрометированы!?! изменив соглашение о том, как пишется название команды?!?! - Хммм. Эта философия исключительно, как это ни парадоксально лицемерна, так как поддерживается интерфейсом настольного терминала Unity.
Это не может быть сделано в обоих направлениях - сохранение некоторых соглашений, т.е. имя команды и еще не все, функциональность команды, как документировано. Если функциональность должна быть скомпрометирована, то и имя команды должно быть таким, чтобы поддерживать целостность, условность, согласованность и т. Д. "Опыта" пользователя, или это "разочарование", "раздражение", "раздражение" пользователя...
ссылка:
- подробности см.: Как называется программа, которая отображает уведомления?
- проверять "
man notify-send
" - смотрите раздел Уведомления не истекающие в документе Ubuntu. Уведомление | Ubuntu App Developer
Существует небольшой удобный скрипт notify-send.sh в качестве замены для уведомления-отправки, который позволяет закрыть или заменить ранее отправленные уведомления.
Редактировать: как указал @Glutanimate, этот скрипт по умолчанию поддерживает время истечения.
Я не мог получить время истечения, чтобы работать в конце, поэтому я пошел довольно хакерский способ отправить уведомление с 2-секундным таймаутом, как это:
notify-send.sh --print-id test | xargs -I {} bash -c "sleep 2 && notify-send.sh --close={}" &
Это в миллисекундах. Я тестировал на XUbuntu 16.04 (Ubuntu XFCE)
notify-send -t 3000 "test"
ровно 3 секунды
Да, если вы используете
notify-send -u critical -t 0
уведомление останется на экране, пока вы не нажмете на него.
цитата из этого ответа
Для тех, кто использует среду рабочего стола Cinnamon, есть параметр, который можно включить:
Уведомления> Удалить уведомления после истечения времени ожидания