web-dev-qa-db-fra.com

Comment puis-je verrouiller l'écran en utilisant le nouveau lockscreen à partir de la ligne de commande?

Ubuntu 14.04 introduit n nouveau lockscreen qui ressemble à l’écran de connexion.

New lockscreen

Je peux toujours verrouiller l'écran à l'aide de la commande gnome-screensaver-command --lock (comme je le faisais toujours auparavant), qui sous 14.04 verrouille l'écran, mais:

  • Si vous l'exécutez à partir du bureau, il verrouille l'écran à l'aide du nouveau lockscreen.
  • Si vous l'exécutez à partir d'une console virtuelle ou via SSH, il verrouille l'écran à l'aide de l'ancien écran de verrouillage .

J'ai également essayé d'utiliser xdg-screensaver lock, mais cela fonctionne de la même manière que gnome-screensaver-command --lock (utilise uniquement le nouveau lockscreen lorsqu'il est exécuté à partir du bureau).

L'exécution de light-locker-command --lock n'a pas fonctionné, car light-locker n'est pas installé.

J'imagine qu'il doit y avoir des différences entre l'exécution de la même commande à partir du bureau et son exécution via SSH/console virtuelle, mais je n'ai pas trouvé de différence dans les variables d'environnement.

Donc, ma question est la suivante: Comment puis-je verrouiller l'écran à l'aide du nouveau lockscreen Unity et non de l'ancien lockscreen à partir de la ligne de commande?

Cette question est probablement liée car elle demande la nouvelle commande à utiliser. Voici donc une autre question: Pourquoi l'exécution de la même commande lock donne-t-elle des résultats différents?

Notez que gnome-screensaver n'est plus utilisé dans 14.04, selon ce rapport de bogue :

Ce n'est pas vraiment un bug de gnome-screensaver, ce composant a cessé d'être utilisé dans trusty.

19
Léo Lam

Je n'ai pas installé gnome-screensaver et la seule commande que je trouve qui fonctionne est la suivante:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
14
Aibara

La réponse acceptée a la bonne idée, sauf que lockscreen est lié au panneau de l'unité, alors que org.gnome.ScreenSaver est évidemment un type de schéma lié à Gnome, de sorte qu'il peut ne pas fonctionner.

Il existe cependant une interface dbus pour Unity, et tout ce dont nous avons besoin est d’appeler cette méthode com.canonical.Unity.Session.Lock comme suit

qdbus com.canonical.Unity  /com/canonical/Unity/Session com.canonical.Unity.Session.Lock

Note latérale:

La preuve qu'il est lié au panneau de l'unité est simple: lorsque l'écran est verrouillé, le processus /usr/lib/unity/unity-panel-service passe à /usr/lib/unity/unity-panel-service --lock-mode, comme indiqué dans tty1.

3

J'ai récemment découvert que xdg-screensaver lock fonctionnait également et constituait également une solution assez simple!

2
Paulius Šukys

Vous pouvez toujours envoyer les frappes au clavier: xdotool key super+l.

1
wieczorek1990