Ubuntu: Appindicator для Zenity, команд и bash-скриптов

Пользователь 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»:

b_675_675_16777215_10_images_stories_201110_appindicator_bash.png

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