7

Я пишу сценарий оболочки, из которого я хотел бы отобразить уведомление на рабочем столе, которое остается в одном углу экрана до тех пор, пока пользователь не щелкнет по нему, а если отправлено несколько уведомлений, то все они отображаются и отображаются в одновременно в одном на экране. Я попытался notify-send , который отлично работал на Ubuntu Hardy, но он не может делать то, что мне нужно на Ubuntu Lucid. Что я должен использовать вместо этого?

Я также пробовал pynotify (python-notify notify ) и libnotify , но все они, похоже, используют один и тот же бэкэнд, который не может делать то, что я хочу по умолчанию.

я пробовал

$ notify-send foo

, но он отображает уведомление, которое истекает через несколько секунд (не хорошо), и

$ notify-send -t 0 foo

отображает уведомление в окне в середине экрана (не хорошо). Если я сделаю

$ notify-send foo
$ notify-send bar

только одно из уведомлений отображается одновременно (не хорошо).

После еще нескольких копаний я нашел:

  • http://www.markshuttleworth.com/archives/253 объясняет, что Ubuntu изменил механизм уведомлений в 2008 году.
  • /usr/lib/notify-osd/notify-osd - это бинарный файл, который отображает уведомления

1 ответ1

5

Кажется , что notify-osd является новой Ubuntu уведомления демон , который не может делать то , что я хочу, и notification-daemon кто мне нужен, тот , который был по умолчанию в предыдущих версиях Ubuntu , как Hardy. Вот как установить его и сделать его по умолчанию на Ubuntu Lucid:

$ sudo apt-get install notification-daemon
$ sudo perl -pi -e 's@^Exec=.*@Exec=/usr/lib/notification-daemon/notification-daemon@' /usr/share/dbus-1/services/org.freedesktop.Notifications.service
$ sudo killall notify-osd

Необязательный:

$ sudo rm -f /usr/share/dbus-1/services/org.freedesktop.Notifications.service.*

Теперь это работает как задумано:

$ notify-send -t 0 foo

Чтобы отменить изменения, выполните:

$ sudo apt-get install --reinstall notify-osd

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .