Como posso adicionar um item personalizado ao indicador de som (e torná-lo clicável mais de uma vez)?

4

A pergunta original

Uma das forças da Unity são os vários indicadores padronizados. Quero personalizar o indicador de som com uma entrada de menu adicional que executa um pequeno script de shell . Eu não tenho medo de um pequeno código Python e espero que alguém possa me apontar para a sub-rotina correta no arquivo correto. Eu suspeito que será bastante fácil, mas todos os indicadores estão tão inchados que eu não posso olhar através de seu código em um tempo razoável.

Qualquer ajuda é apreciada. Eu sei que é possível como o maravilhoso Skype- Wrapper faz isso.

Editar 2 - Agora um ataque DBus sujo

O problema de um clique de uma edição antes agora se transformou em um problema DBus. Basicamente, temos que dizer ao indicador de som que o nosso falso jogador terminou agora. Um hack sujo navega em torno desse problema:

#!/bin/bash
# This is '/home/confus/bin/toggleSpeaker.sh'

notify-send "Toggle Speaker" "$(date)"
qdbus \
    com.canonical.indicator.sound  \
    /org/ayatana/indicator/service \
    org.ayatana.indicator.service.Shutdown
exit 0

A ajuda da comunidade é apreciada, pois não tenho experiência alguma com o DBus.

Editar 1 - O Takkat encontrou uma solução, mas apenas clicável uma vez?

Por alguma razão, a solução proposta por Takkat tem a desvantagem de que a entrada resultante no som do indicador só pode ser clicada uma vez por sessão . Se alguém tiver uma correção para, por favor, comente ou responda, você será votado para cima. Aqui você pode ver o resultado:

Suspeito que o problema está relacionado ao arquivo .desktop em /home/confus/.local/share/application/toggleSpeaker.desktop , que é este:

[Desktop Entry]
Type=Application

Name=toggleSpeaker
GenericName=Toggle Speaker

Icon=gstreamer-properties

Exec=/home/confus/bin/toggleSpeaker.sh
Terminal=false

E aqui está um exemplo mínimo do script em /home/confus/bin/toggleSpeaker.sh para sua consideração:

#!/bin/bash
# This is '/home/confus/bin/toggleSpeaker.sh'

notify-send "Toggle Speaker" "$(date)"
exit 0
    
por con-f-use 28.08.2012 / 21:38

1 resposta

4

Ao executar dconf-editor a partir das dconf-tools podemos incorporar um complemento MPRIS aplicação media player no menu de som com a tecla "com.canonical.indicator.sound.interested-media-players" .

No exemplo aqui, test foi incluído, o que aponta para um arquivo test.desktop em ~/.local/share/applications , onde podemos executar nosso aplicativo a partir do campo Exec= . Reinicie sua sessão para entrar em vigor.

Como uma entrada neste menu está intimamente relacionada a um media player, o controle de aplicativos é feito pelo barramento de sessão DBus com.canonical.indicator.sound . É por isso que não poderemos executar novamente um script até que uma redefinição do indicador seja concluída. Consegui reiniciar o aplicativo de teste depois de executar Shutdown () no objeto org / ayatana / indicador / serviço , mas isso é um truque e definitivamente não é o som do indicador menu deve ser usado.

Pode, no entanto, apontar para a direção correta. ou seja, precisamos usar o DBus para nosso script ou aplicativo que desejamos residir no menu indicador de som .

    
por Takkat 29.08.2012 / 00:00