Пользователь Ubuntu Реда Эль Хаттаби предложила простой способ создания appindicator для Zenity, YAD (более функциональный аналог Zenity) или просто для любого bash-скрипта или команды.
Возможности:
Поддержка подменю и разделителей.
Определение иконки.
Работа без автоматического завершения или выход после выполнения команды.
Инструмент пока не поддерживает выход по тайм-ауту, но эта функция возможно будет добавлена в будущем.
Использование (примеры)
Скрипт берет параметры со стандартного ввода (stdin), и после выбора пользователя выдает результат на stdout. Вот рабочий пример создания Appindicator для Y PPA Manager:
echo "Add
Advanced
List
Search
Settings" | ./cappind.py -p -i y-ppa-manager | while read s; do
case "$s" in
Add ) y-ppa-cmd add ;;
Advanced ) y-ppa-cmd advanced ;;
List ) y-ppa-cmd list ;;
Search ) y-ppa-cmd search ;;
Settings ) y-ppa-cmd settings ;;
esac
done
«-p» — оставляет индикатор в памяти и добавляет пункт меню «выход». Без использования параметра «-р» выход осуществляется непосредственно после выполнения выбранного действия.
«-i» — берет иконку из текущей темы (не указывайте полный путь к иконке — это не работает. Просто введите имя файла).
И еще один пример создания индикатора приложений для файл-менеджера Nautilus (для открытия папок Downloads, Music и др.) с подменю и разделителем над пунктом меню «Media»:
echo "Home Folder
Documents
Downloads
Pictures
Media:Music
Media:Videos" | ./cappind.py -p -i nautilus | sed -u 's/Media://g' | while read s; do
case "$s" in
Home* ) nautilus ;;
Documents ) nautilus ~/Documents/ ;;
Downloads ) nautilus ~/Downloads/ ;;
Pictures ) nautilus ~/Pictures/ ;;
Music ) nautilus ~/Music/ ;;
Videos ) nautilus ~/Videos/ ;;
esac
done