Como posso bloquear minha tela no Gnome 3 sem o GDM?

50

Não existe a opção "Bloquear" que aparece no menu do usuário, e os atalhos padrão ( Ctrl+ Lou Ctrl+ Alt+ L) não fazem nada.

Estou executando o Fedora 19 com o Gnome Shell 3.8.3 e o XDM 1.1.11.

Estou usando o XDM por causa do suporte quebrado ao XDMCP no GDM - mas antes de atualizar para o Fedora 19, eu tinha a opção de bloqueio, mesmo ao usar o XDM.

Publiquei uma resposta refletindo os resultados de minha própria pesquisa. Basicamente, diz que não é possível ter o bloqueio de tela integrado no Gnome 3.8 sem executar o GDM.

Eu realmente espero que haja uma resposta melhor disponível - por favor, adicione sua própria resposta se houver alguma maneira de fazer isso que eu tenha esquecido.

jcsanyi
fonte
11
Tente Ctrl + Alt + L. Funciona?
precisa saber é o seguinte
11
@ m0nhawk Não, isso também não funciona. Atualizei a pergunta para refletir isso.
jcsanyi
Estranho, funciona para mim. E o que é definido em Configurações - Teclado - Atalhos - Sistema Lock screen?
M0nhawk
@ m0nhawk no Gnome 3.8 sem GDM?
precisa saber é o seguinte
2
@ m0nhawk O atalho está definido como Ctrl + L- mas isso não faz nada.
precisa saber é o seguinte

Respostas:

38

Após algumas pesquisas, acho que tenho informações suficientes para postar uma resposta para minha própria pergunta.

No Gnome Shell 3.6 e versões anteriores, o gnome-screensaverprograma antigo estava presente e, se o GDM não estivesse em execução, gnome-screensaverseria chamado - permitindo bloquear a tela.

A partir do Gnome Shell 3.8 (incluído no Fedora 19), o gnome-screensaversuporte foi completamente descartado. Isso foi feito por três razões: complexidade de código reduzida, juntamente com o fato de que o protetor de tela é visto como um recurso desnecessário, e o fato de que a eventual mudança para Wayland exigirá suporte ao protetor de tela, bloqueio etc. para estar no compositor.

Portanto, a única maneira integrada de bloquear a tela com o Gnome é ter o GDM em execução, o que responderá a uma mensagem do dbus dizendo para bloquear a tela. Outros gerenciadores de tela (como o XDM) não foram projetados para responder a esta mensagem do dbus e, portanto, a tela não pode ser bloqueada.


A partir deste link :

Nas versões antigas do gnome, o comando gnome-screensaver-command -l trava sua tela. Como o gnome-screensaver não existe mais no gnome 3.8, você agora precisa enviar uma chamada de dbus. Eu acho que isso é tratado pelo GDM.

$ dbus-send --type=method_call --dest=org.gnome.ScreenSaver \
    /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
jcsanyi
fonte
2
Obrigado @slim, mas os comandos que você editou não fazem nada a menos que você esteja executando o GDM - eles não ajudam a responder à pergunta.
jcsanyi
2
Claro, eu ainda gostaria de ver o conteúdo do link, caso o site desapareça.
slm
@slim bom ponto. Editei o conteúdo novamente como uma citação.
jcsanyi
17

Super+ Lfunciona no Fedora 24, que executa o Gnome 3.20

sysadmiral
fonte
4
Isso funciona em ubuntu gnome também, graças :)
daveoncode
Também está bom no Centos7 / 3.28, bom saber.
tonioc 6/06/19
15

Isso funciona para mim no Gnome 3.14. Instalação padrão, sem personalização.

gnome-screensaver-command --lock
0__
fonte
Ele precisa ser instalado no Gnome 3.26.2, portanto, se você não o tiver sudo apt-get install gnome-screensaver,.
Perna direita
Não funcionou para mim, gdmnão correr, porque uma atualização recente quebrou (tive que mudar para sddm ...)
Per Lundberg
10

Como habilitar o bloqueio de tela no Gnome Shell (3.14) usando xscreensaver (no Debian):

(Nota: Embora o gnome-screensaverpacote exista atualmente no Debian sid, ele não parece ser utilizável)

  1. Instale o xscreensaverpacote (e opcionalmente xscreensaver-data e xscreensaver-data-extra)
  2. Execute xscreensaverpara configurar o protetor de tela como desejar. Certifique-se de selecionar 'Bloquear tela após 0 minutos'.
  3. Nas configurações do teclado do GNOME, selecione a guia Atalhos e, em seguida, 'Atalhos personalizados'
  4. Clique no botão + e insira o que quiser como nome e xscreensaver-command -lcomo comando. Clique OK.
  5. Clique em 'Desativado' e digite a combinação de teclas que você deseja bloquear na tela (a minha é Ctrl-Alt-L). Verifique se isso não entra em conflito com o atalho do GDM 'Lock Screen' em 'System'.
  6. Aproveite sua tela com bloqueio.

Advertência: os pop-ups de notificação ainda estarão visíveis na tela bloqueada. Se este é um problema para você, você precisará encontrar outra solução, como a extensão LightDM Lock Screen .

