L'un des points forts d'Unity réside dans les différents indicateurs standardisés. Je veux personnaliser l'indicateur de son avec une entrée de menu supplémentaire qui exécute un petit script Shell . Je n'ai pas peur d'un petit Python et j'espère que quelqu'un pourra me diriger vers le bon sous-programme dans le bon fichier. Je soupçonne que ce sera assez facile mais tous les indicateurs sont tellement gonflés que je ne peux pas parcourir leur code dans un délai raisonnable.
Toute aide est appréciée. Je sais que c'est possible car le merveilleux Skype-Wrapper le fait.
Le problème en un clic d'une édition précédente s'est maintenant transformé en un problème DBus. Fondamentalement, nous devons dire à l'indicateur sonore que notre faux lecteur est maintenant terminé. Un hack sale contourne ce problème:
#!/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
L'aide de la communauté est appréciée car je n'en ai aucune expérience avec DBus.
Pour une raison quelconque, la solution proposée par Takkat a l'inconvénient que l'entrée résultante dans le son de l'indicateur ne peut être cliquée qu'une fois par session . Si quelqu'un a un correctif, merci de commenter ou de répondre, vous serez voté. Ici vous pouvez voir le résultat:
Je soupçonne fortement que le problème est lié au fichier .desktop dans /home/confus/.local/share/application/toggleSpeaker.desktop
, c'est-à-dire:
[Desktop Entry]
Type=Application
Name=toggleSpeaker
GenericName=Toggle Speaker
Icon=gstreamer-properties
Exec=/home/confus/bin/toggleSpeaker.sh
Terminal=false
Et voici un exemple minimal du script dans /home/confus/bin/toggleSpeaker.sh
pour votre considération:
#!/bin/bash
# This is '/home/confus/bin/toggleSpeaker.sh'
notify-send "Toggle Speaker" "$(date)"
exit 0
En exécutant dconf-editor à partir de dconf-tools nous pouvons incorporer une application de lecteur multimédia compatible MPRIS au menu audio avec la touche "com.canonical.indicator.sound. lecteurs-médias-intéressés ".
Dans l'exemple ici, test
a été inclus, ce qui pointe vers un test.desktop
fichier dans ~/.local/share/applications
où nous pouvons exécuter notre application à partir de Exec=
champ. Redémarrez votre session pour prendre effet.
Comme une entrée de ce menu est étroitement liée à un lecteur multimédia, le contrôle de l'application est effectué par le bus de session DBus com.canonical.indicator.sound . C'est pourquoi nous ne pourrons pas relancer un script tant qu'une réinitialisation de l'indicateur n'aura pas été effectuée. J'ai réussi à redémarrer l'application de test après avoir exécuté Shutdown () sur l'objet org/ayatana/indicateur/service mais c'est tout à fait un hack et certainement pas la façon dont le menu de son indicateur devrait être utilisé.
Cela peut cependant indiquer la bonne direction. c'est-à-dire nous devons utiliser DBus pour notre script ou application que nous voulons résider dans le menu indicateur de son .