Вопрос Как добавить пользовательский элемент в Sound Indicator (и сделать его кликабельным более одного раза)?


Оригинальный вопрос

Sound indicator

Одной из сильных сторон Единства являются различные стандартизированные показатели. я хочу настроить звуковой индикатор с помощью дополнительной записи меню, которая запускает небольшой скрипт оболочки, Я не боюсь небольшого кода Python, и я надеюсь, что кто-то может указать мне на правильную подпрограмму в правильном файле. Я подозреваю, что это будет довольно легко, но все индикаторы настолько раздуты, что я не могу просмотреть их код в разумные сроки.

Любая помощь приветствуется. Я знаю, что это возможно, как чудесный Skype-Wrapper Имеет ли это.


Изменить 2 - Теперь грязный DBus hack

Одна проблема с одним щелчком мыши из одного редактирования раньше превратилась в проблему 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.


Изменить 1 - Takkat нашел решение, но только однократно кликабельное?

По какой-то причине решение предложено Takkat имеет тот недостаток, что итоговая запись в звуке индикатора может быть нажата только один раз за сеанс, Если у кого-то есть исправление, пожалуйста, прокомментируйте или ответьте, вы будете поддержаны. Здесь вы можете увидеть результат:

Sound indicator with script entry

Я сильно подозреваю проблема связана с файлом .desktop-file в /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

4
2017-08-28 19:38


происхождения


Мальчик, это действительно превращается в настоящую боль в тылу. Отсутствует документация и справочные ресурсы. Также кажется, что Unity сделала ненужные настройки такого рода ненужными. - con-f-use


ответы:


Путем dconf-редактор из dconf-инструменты  Install dconf-tools мы можем включить MPRIS медиа плеер приложение в звуковое меню с помощью клавиши "com.canonical.indicator.sound.interested-медиа-плееры",

enter image description here

В примере здесь test был включен, что указывает на test.desktop файл в ~/.local/share/applications где мы можем запускать наше приложение из Exec= поле. Перезапустите сеанс, чтобы он вступил в силу.

enter image description here

Поскольку запись в этом меню тесно связана с медиаплеером, управление приложениями осуществляется с помощью шины сеанса DBus com.canonical.indicator.sound, Вот почему мы не сможем перезапустить скрипт до тех пор, пока не будет выполнен сброс индикатора. Мне удалось перезапустить тестовое приложение после выполнения Неисправность() на орг / Ayatana / индикатор / услуги объект, но это довольно хак и, определенно, не то, как следует использовать меню звуковых индикаторов.

Однако он может указывать на правильное направление. то есть нам нужно использовать DBus для нашего скрипта или приложения, которое мы хотим проживать в меню индикатора звука,


4
2017-08-28 22:00



Чтобы получить значок, пусковая установка должна иметь Icon= набор свойств. Следующий небольшой вопрос: для меня сценарий запускается ровно один раз в каждом сеансе. Дальнейшие нажатия на запись просто игнорируются. У вас есть идея, почему это так? - con-f-use
Хорошо, я адаптировал запас .desktop файл от дерзкой ведьмы сказал Icon=audacious и который отобразил значок Audacious 'в моей пользовательской записи индикатора. Пробег однажды может быть связан с моей адаптацией смелой пусковой установки. Не могли бы вы отправить код своего .desktop? Я разместил свой. - con-f-use
Большое спасибо. Можете ли вы разместить свой код? Раньше я никогда не работал с DBus. - con-f-use
Nevermind, это сделало это для меня из терминала: qdbus com.canonical.indicator.sound /org/ayatana/indicator/service org.ayatana.indicator.service.Shutdown, Хотя я понятия не имею, что я делаю. Вы работаете над ортодоксальным решением? Если бы вы могли объяснить это простым языком, пока вы на нем. Ваша помощь была очень оценена! Большое спасибо! - con-f-use
То же самое здесь - я понятия не имею, что еще мы можем отключить. Лучшим решением было бы написать приложение / скрипт, который контролируется DBus - я думаю, это намного больше. - Takkat