Уведомление-отправка игнорирует тайм-аут?

Может быть, я делаю что-то не так, но не должны команды (запускаются отдельно)

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

Для получения дополнительной информации о решении выше, прочитайте эту статью:

Настраиваемые пузыри уведомлений для Ubuntu

Это было намеренно реализованным нарушением установленных соглашений без дисквалификации в среде хост-терминала. то есть. notify-send больше не должен существовать, так как это ставит под угрозу хорошо установленную ожидаемую и документированную функциональность, поэтому вместо этого новая команда notify-graffiti теперь должно существовать - что???? Подождите секунду... все те сценарии, которые используют "обычное" написание имени команды, будут скомпрометированы!?! изменив соглашение о том, как пишется название команды?!?! - Хммм. Эта философия исключительно, как это ни парадоксально лицемерна, так как поддерживается интерфейсом настольного терминала Unity.

Это не может быть сделано в обоих направлениях - сохранение некоторых соглашений, т.е. имя команды и еще не все, функциональность команды, как документировано. Если функциональность должна быть скомпрометирована, то и имя команды должно быть таким, чтобы поддерживать целостность, условность, согласованность и т. Д. "Опыта" пользователя, или это "разочарование", "раздражение", "раздражение" пользователя...

ссылка:

Закладка:
Уведомление-отправка игнорирует тайм-аут?

Существует небольшой удобный скрипт 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, есть параметр, который можно включить:

Уведомления> Удалить уведомления после истечения времени ожидания

Другие вопросы по тегам