O Notify-osd não manipula ações. Essa é uma decisão de design explícita dos desenvolvedores. Como os estados das especificações de design , "além do efeito de foco, as bolhas não devem responder diretamente aos dispositivos de entrada de forma alguma." O também afirma que, quando ações são solicitadas, elas retornam para uma caixa de alerta:
Para casos em que os aplicativos esperavam que o sistema de notificação permitir a interatividade sem verificar se ela realmente funciona e casos em que as aplicações esperavam que o sistema de notificação exibir uma notificação indefinidamente, o Notify OSD deve mostrar um alerta caixa como um fallback.
Embora esteja em debate se esta é ou não uma boa decisão, O Notify-osd é uma implementação da especificação de notificação do Freedesktop , que afirma claramente que é a responsabilidade do cliente para garantir que o servidor suporte a capacidade desejada:
Os clientes devem tentar evitar suposições sobre a apresentação e habilidades do servidor de notificação. O conteúdo da mensagem é o coisa mais importante.
Os clientes podem verificar com o servidor quais recursos são suportados usando a mensagem GetCapabilities.
Você pode testar os recursos do servidor de notificação com algo como:
import pynotify
pynotify.init("Test Capabilities")
caps = pynotify.get_server_caps()
if caps and 'actions' in caps:
# We support actions, so add a button.
notification = pynotify.Notification("Can we use actions?", \
"Yup, we sure do.")
notification.add_action("ignore", "Ignore", ignore_cb)
else:
notification = pynotify.Notification("Can we use actions?", \
"Nope, we don't support actions.")
notification.show()