У меня есть недавно установленная Ubuntu 16.04 (с Единицей) на ноутбуке, и я хотел бы смочь запустить диалоговое окно (тот, который по умолчанию запускается путем нажатия и вскоре содержания кнопки питания, с четырьмя кнопками, чтобы заблокировать, приостановить, перезагрузить и остановить систему соответственно) с пользовательским сочетанием клавиш.
Цель этого состоит в том, чтобы смочь запустить диалог с внешним (или USB или BT) клавиатуры, когда крышка ноутбука закрывается, и внешний дисплей используется вместо этого, представляя кнопку питания, недоступную или неудобную по крайней мере.
Со старой Ubuntu 12.04 я использовал эту простую команду:
exec /usr/lib/indicator-session/gtk-logout-helper --shutdown
с которым я связал сочетание клавиш Ctrl-Alt-Del (Выход, который я перенаправил к Ctrl-Shift-Del).
Есть ли аналогичная команда в Ubuntu 16.04 (или это просто другая вещь, которая была “улучшена” до худшего, поскольку так многие, кажется)?
Большое спасибо заранее для любой справки!
В целом диалоговые окна для выхода из системы, перезагрузки и завершения работы могут быть запущены через dbus
. В частности, что Вы хотите,
qdbus com.canonical.Unity /com/canonical/Unity/Session com.canonical.Unity.Session.RequestShutdown
, можно перечислить другие методы через эту команду:
$ qdbus com.canonical.Unity /com/canonical/Unity/Session | grep '\.Request.*'
method void com.canonical.Unity.Session.RequestLogout()
method void com.canonical.Unity.Session.RequestReboot()
method void com.canonical.Unity.Session.RequestShutdown()
я использовал этот тот же подход для нескольких других ответов, например
, Как получить предупреждение для " Suspend"
<час>В случае, если кто-то чувствует, команда немного долга, помните Linux 101: можно создать псевдонимы для команд или функций.
alias quit_session='qdbus com.canonical.Unity /com/canonical/Unity/Session com.canonical.Unity.Session.RequestShutdown'
quit_session()
{
qdbus com.canonical.Unity \
/com/canonical/Unity/Session \
com.canonical.Unity.Session.RequestShutdown
}
На командной строке это назовут как quit_session
. Легкий, правильно? Можно поместить это в ~/.bashrc
. Если это все еще длинно, используйте еще более короткое имя.
Несмотря на длину это делает точно, что спрашивают в вопросе.
Команда:
gnome-session-quit --power-off
просто работы, и делают точно , что Вы хотите:
От man gnome-session-quit
:
OPTIONS
The following options are supported:
--logout
Prompt the user to confirm logout. This is the default behavior.
--power-off
Prompt the user to confirm system power off.
--reboot
Prompt the user to confirm system reboot.
--force
Ignore any inhibitors.
--no-prompt
End the session without user interaction. This only works with
--logout.
ответ Serg дает особенный метод Единицы достижения этого. Вот общий путь X11 (требует xdotool
установленный пакет):
xdotool key XF86PowerOff
Это работало на меня из поля в KDE и XFCE. Самый современный DES может быть настроен для обработки Питания, включают клавиатуру подобным способом. Даже если Ваша клавиатура не имеет такого ключа, keysym все еще доступен Xorg и будет работать.