Ubuntu 14.04 introduit un nouvel écran de verrouillage qui ressemble à l'écran de connexion.
Je suis toujours en mesure de verrouiller l'écran en utilisant la commande gnome-screensaver-command --lock
(comme je l'ai toujours fait auparavant), qui sous 14.04 verrouille l'écran, mais:
- Si vous l'exécutez à partir du bureau, il verrouille l'écran à l'aide du nouvel écran de verrouillage.
- Si vous l'exécutez à partir d'une console virtuelle ou via SSH, il verrouille l'écran en utilisant 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
(n'utilise le nouvel écran de verrouillage que lorsqu'il est exécuté depuis le bureau).
L'exécution light-locker-command --lock
n'a pas fonctionné, car elle light-locker
n'est pas installée.
Je suppose 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 pu trouver de différence dans les variables d'environnement.
Donc, ma question est: comment puis-je verrouiller l'écran en utilisant le nouvel écran de verrouillage Unity et non l'ancien écran de verrouillage à partir de la ligne de commande?
Cette question est probablement liée car elle demande la nouvelle commande qui doit être utilisée, alors voici une autre question: pourquoi l'exécution de la même commande de verrouillage donne-t-elle des résultats différents?
Notez que ce gnome-screensaver
n'est plus utilisé dans 14.04, selon ce rapport de bogue :
Ce n'est pas vraiment un bug gnome-screensaver, ce composant a cessé d'être utilisé dans trusty.
la source
dm-tool lock
se rapproche: il verrouille l'écran, mais (contrairement à l'écran de verrouillage Unity par défaut) vous permet également de changer d'utilisateur.dm-tool lock
etdm-tool switch-to-greeter
semblent faire la même chose: vous ramène à l'écran de connexion (greeter), qui ressemble beaucoup à l'écran de verrouillage.Réponses:
Je n'ai pas
gnome-screensaver
installé, et la seule commande que je puisse trouver qui fonctionne est la suivante:la source
qdbus org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
gsettings set org.gnome.desktop.lockdown disable-lock-screen false
gsettings get org.gnome.desktop.lockdown disable-lock-screen
retournefalse
. Désormais, il n'y a plus de sortie lors de l'exécution de dbus-send. Peut-être que gnome-screensaver est nécessaire pour que cela fonctionne?org.gnome.ScreenSaver
interface dbus, donc c'est probablement une meilleure idée de communiquer avec l'interface dbus d'UnityLa réponse acceptée a la bonne idée, sauf que l'écran de verrouillage est lié au panneau d'unité, alors qu'il
org.gnome.ScreenSaver
s'agit évidemment d'un type de schéma lié à Gnome, il peut donc fonctionner ou non.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 ceciNote latérale :
La preuve du fait qu'il est lié au panneau d'unité est simple, lorsque l'écran est verrouillé, le processus
/usr/lib/unity/unity-panel-service
changera/usr/lib/unity/unity-panel-service --lock-mode
comme observé à partir de tty1.la source
DISPLAY
variable, mais avec le dbus. Je ne sais pas si over ssh Unity n'a pas de session dbus ou non, donc je ne peux pas vous aider dans cette partie. Je vais demander autour mais jusqu'à présent, c'est autant que je peux dire.dbus-launch --exit-with-session gnome-terminal
avant cela. serverfault.com/a/411326J'ai récemment découvert que cela
xdg-screensaver lock
fonctionne aussi et que c'est aussi une solution assez simple!la source
Vous pouvez toujours envoyer les séquences de touches:
xdotool key super+l
.la source