Но дабы не нарушать консистентность был написан простенький скрипт для 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, правда тогда кол-во нажимаемых клавиш для его вызова увеличится.