Меню выключения с использованием dmenudmenu, zenity, linux

С тех пор как не использую гномокеды для выключения компьютера использовал halt(reboot,hibernate по ситуации) в консоли, самопальную мордочку на gtkdialog вызываемую по хоткею и прочие изыски (как то в меню openbox, oblogout и прочее).

Но дабы не нарушать консистентность был написан простенький скрипт для dmenu (всё-таки dmenu отличная вещь) вызываемый по хоткею.
#!/bin/sh

CMD="poweroff
reboot
s2ram
hibernate"


CMD=`echo "$CMD" | dmenu -fn '-xos4-terminus-medium-r-normal--12-120-72-72-c-60-*-*' -nb '#737373' -nf '#e7e3e7'  -sb '#e7e3e7' -sf '#737373'`

case $CMD in 
# что бы не видеть портянку в dmenu переводим короткие имена в длинный путь
# ну или заменяем на dbus-send --system --print-reply --dest=org.freedesktop.DeviceKit.Power \
# /org/freedesktop/DeviceKit/Power org.freedesktop.DeviceKit.Power.Hibernate 
# wm-session-end --hibernate и прочее
 s2ram) 
	# sudo должен быть настроен, что как бы естественно
	CMD="sudo s2ram -f -a 1 -s" #только для пример
	;; 
 hibernate) 
	CMD="sudo s2disk" 
	;;
 *) 
	CMD="sudo $CMD" 
	;;
esac
echo $CMD
if [ ."$CMD" = ."" ]; then # выходим если нажили esc в dmenu
	exit 0
fi

# ну и подтверждение через zenity
#zenity --question --text="Чё реально запустить '$CMD'?" --ok-label="ну да" --cancel-label="да ну" --no-wrap && \
#$CMD

# подтверждение через dmenu
#CONFIRM="yes
#no"
#CONFIRM=`echo "$CONFIRM" | dmenu -fn '-xos4-terminus-medium-r-normal--12-120-72-72-c-60-*-*' -nb '#737373' -nf '#e7e3e7'  -sb '#e7e3e7' -sf '#737373'`
#if [ ."$CONFIRM" = ."yes" ]; then
#	 $CMD
#fi

# ну и без подтверждения сразу
$CMD

# куда же без выхода =)
exit 0

Удобно и к мышке тянуться не надо, к тому же подредактировать в соответствии с нуждами легко (в процессе жизни он у меня пару раз изменялся, что видно по закомментированным подтверждениям). Так же можно сделать неплохое дополнение к dmenfm, правда тогда кол-во нажимаемых клавиш для его вызова увеличится.

У Вас имеется свой форум? Тут обнаружился неплохой каталог форумов с диаграммами и рейтингами. Есть приятная плюшка в виде статистики используемых движков.
28-04-2010, 22:28    Комментарии: 2

avangard aria2gui - качалка для data.cod.rulinux, aria2c, zenity, gui, datacod

Накрапал небольшую гуёвую качалку по списку файлов для data.cod использую aria2c и zenity. aria2c использовал ибо и в zenity проценты скачанного может отдать и дозагрузка файла работает адекватно, ну и самое главное что имя файла корректно получить в отличии от wget . Хотя и wget пришлось использовать — не нашел как перенаправить вывод от aria2 на stdout (если кто знает как это сделать, подскажите).
Если кто не знает то, data.cod это сервис обмена файлами для пользователей авангарда — у нас во Пскове скорость закачки оттуда почти метр/сек при тарифе в мегабитку. Так же можно использовать и как просто гуёвую качалку, ибо если не data.cod то качаем без изысков sed'а
#!/bin/sh
# data.cod.sh
# GUI file downloader for Pskov.Data.Cod.Ru & datagrad
# Powered by muhas (http://muhas.ru)
# 
TITLE="avangard aria2gui"
URL=$(zenity --title="$TITLE" --text-info --editable --title="Введите список URL" --width=500 --height=300)

for URL in $URL 
do
	FOUND=`echo $URL| grep data.cod.ru`
	if [ -n "$FOUND" ]; then
		URL=`wget -q $URL -O - |sed '/download/!d'|awk -F\" '{print ($4)}'`
		if [ -n "$URL" ]; then
			echo "файл найден"
		else 
			echo "не найден"
			notify-send "Ошибка" "Файл отсутсвует на сервере" && continue;
		fi
		
	fi
	aria2c $URL --file-allocation=none |grep  -E -o "[0-9]+%" --line-buffered | zenity --title="$TITLE" --text="загружаем $URL" --progress  --auto-close --auto-kill --width=400
done
notify-send "Загрузка завершена" "Загрузка файлов из списка завершена"
Конечно как полноценная качалка не катит, но для использования data.cod мне вполне хватает. Можно дописать получение урлов с stdin и выбор папки сохранения после чего пользовать как простейщую гуёвую качалку, но надобность такой для меня отсутствует.
26-10-2009, 14:02    Комментарии: 2