Bloqueando a tela via CLI?

8

Existe alguma maneira de bloquear a tela no estilo CLI? Estou tentando direcionar o maior número possível de gerenciadores de desktop (principalmente o LightDM, mas o GDM, o KDM, o SLiM, o XScreensaver etc. também seria ótimo), mas só posso desenterrar o GDM e o XScreensaver.

Para o GDM, seria:

gnome-screensaver-command -l

Para o XScreensaver:

xscreensaver-command -lock

Existe um comando semelhante para o KDM e o LightDM?

Liquidificador
fonte
Você pode iniciar o protetor de tela e o ssh no ps e ver qual protetor de tela está sendo executado e deduzir a partir daí qual comando executar? (como eu encontrei o comando gnome-screensaver-comando)
polynomial
1
man lightdmnão parece muito promissor ... moleberry.com/man/l/lightdm.1.html
jasonwryan
Talvez você possa tentar controlá-los via d-bus (usando dbus-sendpara enviar a mensagem de bloqueio apropriada).
andcoz
@andcoz: Vi algumas dbus-sendcoisas enquanto pesquisava no Google, mas infelizmente nenhuma delas funcionou. Eu até olhei para a referência da API LightDM para uma solução, mas mesmo isso não tem nada. Caramba, eu até tentei olhar a fonte do painel de comutação de usuários do Ubuntu (desculpe, não consigo ler como 1.000.000 de C). Talvez eu tente enviar um email para a lista de desenvolvedores para obter ajuda ...
Blender
@ polinomial: Isso parece ser uma boa solução (talvez postá-lo como resposta?). Não tenho um segundo computador com o SSH, mas posso tentar imprimir a lista de processos a cada segundo para deduzir o que está acontecendo.
Blender

Respostas:

10

Pesquisei no Google / enviei um e-mail um pouco e recebi esses dois comandos.

Para bloquear a tela:

xflock4

Para ativar a troca de usuário:

gdmflexiserver

Para Lightdm, esse arquivo reside em um local estranho (pelo menos no Arch Linux):

/usr/lib/lightdm/lightdm/gdmflexiserver

Mesclei esses dois na caixa de diálogo do botão de logoff do XFCE, caso alguém esteja interessado, então o patch está disponível aqui: https://aur.archlinux.org/packages.php?ID=52816

Liquidificador
fonte
Xflock4 deve ter gnome-screensaver
Prvt_Yadav
4

Você pode bloquear todos os protetores de tela no X usando xdg-screensaver

xdg-screensaver lock

Vai cuidar dos detalhes sangrentos.

Evan Carroll
fonte
1

Existem várias soluções simples e independentes do DM, como alock , slock ou xtrlock (página de manual ). Observe que eles podem nem exibir nenhuma janela de entrada solicitando senha - basta digitar a senha enquanto a tela estiver em branco e pressionar Enter (é o caso de slockpelo menos).

Se você deseja que o armário exiba um protetor de tela e mostre um prompt personalizado ao desbloquear, tente xlockfornecer o pacote xlockmore (consulte essas informações e a página de manual ).

rozcietrzewiacz
fonte
Não estou procurando uma tela de bloqueio (eu tenho a minha plock, para isso: P). Estou procurando uma maneira de ativar a tela de bloqueio (seja o que for).
Blender
1
Então xautolock(que faz parte do xlockmore ) fornece essa funcionalidade - dê uma olhada nos dois últimos links que eu postei e na página de xautolockmanual .
rozcietrzewiacz
1

Para um aplicativo de bloqueio independente do ambiente, existe o i3lockque também permite definir o plano de fundo da tela de bloqueio.

Para o LightDM, você pode executar light-lockercomo um processo em segundo plano na sua sessão. Ele bloqueará sua sessão assim que o protetor de tela for iniciado / o sistema voltará a ser suspenso.

rohit
fonte
0

Isso não é bonito, mas a solução de trabalho para desbloquear a sessão kde ou lightdm do screensaver via cli (linha de comando):

qdbus | grep kscreenlocker_greet | xargs -I {} qdbus {} /MainApplication quit
Murz
fonte