MyTetra Share
Делитесь знаниями!
Zenity: три примера
Текстовые метки: linux, инерфейс, скрипт, zenity
Раздел: Компьютер - Linux - Языки создания интерфейсов
Запись: xintrea/mytetra_syncro/master/base/0000000009/text.html на raw.github.com

Освоив этот инструмент, правильный администратор/разработчик может облегчить жизнь себе любимому, своим близким, вынужденным терпеть Linux на домашнем компьютере, сотрудникам в офисе, куда стремительно рвутся всё более удобоваримые дистрибутивы свободной ОС. Удобство скриптования в unix-системах эта программа легко подружит с удобством использования. Не берусь даже обрисовать все возможные применения.


Пример. Пропишем себе в crontab:

-----8<-----

*/15 0-3 * * * DISPLAY=:0.0 zenity --warning --title="Пора спать" --text="Завтра на работу"

-----8<-----

И система заботливо и настойчиво будет нас клонить ко сну каждые 15 минут с 0 до 3 ночи.


Пример. Статус ppp соединения плюс статистика в трее.

Связка следующая - есть два скриптика, ppptray и pppwatch. Первый загоняется в район автостарта любимого десктопа, второй крутится по крону раз в минуту. В результате имею статус соединения плюс статистику в трее. Больше, в принципе, мне и не надо. расширенную инфу могу посмотреть и более другими средствами.

ppptray
-----8<-----

#! /bin/bash
rm -f /tmp/zenity
mkfifo /tmp/zenity
exec tail -f /tmp/zenity | zenity --notification --listen
-----8<-----

pppwatch
-----8<-----

#! /bin/bash

[[ -e /tmp/zenity ]] || exit 1

pppstats ppp0 &> /dev/null
[[ $? -eq 0 ]] && STATUS=on || STATUS=off

case $STATUS in
on)
echo "icon: /usr/desktop/share/icons/gnome/16x16/stock/net/stock_connect.png" >> /tmp/zenity
pppstats -a ppp0 | tail -n 1 | awk '{print "tooltip: In: " $1 "| Out: " $7}' >> /tmp/zenity
;;
off)
echo "icon: /usr/desktop/share/icons/gnome/16x16/stock/net/stock_disconnect.png" >> /tmp/zenity
echo "tooltip: no link" >> /tmp/zenity
;;
esac

exit 0

-----8<-----


Пример. Сканируем тучи документов и выполняем обработку изображений офисных документов в пару кликов. Секретарша будет на вас молится. Конечный документ А4 в 200dpi обычного вида (типа счёта с синей печатью и подписью) имеет типичный вес от 60 до 200 килобайт и формат png. Нужны установленные sane-utils и ImageMagic.

-----8<-----

#!/bin/sh

TMP="image$$"

while true; do

scanimage \
-p \
--format tiff \
--resolution 200 \
-x 215 -y 297 \
2> ~/$TMP.tiff \
3>&1 1>&2 2>&3 \
| perl -e '$/="\r";$|=1;while(){s/^\D+(\d+)\D.*$/$1\n/g;print;}' \
| zenity \
--progress \
--title="Сканирование" \
--text="Сканирую изображение. Пожалуйста, подождите..."

if [ $? -eq 0 ]; then
FILE=""
while [ -z "$FILE" ]; do
FILE=`zenity \
--entry \
--title="Обработка" \
--text="Укажите имя файла для сохранения"`
done
convert $TMP.tiff -level 20%,80%,0.4 -format PNG8 -colors 8 $FILE.png
else
killall scanimage
fi

rm -f $TMP.tiff

zenity \
--question \
--title="Продолжим?" \
--text="Вы желаете продолжить сканирование? Не забудьте положить в сканер новый лист." \
|| return

done

-----8<-----


 
MyTetra Share v.0.59
Яндекс индекс цитирования