Como posso bloquear a tela usando a nova tela de bloqueio a partir da linha de comando?

18

O Ubuntu 14.04 apresenta uma nova tela de bloqueio semelhante à tela de login.

Ainda consigo bloquear a tela usando o comando gnome-screensaver-command --lock (como sempre fiz antes), o que, abaixo de 14.04, bloqueia a tela, mas:

  • Se você estiver executando na área de trabalho, ele bloqueia a tela usando a nova tela de bloqueio.
  • Se você estiver executando em um console virtual ou via SSH, ele bloqueia a tela usando a tela de bloqueio antiga .

Eu também tentei usar xdg-screensaver lock , mas funciona da mesma forma que gnome-screensaver-command --lock (só usa a nova lockscreen quando é executada na área de trabalho).

A execução de light-locker-command --lock não funcionou, pois o light-locker não está instalado.

Eu acho que deve haver algumas diferenças entre executar o mesmo comando da área de trabalho e executá-lo via console SSH / virtual, mas não consegui encontrar nenhuma diferença nas variáveis ​​de ambiente.

Então, minha pergunta é: Como posso bloquear a tela usando a nova lockscreen do Unity e não a lockscreen antiga da linha de comando?

Esta questão provavelmente está relacionada, já que pede o novo comando que precisa ser usado, então aqui está outra pergunta: Por que executar o mesmo comando de bloqueio gera resultados diferentes?

Note que gnome-screensaver não está mais sendo usado em 14.04, de acordo com este bug relatório :

  

Isso não é realmente um bug do gnome-screensaver, esse componente parou de ser usado no trusty.

    
por Léo Lam 28.04.2014 / 20:50

4 respostas

13

Eu não tenho o gnome-screensaver instalado e o único comando que posso encontrar é o seguinte:

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

    
por Aibara Iduas 08.07.2014 / 03:02
3

A resposta aceita tem a idéia correta, exceto que a tela de bloqueio está relacionada ao painel de unidade, enquanto org.gnome.ScreenSaver é obviamente um tipo de esquema relacionado ao Gnome, então pode ou não funcionar.

Existe, no entanto, uma interface dbus para o Unity, e tudo o que precisamos é chamar esse método com.canonical.Unity.Session.Lock como assim

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

Nota lateral :

A prova do fato de que ele está relacionado ao painel de unidade é simples, quando você bloqueia a tela, o processo /usr/lib/unity/unity-panel-service mudará para /usr/lib/unity/unity-panel-service --lock-mode conforme observado em tty1.

    
por Sergiy Kolodyazhnyy 01.04.2016 / 10:24
1

Eu descobri recentemente que %código% funciona também e é uma solução bastante simples também!

    
por Paulius Šukys 22.01.2016 / 19:18
0

Você sempre pode enviar as combinações de teclas: xdotool key super+l .

    
por wieczorek1990 01.04.2016 / 10:13