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

47

Não há nenhuma opção de "Bloqueio" no menu do usuário e os atalhos padrão ( Ctrl + L ou Ctrl + < kbd> Alt + L ) não faz 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 a XDMCP quebrado no GDM - mas antes de atualizar para o Fedora 19, eu tinha a opção de bloqueio, mesmo quando usando o XDM.

I've posted an answer reflecting the results of my own research. It basically says that it's not possible to have screen-lock integrated into Gnome 3.8 without running GDM.

I really hope there's a better answer available though - so please add your own answer if there's any way to do this that I overlooked.

    
por jcsanyi 10.08.2013 / 02:46

8 respostas

37

After some research, I think I've got enough information to post an answer to my own question.

No Gnome Shell 3.6 e anterior, o antigo programa gnome-screensaver estava presente, e se o GDM não estivesse rodando, gnome-screensaver seria invocado - permitindo que você bloqueie a tela.

A partir do Gnome Shell 3.8 (incluso no Fedora 19), gnome-screensaver support foi descartado completamente. Isso foi feito por três motivos: redução da complexidade do código, 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 o Wayland exigirá que o protetor de tela, bloqueio, etc. estejam no compositor. p>

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

De este link :

In old versions of gnome the command gnome-screensaver-command -l would lock your screen. As gnome-screensaver is no more in gnome 3.8 you now have to send a dbus call. I think this is then handled by GDM.

$ dbus-send --type=method_call --dest=org.gnome.ScreenSaver \
    /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
    
por 10.08.2013 / 20:04
16

Super + L funciona no Fedora 24 que executa o Gnome 3.20

    
por 04.08.2016 / 14:01
15

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

gnome-screensaver-command --lock
    
por 03.03.2015 / 15:18
9

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

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

  1. Instale o pacote xscreensaver (e opcionalmente xscreensaver-data e xscreensaver-data-extra)
  2. Execute xscreensaver para configurar o protetor de tela como você deseja. 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 nome desejado e xscreensaver-command -l como o comando. Clique em OK.
  5. Clique em "Desativado" e digite a combinação de teclas que você deseja bloquear a tela (a minha é Ctrl-Alt-L). Certifique-se de que isso não esteja em conflito com o atalho GDM 'Lock Screen' em 'System'.
  6. Aprecie sua tela com bloqueio.

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

    
por 10.01.2015 / 20:22
4

Uma solução que usei com sucesso no debian, ubuntu e rhel7 é criar um script python curto 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 desta forma:

#!/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

Edite /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
    
por 11.02.2016 / 03:03
2

O bloqueio de tela foi gerenciado por gnome-screensaver até o GNOME 3.8. O aplicativo foi preterido pela equipe do GNOME e sua funcionalidade foi dividida entre gnome-shell, gnome-session, & GDM.

Se você quiser que as coisas funcionem, talvez tenha mais sorte usando xscreensaver .

    
por 10.08.2013 / 04:19
0

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

  1. Instalar pacote cinnamon-screensaver
  2. Adicione /usr/bin/cinnamon-screensaver aos aplicativos de inicialização
  3. Crie um atalho de teclado para o comando: cinnamon-screensaver-command -l
por 07.04.2019 / 03:07
0

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

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

    
por 06.06.2018 / 12:48