Comando para iniciar o diálogo poweroff / reboot

5

Eu tenho um Ubuntu 16.04 recém-instalado (com o Unity) em um laptop e gostaria de poder abrir a janela de diálogo (a que é inicializada por padrão pressionando e segurando brevemente o botão liga / desliga, com quatro botões para bloquear, suspender, reiniciar e parar o sistema, respectivamente) com um atalho de teclado personalizado .

O objetivo deste é poder iniciar o diálogo com teclados externos (USB ou BT) quando a tampa do laptop é fechada e um monitor externo é usado, tornando o botão de energia inacessível ou inconveniente no mínimo. / p>

Com o antigo Ubuntu 12.04, usei este comando simples:

exec /usr/lib/indicator-session/gtk-logout-helper --shutdown

ao qual liguei o atalho de teclado Ctrl-Alt-Del (Log Off, redirecionei para Ctrl-Shift-Del).

Existe um comando analógico no Ubuntu 16.04 (ou isso é apenas outra coisa que foi "melhorada" para pior, como muitos parecem ser)?

Agradecemos antecipadamente por qualquer ajuda!

    
por mpts.cz 21.08.2016 / 13:14

3 respostas

9

Em geral, os diálogos para logout, reinicialização e desligamento podem ser iniciados via dbus . Em particular, o que você quer é

qdbus com.canonical.Unity  /com/canonical/Unity/Session com.canonical.Unity.Session.RequestShutdown

Você pode listar outros métodos através deste comando:

$ 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()

Eu usei essa mesma abordagem para várias outras respostas, por exemplo

Como obter um aviso para "Suspender"

Caso alguém sinta que o comando é um pouco longo, lembre-se do Linux 101: você pode criar aliases para comandos ou funções.

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
}

Na linha de comando, isso será chamado como quit_session . Fácil, certo? Você pode colocar isso em ~/.bashrc . Se ainda for longo, use um nome ainda mais curto.

Apesar do tamanho, faz exatamente o que é perguntado na pergunta.

    
por Sergiy Kolodyazhnyy 21.08.2016 / 13:52
8

O comando:

gnome-session-quit --power-off

simplesmente funciona e exatamente o que você quer:

De 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.
    
por Jacob Vlijm 21.08.2016 / 17:03
4

A resposta de Serg fornece uma maneira específica para a Unidade de alcançar isso. Aqui está uma maneira geral do X11 (requer o pacote xdotool instalado):

xdotool key XF86PowerOff

Isso funcionou para mim fora da caixa no KDE e no XFCE. A maioria dos DEs modernos pode ser configurada para tratar a tecla Power no teclado de maneira semelhante. Mesmo se o seu teclado não tiver essa chave, o keysym ainda estará disponível para o Xorg e funcionará.

    
por Ruslan 21.08.2016 / 16:33