Joel Cross
fonte
11
Obrigado por fornecer esta opção. Este é o único que acabou trabalhando para mim em Gnome 3.14.1 no Debian Jessie
sanimalp
Desde que escrevi esta resposta, descobri uma opção diferente que envolve o uso mate-screensaver(essencialmente o mesmo que o antigo protetor de tela do GNOME). Isso requer a criação de um gerenciador de sessões falso, conforme descrito aqui ).
Joel Cross
4

Um trabalho que usei com sucesso no debian, ubuntu e rhel7 está criando um pequeno script python que é iniciado automaticamente quando você faz login na sessão do gnome. Note que no rhel7 a combinação de teclas a ser bloqueada é super + l .

Crie /etc/xdg/autostart/gscreenlock.py assim:

#!/usr/bin/python

import dbus
import dbus.service
import dbus.glib
import gobject
import os

class ScreenDbusObj(dbus.service.Object):
    def __init__(self):
        session_bus = dbus.SessionBus()
        bus_name=dbus.service.BusName("org.gnome.ScreenSaver",bus=session_bus)
        dbus.service.Object.__init__(self,bus_name, '/org/gnome/ScreenSaver')

    @dbus.service.method("org.gnome.ScreenSaver")
    def Lock(self):
        os.system( "xscreensaver-command -lock" )


if __name__ == '__main__':
    object=ScreenDbusObj()
    gobject.MainLoop().run()

Em seguida, torne-o executável:

chmod a+rx /etc/xdg/autostart/gscreenlock.py

E edite o /etc/xdg/autostart/gscreenlock.desktop assim:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=gscreenlock
TryExec=/etc/xdg/autostart/gscreenlock.py
Exec=/etc/xdg/autostart/gscreenlock.py
NoDisplay=true
NotShowIn=XFCE;KDE;
Comment=Allows screen locking in gnome
aseq
fonte
2

O bloqueio de tela foi tratado gnome-screensaveraté o GNOME 3.8. O aplicativo foi reprovado pela equipe do GNOME e sua funcionalidade foi dividida entre gnome-shell, gnome-session e GDM.

Se você quiser apenas fazer as coisas funcionarem, poderá ter melhor sorte usando xscreensaver.

slm
fonte
2

@jcsanyi deu uma explicação detalhada de como funciona.

Para aquelas pessoas que não conseguem usar o GDM3 devido a vários motivos (digamos, esse bug ) e mudaram para o LigthDM, existe um comando que podemos usar para bloquear a tela (possivelmente poderia funcionar com outro mestre também, eu não verificado embora):

bloqueio de ferramenta dm

Para torná-lo mais conveniente, vá para o settings -> Keyboard -> Scroll to the bottom -> Click "+" button -> Create new custom shortcut using the command aboveseguinte.

insira a descrição da imagem aqui

Para usar a Super+Lcombinação, você provavelmente precisará reatribuir o Lock screenatalho do sistema existente para outra combinação.

Johnny Doe
fonte
Isso funcionou para mim no Fedora 30 Gnome 3.32.2. Mas eu me pergunto por que meu Fedora tem o lightdm como o gerenciador de exibição em execução padrão, em vez do GDM, e para qual programa o atalho de tela de bloqueio padrão Super+Lé enviado, pois está presente nas Configurações, mas não está funcionando.
Ivan Huang
2

Esta resposta é baseada no Fedora 30 GNOME 3.32.2

Para desktops Linux, geralmente a tecla de atalho padrão para bloquear a tela é Super-Lou Ctrl-Alt-L. Mas às vezes eles podem não funcionar e você não consegue encontrar uma maneira de bloquear a tela. Isso tem a ver com qual gerenciador de exibição a máquina está executando no momento. Você pode verificar isso executando $ systemctl status display-manager. Se você vir gdm, o atalho padrão deve funcionar porque esse atalho é tratado pelo GDM - GNOME Display Manager. Existem outros tipos de gestores de exibição, como lightdm, sddm, lxdm, kdm, e xdm. O atalho padrão pode não funcionar se você estiver executando um deles. No entanto, você sempre pode tentar bloquear executando $ dm-tool locke, se funcionar, pode adicionar um atalho personalizado para esse comando. Você pode mudar para outro gerenciador de exibição, por exemplo, de lightdmparagdme, se o fizer, faça o seguinte:

$ dnf install gdm
$ systemctl disable lightdm
$ systemctl enable gdm
$ reboot
Ivan Huang
fonte
0

O atalho padrão é Shift+Ctrl+Alt+Lock.

Você pode encontrar isso e editar usando a guia "Atalho" no aplicativo "Teclado".

Roopak A Nelliat
fonte
Ver comentários. "O atalho está definido como Ctrl + L - mas isso não faz nada."
sourcejedi
Se sua resposta for que isso começou a funcionar novamente no Fedora versão X, mesmo quando você usa o XDM em vez do GDM, você precisa especificar qual é a versão do Fedora :). Olá e bem-vindo ao StackExchange.
sourcejedi
0

Eu descobri uma solução alternativa que funciona para mim no Debian Buster com o GNOME Shell versão 3.30 e com o Lightdm. Não faço ideia se isso quebra alguma coisa, mas não notei nada incomum.

  1. Instalar pacote cinnamon-screensaver
  2. Adicionar /usr/bin/cinnamon-screensaveraos aplicativos de inicialização
  3. Crie um atalho de teclado para o comando: cinnamon-screensaver-command -l
yigitdnz
fonte