Рассматриваемое приложение выполняет некоторое действие (здесь подключает аудио к сетевым потокам) и запускается в свернутом виде, если эти действия были успешными. Поэтому значок состояния необходим для отображения состояния соединения (например, СОЕДИНЕНО / ОТКЛЮЧЕНО). Только при нажатии на значок откроется окно приложения, чтобы получить доступ к дополнительным параметрам.
Используя Python 2.6 и pyGtk, я легко понял это, используя gtk_status_icon . Я специально написал приложение для запуска на как можно большем количестве дистрибутивов, включая различные версии Ubuntu. Я позаботился об использовании возможных зависимостей только после того, как пользователь установил их.
Однако теперь я слышу, что gtk_status_icon больше не будет поддерживаться в будущих выпусках Ubuntu. Разработчикам предлагается использовать индикаторы приложений. Какова наилучшая практика, чтобы убедиться, что:
- Локальные значки приложения отображаются правильно
- Приложение будет по-прежнему запускаться и отображать значки в будущих выпусках Ubuntu.
- Приложение также будет запускаться и отображать свои значки в других средах, где не предусмотрены индикатор-апплет , libappindicator и python-appindicator .
Механизмы возврата индикатора приложения к gtk_status_icon не будут работать, если апплет индикатора не запущен. Интерпретаторы Python не будут работать, если не было модуля appindicator для импорта. Нужно ли разрабатывать разные версии для разных дистрибутивов или есть лучший способ обойти это.
Где я могу найти документацию о том, как использовать ApplicationIndicator, кроме как в примере, приведенном в Ubuntu Wiki ? Какие команды предоставляются, чтобы проверить, работает ли индикатор-апплет, чтобы избежать программирования различных исходных кодов для дистрибутивов Ubuntu и не-Ubuntu?
У меня есть отличное решение, которое хорошо зарекомендовало себя в StackApplet - я создал функционально эквивалентную версию
appindicator
модуля, которая используетgtk.StatusIcon
внутренне для обеспечения идентичной функциональности, когда реального модуля не существует.Использовать его так же просто, как:
appindicator_replacement.py
Добавление следующего в ваше приложение:
Это оно! Теперь ваше приложение будет отлично работать с поддержкой или без поддержки AppIndicators. Он даже будет работать в Windows, если у вас нет другого специфичного для платформы кода.
Примечание: файл выпущен под лицензией MIT - так что вы можете использовать его практически для чего угодно.
источник
Вам нужно будет написать код для обоих. Вы можете обнаружить присутствие appindicator в вашем коде Python, используя что-то похожее на:
Оттуда используйте have_appindicator, чтобы решить, следует ли использовать код appindicator или код gtk_status_icon.
К сожалению, это также означает, что вам понадобится Ubuntu и другая среда для тестирования.
источник
Таким образом, вы можете определить, работает ли апплет индикатора. Вам не нужно беспокоиться об Ubuntu 11.04, потому что это не так. Резервного сценария не существует, поскольку индикатор-апплет является обязательным компонентом, работающим по умолчанию.
источник
/usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-service
Вместо этого есть много задач.