Команда для запуска диалога выключения питания/перезагрузки

У меня есть недавно установленная 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 (или это просто другая вещь, которая была “улучшена” до худшего, поскольку так многие, кажется)?

Большое спасибо заранее для любой справки!

5
задан 21 August 2016 в 04:14

3 ответа

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

Несмотря на длину это делает точно, что спрашивают в вопросе.

9
ответ дан 23 November 2019 в 08:39

Команда:

gnome-session-quit --power-off

просто работы, и делают точно , что Вы хотите:

enter image description here

От 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.
8
ответ дан 23 November 2019 в 08:39

ответ Serg дает особенный метод Единицы достижения этого. Вот общий путь X11 (требует xdotool установленный пакет):

xdotool key XF86PowerOff

Это работало на меня из поля в KDE и XFCE. Самый современный DES может быть настроен для обработки Питания, включают клавиатуру подобным способом. Даже если Ваша клавиатура не имеет такого ключа, keysym все еще доступен Xorg и будет работать.

4
ответ дан 23 November 2019 в 08:39

Другие вопросы по тегам:

Похожие вопросы: