Como criar um ícone de indicador de aplicativo no Ubuntu 14+ sem usar o libappindicator?

1

Estou tentando escrever aplicativos simples de utilitários de desktop em PHP e wxWidgets usando wxPHP . Depois de algum esforço substancial (e mais de 20 minutos de tempo de compilação) para gerar o módulo PHP wxwidgets.so , pensei em começar com um simples indicador de status. Estou executando o PHP 5.5.9 no Ubuntu 14.04 LTS.

Eu perguntei a uma pergunta sobre o Stack Overflow e adicionei pesquisas adicionais à medida que eu aguardar respostas. Acontece que não é simples em versões recentes do Ubuntu, uma vez que (a) versões após 11.x operavam uma lista de permissões para permitir que ícones comuns de wxTaskBarIcon apareçam, e (b) desde 13.10% os ícones co_de% não aparecem, e o Ubuntu requer tratamento especial.

Eu acho que existe um hack para trazer a whitelist de volta para 14.x mas requer mexer com os repositórios confiáveis, e em qualquer caso eu prefiro apenas fazê-lo corretamente.

Eu vejo em Ask Ubuntu que há perguntas sobre como encontrar o PID dos ícones de status ao vivo e como adicionar itens de menu ao applet de sessão ("cog") . Ambos usam chamadas DBus da linha de comando. Provavelmente há uma pergunta sobre exatamente o que eu quero alcançar mas as respostas dependem de wxTaskBarIcon , para o qual o PHP não tem ligações disponíveis.

Eu, portanto, acho que deve haver chamadas DBus que eu possa fazer do console (e também de um aplicativo PHP também), mas a documentação para isso fica em algum lugar entre o thin e o inexistente. Eu tentei navegar por vários itens do código-fonte no GitHub, mas, além de procurar por algumas strings de comando libappindicator , eu realmente não sei o que estou procurando. Eu também desenho um espaço em branco com a documentação oficial , a menos que eu esteja perdendo algo realmente óbvio.

Minhas perguntas, portanto, são: um indicador de aplicativo pode ser criado usando chamadas DBus na linha de comando e, em caso afirmativo, como? Eu quero jogar com ícones, texto, menus e qualquer coisa que os indicadores do sistema possam fazer. Ou, se o DBus não é o caminho para as coisas, como posso fazer o que o freedesktop.org faz, dado que eu não tenho ligações para essa biblioteca para o meu idioma preferido?

Editar: adicionei uma resposta automática à minha pergunta no Stack Overflow, indicando que a melhor solução disponível no momento é criar um aplicativo de indicador separado no Python e abrir um canal de comunicação entre ele e o aplicativo wxPHP.

No entanto, vou manter esta questão em aberto, já que é um pouco diferente - como alcançar os mesmos fins, a partir do PHP, usando o DBus. (Espero que eu possa descobrir como enviar mensagens DBus em PHP, mas o formato é o que eu preciso).

    
por halfer 22.11.2015 / 20:16

0 respostas