Одна из силы Единицы является различными стандартизированными индикаторами. Я хочу настроить звуковой индикатор с дополнительной записью меню, которая выполняет маленький сценарий оболочки. Я не боюсь небольшого кода Python, и я надеюсь, что кто-то может указать на меня на правильную подпрограмму в правильном файле. Я подозреваю, что это будет довольно легко, но все индикаторы именно так чрезмерно увеличены в размере, что я не могу просмотреть их код в разумный срок.
Любая справка ценится. Я знаю, что это возможно, поскольку чудесная Обертка Skype делает это.
Одна проблема щелчка от одного редактирования прежде теперь превратилась в проблему DBus. В основном мы должны сказать звуковому индикатору, что наш поддельный плеер завершил теперь. Грязный взлом перешел вокруг той проблемы:
#!/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
Справка от сообщества ценится, поскольку у меня нет опыта никем с DBus вообще.
По некоторым причинам решение, предложенное Takkat, имеет недостаток, что получающаяся запись в звуке индикатора может только быть нажата однажды на сессию. Если у кого-то будет фиксация для, чем, прокомментируйте или ответьте, то Вы будете upvoted. Здесь Вы видите результат:
Я сильно подозреваю, что проблема связана с .desktop-файлом в /home/confus/.local/share/application/toggleSpeaker.desktop
, который является этим:
[Desktop Entry]
Type=Application
Name=toggleSpeaker
GenericName=Toggle Speaker
Icon=gstreamer-properties
Exec=/home/confus/bin/toggleSpeaker.sh
Terminal=false
И вот минимальный пример сценария в /home/confus/bin/toggleSpeaker.sh
для Вашего внимания:
#!/bin/bash
# This is '/home/confus/bin/toggleSpeaker.sh'
notify-send "Toggle Speaker" "$(date)"
exit 0
Путем выполнения dconf-редактор от эти dconf-инструменты мы можем включить медиаплеер MPRIS complatible приложение к звуковому меню с ключом "com.canonical.indicator.sound.interested-медиаплееры" .
В примере здесь test
был включен, который указывает на test.desktop
файл в ~/.local/share/applications
, куда мы можем запустить наше приложение от Exec=
поле. Перезапустите свою сессию для вступления в силу.
, Поскольку запись в этом меню тесно связана с медиаплеером, управление приложениями сделано шиной сессии DBus com.canonical.indicator.sound. Поэтому мы не сможем повторно выполнить сценарий, пока сброс индикатора не был сделан. Я успешно выполнился для перезапуска тестового приложения после выполнения Завершение работы () на объект org/ayatana/indicator/service, но это - настоящий взлом и определенно не способ, которым должно использоваться меню звука индикатора.
Это может однако указать на правильное направление. т.е. мы должны использовать DBus для нашего сценария или приложения, мы хотим находиться в звуковом меню .
индикатора