Existe alguma maneira de 'ligar' o menu de mensagens?

5

Eu gostaria de escrever um aplicativo que receba uma notificação sempre que o menu de mensagens estiver ativado (o envelope azul acende) e sempre que ele for desativado (o envelope azul retorna à sua cor padrão).

Existe alguma maneira de obter uma notificação para isso? Eu não estou realmente preocupado com a linguagem de programação neste caso - embora C, Python ou PHP seja o preferido.

    
por Nathan Osman 08.07.2011 / 05:26

1 resposta

7

Pergunta interessante. Não existe uma API oficial para descobrir se o menu de mensagens mudou seu estado. Você pode fazer isso observando a interface DBus do indicador-messages-service. Um script de shell é assim:

  $ gdbus call --session --dest com.canonical.indicator.messages --object-path /com/canonical/indicator/messages/service --method com.canonical.indicator.messages.service.AttentionRequested

Existe também um sinal " AttentionChanged ". Você pode acompanhar isso para determinar o estado conforme ele é atualizado.

Além disso, se você estiver interessado nos itens individuais no menu de mensagens, todas as informações serão exportadas usando libindicate . É possível ter outro ouvinte de biblioteca no DBus que obtenha todas as informações e agregue-as de uma maneira diferente.

    
por Ted Gould 08.07.2011 / 16:50