web-dev-qa-db-fra.com

Commande pour lancer le dialogue poweroff / reboot

J'ai un Ubuntu 16.04 (avec Unity) nouvellement installé sur un ordinateur portable et j'aimerais pouvoir ouvrir la fenêtre de dialogue (celle qui est ouverte par défaut en maintenant enfoncé le bouton d'alimentation, avec quatre boutons pour verrouiller, suspendre , redémarrez et arrêtez le système respectivement) avec un raccourci clavier personnalisé.

Le but est de pouvoir lancer le dialogue avec des claviers externes (USB ou BT) lorsque le couvercle de l’ordinateur portable est fermé et qu’un écran externe est utilisé à la place, rendant le bouton d’alimentation inaccessible ou gênant pour le moins.

Avec l'ancienne Ubuntu 12.04, j'ai utilisé cette commande simple:

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

auquel j'ai lié le raccourci clavier Ctrl-Alt-Suppr (Fermer la session, je l'ai redirigé vers Ctrl-Maj-Suppr).

Existe-t-il une commande analogique dans Ubuntu 16.04 (ou s’agit-il simplement d’une chose qui a été "améliorée" au pire, comme cela semble être le cas)?

Merci beaucoup d'avance pour toute aide!

5
mpts.cz

En général, les dialogues pour la déconnexion, le redémarrage et l’arrêt peuvent être lancés via dbus. En particulier, ce que vous voulez, c'est

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

Vous pouvez lister d'autres méthodes via cette commande:

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

J'ai utilisé cette même approche pour plusieurs autres réponses, par exemple

Comment obtenir un avertissement pour "suspendre"


Si quelqu'un trouve que la commande est un peu longue, rappelez-vous Linux 101: vous pouvez créer des alias pour des commandes ou des fonctions.

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
}

Sur la ligne de commande, cela s'appelle quit_session. Facile, non? Vous pouvez placer ceci dans ~/.bashrc. S'il est toujours long, utilisez un nom encore plus court.

Malgré la longueur, il fait exactement ce qui est demandé dans la question.

9
Sergiy Kolodyazhnyy

La commande:

gnome-session-quit --power-off

fonctionne simplement et fait exactement ce que vous voulez:

enter image description here

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.
8
Jacob Vlijm

Réponse de Serg donne un moyen spécifique pour atteindre cet objectif. Voici une manière générale de X11 (nécessite le paquet xdotool installé):

xdotool key XF86PowerOff

Cela a fonctionné pour moi hors de la boîte dans KDE et XFCE. La plupart des DE modernes peuvent être configurés pour traiter la touche Marche du clavier de la même manière. Même si votre clavier ne possède pas une telle clé, le clavier est toujours disponible pour Xorg et fonctionnera.

4
Ruslan