Notificações de desktop de linha de comando no Ubuntu Lucid

7

Estou escrevendo um shell script do qual gostaria de exibir uma notificação na área de trabalho que fica em um canto da tela até que o usuário clique nela e, se várias notificações forem enviadas, todas elas sejam exibidas e visível ao mesmo tempo em um na tela. Eu tentei notify-send , que funcionou perfeitamente no Ubuntu Hardy, mas não pode fazer o que eu preciso no Ubuntu Lucid. O que devo usar em vez disso?

Eu também tentei pynotify ( python-notify ) e libnotify , mas todos eles parecem usar o mesmo backend, que não pode fazer o que eu quero por padrão.

Eu tentei

$ notify-send foo

, mas exibe uma notificação que expira após alguns segundos (não boa) e

$ notify-send -t 0 foo

exibe uma notificação em uma janela no meio da tela (não boa). Se eu fizer

$ notify-send foo
$ notify-send bar

apenas uma das notificações é exibida ao mesmo tempo (não é boa).

Depois de mais algumas pesquisas, descobri:

  • O link explica que o Ubuntu mudou o mecanismo de notificação em 2008.
  • /usr/lib/notify-osd/notify-osd é o binário de back-end que exibe as notificações
por pts 14.12.2010 / 14:35

1 resposta

5

Parece que notify-osd é o novo daemon de notificação do Ubuntu que não pode fazer o que eu quero, e notification-daemon é o que eu preciso, o que era o padrão nas versões anteriores do Ubuntu, como Hardy. Aqui está como instalá-lo e torná-lo o padrão no 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

Opcional:

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

Agora, isso funciona como pretendido:

$ notify-send -t 0 foo

Para reverter as alterações, execute:

$ sudo apt-get install --reinstall notify-osd
    
por 14.12.2010 / 15:20