Я пишу сценарий оболочки, из которого я хотел бы отобразить настольное уведомление, которое остается в одном углу дисплея, пока пользователь не нажимает на него, и если несколько уведомлений отправляются, то все они отображены и видимы одновременно в одном на экране. Я попробовал notify-send
, который работал отлично над Ubuntu Hardy, но она не может сделать то, в чем я нуждаюсь на Ясной Ubuntu. Что я должен использовать вместо этого?
Я также попробовал pynotify
(python-notify
) и libnotify
, но они все, кажется, используют тот же бэкенд, который не может сделать то, что я хочу по умолчанию.
Я попробовал
$ notify-send foo
, но это отображает уведомление, которое испытывает таймаут после некоторых вторых (не хороший), и
$ notify-send -t 0 foo
отображает уведомление в окне посреди экрана (не хороший). Если я делаю
$ notify-send foo
$ notify-send bar
только одно из уведомлений отображено одновременно (не хороший).
Еще после некоторого рытья я нашел:
/usr/lib/notify-osd/notify-osd
двоичный файл бэкенда, который отображает уведомленияЭто кажется этим notify-osd
новый демон уведомления Ubuntu, который не может сделать то, что я хочу, и notification-daemon
тот, в котором я нуждаюсь, тот, который был значением по умолчанию в предыдущих версиях Ubuntu как Hardy. Вот то, как установить его и сделать его значением по умолчанию на Ubuntu Ясный:
$ 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