Comment suspendre de la ligne de commande de sorte que l'écran est verrouillé?

10

J'utilise Xubuntu 12.04. Dans Power Manager, j'ai coché Extended -> Lock screen lorsque je vais suspendre / mettre en veille prolongée. Si je choisis de suspendre depuis le menu principal / Panneau 1, l'écran est verrouillé. Cependant, si j'utilise dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend(voir Comment puis-je suspendre / mettre en veille prolongée depuis la ligne de commande?; J'utilise cette commande via un raccourci clavier), l'écran n'est pas verrouillé. Comment puis-je (1) suspendre le système (2) verrouiller l'écran en même temps (3) ne nécessite pas de droits root pour le faire [car je voudrais que la commande soit affectée à un raccourci clavier].

Marius Hofert
la source

Réponses:

10

Vous pouvez le faire en utilisant ce qui suit:

gnome-screensaver-command --lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Dans un raccourci clavier, vous devez mettre le sh -c "<command>"remplacement <command>par la commande ci-dessus, comme:

sh -c "gnome-screensaver-command --lock && dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend"

Si la commande ci-dessus ne fonctionne pas, vous pouvez également essayer d'utiliser un fichier de script shell (par exemple suspend_lockscreen.sh). Créez d'abord le fichier appelez les commandes suivantes dans une console:

cd ~
echo "gnome-screensaver-command --lock" >> suspend_lockscreen.sh
echo "dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend" >> suspend_lockscreen.sh
chmod +x suspend_lockscreen.sh

Cela créera un fichier nommé suspend_lockscreen.sh dans le dossier de départ de l'utilisateur. Ensuite, dans le raccourci il suffit d' appeler: ./suspend_lockscreen.sh.

Remarque: gnome-screensaver-commandpeut être remplacé par xscreensaver-command, comme indiqué dans un commentaire.

amfcosta
la source
Non, il ne fait que verrouiller l'écran et oublie de le suspendre selon un commentaire fait dans la réponse que j'ai faite;)
Rinzwind
1
Ahh bien. Je viens de réaliser qu'il gnome-screensaver-commandpeut également être remplacé par xscreensaver-commanddonc aucune installation supplémentaire n'est requise. Sans la && dbus-send...partie, on obtient simplement un verrou (sans suspension); avec elle, on obtient une suspension avec verrouillage au réveil. Parfait.
Marius Hofert
Malheureusement, la commande fonctionne depuis le terminal mais pas depuis le raccourci clavier que j'ai défini :-( Savez-vous quel pourrait être le problème?
Marius Hofert
@MariusHofert J'ai mis à jour la réponse avec la façon d'utiliser les commandes à partir d'un raccourci clavier. Voyez si cela fonctionne comme vous en avez besoin. (J'ai testé dans Ubuntu 12.04 et cela a fonctionné).
amfcosta
Toujours le même problème: le verrouillage fonctionne; la suspension ne fonctionne pas (Xubuntu 12.04)
Marius Hofert
2

J'utilisais la commande dbus d'amfcosta pour suspendre la ligne de commande. Cependant, à la reprise, eth0 était en baisse.

J'ai ensuite trouvé cette commande:

xfce4-session-logout --suspend

Cette commande désactive la mise en réseau, suspend, puis réactive la mise en réseau lorsque l'ordinateur se réveille.

xfce4-session-logoutest spécifique à xfce, mais d'autres environnements de bureau peuvent avoir des *-session-logoutcommandes similaires .

J'utilise Xubuntu 14.04.

Mise à jour: cela peut ne pas affecter les autres, mais il s'avère que sur mon Asus EEE 900, la connexion Ethernet filaire ne fonctionne que toutes les deux fois que l'EEE se réveille. Ceci est bien sûr très ennuyeux et signifie que la suspension est inutilisable.

mpb
la source
1

Avec Ubuntu 15.10, cela fonctionne également:

gnome-screensaver-command --lock && systemctl -i suspend
iGEL
la source
0

Remarque: la xscreensaver-commandseule fonctionne avec l'option -lock(avec 1 trait d'union, pas un double comme avec gnome-screensaver-command). Pourtant, la commande ne fonctionne que lorsque l'économiseur d'écran est en cours d'exécution, donc pas très utile.

LinuxRev
la source