O Ubuntu 14.04 apresenta uma nova tela de bloqueio que se parece com a tela de login.
Ainda consigo bloquear a tela usando o comando gnome-screensaver-command --lock
(como sempre fazia antes), que em 14.04 bloqueia a tela, mas:
- Se você o estiver executando na área de trabalho, ele bloqueia a tela usando a nova tela de bloqueio.
- Se você o 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 maneira que gnome-screensaver-command --lock
faz (só usa a nova tela de bloqueio quando é executada na área de trabalho).
A execução light-locker-command --lock
não funcionou, pois light-locker
não está instalado.
Eu acho que deve haver algumas diferenças entre executar o mesmo comando na área de trabalho e executá-lo via SSH / console virtual, mas não consegui encontrar nenhuma diferença nas variáveis de ambiente.
Portanto, minha pergunta é: como bloquear a tela usando a nova tela de bloqueio do Unity e não a tela de bloqueio antiga na linha de comando?
Essa pergunta provavelmente está relacionada, pois solicita o novo comando que precisa ser usado, então aqui está outra pergunta: Por que executar o mesmo comando de bloqueio fornece resultados diferentes?
Observe que gnome-screensaver
não está mais sendo usado no 14.04, de acordo com este relatório de erro :
Isso não é realmente um bug do protetor de tela do gnome, esse componente deixou de ser usado em confiança.
fonte
dm-tool lock
chega perto: ele bloqueia a tela, mas (ao contrário da tela de bloqueio padrão do Unity) também permite alternar usuários.dm-tool lock
edm-tool switch-to-greeter
parece estar fazendo a mesma coisa: leve você de volta à tela de login (greeter), que parece muito semelhante à tela de bloqueio.Respostas:
Não tenho
gnome-screensaver
instalado e o único comando que posso encontrar que funciona é o seguinte:fonte
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
retornafalse
. Agora não há saída ao executar o dbus-send. Talvez o gnome-screensaver seja necessário para que isso funcione?org.gnome.ScreenSaver
interface de dbus, por isso é provavelmente melhor idéia para se comunicar com a interface dbus do UnityA resposta aceita tem a ideia 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, portanto pode ou não funcionar.Existe, no entanto, uma interface dbus para o Unity, e tudo o que precisamos é chamar esse método dessa
com.canonical.Unity.Session.Lock
maneiraNota lateral :
A prova do fato de estar relacionado ao painel de unidade é simples: quando a tela está bloqueada, o processo
/usr/lib/unity/unity-panel-service
muda para/usr/lib/unity/unity-panel-service --lock-mode
como observado em tty1.fonte
DISPLAY
variável, mas com dbus. Não sei se o over ssh Unity não tem uma sessão de dbus ou não, então não posso ajudá-lo nessa parte. Vou perguntar, mas até agora é o máximo que posso dizer.dbus-launch --exit-with-session gnome-terminal
antes disso. serverfault.com/a/411326Eu descobri recentemente que
xdg-screensaver lock
funciona bem e também é uma solução bastante simples!fonte
Você sempre pode enviar as teclas:
xdotool key super+l
.fonte