O aplicativo em questão executa alguma ação (aqui conectando o áudio aos fluxos de rede) e é executado minimizado se essas ações forem bem-sucedidas. Portanto, é necessário um ícone de status para exibir o estado da conexão (por exemplo, CONNECTED / DISCONNECTED). Somente ao clicar no ícone, a janela do aplicativo será aberta para dar acesso a mais opções.
Usando Python 2.6 e pyGtk, percebi isso convenientemente usando gtk_status_icon . Eu escrevi deliberadamente o aplicativo para executar o maior número possível de distribuições, incluindo as várias versões do Ubuntu. Tomei o cuidado de usar possíveis dependências somente depois que o usuário as instalou.
No entanto, agora ouvi dizer que o gtk_status_icon não será mais suportado em versões futuras do Ubuntu. Os desenvolvedores devem usar os Indicadores de aplicativo. Qual é a melhor prática para garantir que:
- Os ícones locais do aplicativo são exibidos corretamente
- O aplicativo ainda será executado e exibirá seus ícones em versões futuras do Ubuntu.
- O aplicativo também será executado e exibirá seus ícones em outros ambientes onde o applet de indicador , o libappindicator e o python-appindicator não são fornecidos.
Os mecanismos de fallback do Indicador de Aplicativo para gtk_status_icon não funcionarão se o applet de indicador não estiver em execução. Os intérpretes Python não serão executados se não houver um módulo appindicator para importar. Preciso desenvolver versões diferentes para distribuições diferentes ou existe uma maneira melhor de contornar isso.
Onde encontro uma documentação sobre como usar o ApplicationIndicator, exceto no exemplo dado no Ubuntu Wiki ? Quais comandos são fornecidos para verificar se o applet de indicador está em execução para evitar a programação de códigos-fonte diferentes para distribuições Ubuntu vs. não Ubuntu?
Tenho uma excelente solução que funcionou bem no StackApplet - criei uma versão funcionalmente equivalente do
appindicator
módulo que usagtk.StatusIcon
internamente para fornecer funcionalidade idêntica quando o módulo real não existe.Usá-lo é tão simples quanto:
appindicator_replacement.py
Adicionando o seguinte ao seu aplicativo:
É isso aí! Agora, seu aplicativo será executado perfeitamente com ou sem suporte para AppIndicators. Ele ainda será executado no Windows, supondo que você não tenha nenhum outro código específico da plataforma.
Nota: o arquivo é liberado sob a licença MIT - para que você possa usá-lo praticamente para qualquer coisa.
fonte
Você precisará escrever o código para ambos. Você pode detectar a presença de appindicator no seu código Python usando algo semelhante a:
A partir daí, use o have_appindicator para decidir se você deve usar o código do appindicator ou o código gtk_status_icon.
Infelizmente, isso também significa que você precisará ter um Ubuntu e outro ambiente para testar.
fonte
Dessa forma, você pode detectar se o applet de indicador está em execução. Você não precisa se preocupar com o Ubuntu 11.04, porque este não será o caso. Não há cenário de fallback porque o applet de indicador é um componente obrigatório, executando por padrão.
fonte
/usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service
tarefas.