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).