Иногда нужно. Grigory Smirnov, тогда поздравляю, Вы видите первого такого человека. Например, всем известно, что в Openbox нет нормальной графической выключалки. Писать для этого программу на C или C++ - верх извращения ИМХО. Моё решение такое: на панель tint2 приляпываем иконку запуска скрипта, который позволяет выключать систему без рута, но есть такая проблема: если сделать отдельно кнопки на выключение, перезагрузку, ждущий и спящий режим, то они займут пол панели, что недопустимо ИМХО. Потму предлагаю Вашему вниманию такой скрипт:
#!/bin/bash
RETURN_CODE=`zenity --window-icon="/home/user/.icons/Faenza/actions/24/system-shutdown-restart-panel.png" \
--list --radiolist \
--title="Выключение компьютера" \
--text="Выберите предпочитаемое действие:" \
--column="Выбор" --column="Действие" \
TRUE "Выключение компьютера" FALSE "Перезагрузка" FALSE "Ждущий режим" FALSE "Спящий режим"`
if [ "$RETURN_CODE" = "Выключение компьютера" ]; then
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
fi
if [ "$RETURN_CODE" = "Перезагрузка" ]; then
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
fi
if [ "$RETURN_CODE" = "Ждущий режим" ]; then
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
fi
if [ "$RETURN_CODE" = "Спящий режим" ]; then
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
fi
PS, скрипт для zenity. Но её испортили, текущая версия имеет несколько неприятных багов.