¿Cómo puedo bloquear mi pantalla en Gnome 3 sin GDM?

50

No aparece la opción "Bloquear" en el menú del usuario, y los accesos directos estándar ( Ctrl+ Lo Ctrl+ Alt+ L) no hacen nada.

Estoy ejecutando Fedora 19 con Gnome Shell 3.8.3 y XDM 1.1.11.

Estoy usando XDM debido a que el soporte XDMCP no funciona en GDM, pero antes de actualizar a Fedora 19, tenía la opción de bloqueo, incluso cuando usaba XDM.

He publicado una respuesta que refleja los resultados de mi propia investigación. Básicamente dice que no es posible tener el bloqueo de pantalla integrado en Gnome 3.8 sin ejecutar GDM.

Sin embargo, realmente espero que haya una mejor respuesta disponible, así que agregue su propia respuesta si hay alguna forma de hacerlo que haya pasado por alto.

jcsanyi
fuente
1
Tratar Ctrl + Alt + L. ¿Funciona?
m0nhawk
1
@ m0nhawk No, eso tampoco funciona. He actualizado la pregunta para reflejar eso.
jcsanyi
Extraño, funciona para mí. ¿Y para qué está configurado en Configuración - Teclado - Accesos directos - Sistema Lock screen?
m0nhawk
@ m0nhawk en Gnome 3.8 sin GDM?
jcsanyi
2
@ m0nhawk El acceso directo está configurado en Ctrl + L, pero eso no hace nada.
jcsanyi

Respuestas:

38

Después de investigar un poco, creo que tengo suficiente información para publicar una respuesta a mi propia pregunta.

En Gnome Shell 3.6 y versiones anteriores, el gnome-screensaverprograma anterior estaba presente y, si GDM no se estaba ejecutando, gnome-screensaverse invocaría, lo que le permite bloquear la pantalla.

A partir de Gnome Shell 3.8 (incluido en Fedora 19), el gnome-screensaversoporte se ha eliminado por completo. Esto se hizo por tres razones: la reducción de la complejidad del código junto con el hecho de que el protector de pantalla se considera una característica innecesaria, y el hecho de que el traslado eventual a Wayland requerirá soporte de protector de pantalla, bloqueo, etc. para estar en el compositor.

Entonces, la única forma integrada de Gnome de bloquear la pantalla es tener GDM funcionando, que responderá a un mensaje de dbus que le indica que bloquee la pantalla. Otros administradores de pantalla (como XDM) no se han diseñado para responder a este mensaje de dbus, por lo que la pantalla no se puede bloquear.


Desde este enlace :

En versiones anteriores de gnome, el comando gnome-screensaver-command -l bloqueaba su pantalla. Como gnome-screensaver ya no está en gnome 3.8, ahora debe enviar una llamada dbus. Creo que esto es manejado por GDM.

$ dbus-send --type=method_call --dest=org.gnome.ScreenSaver \
    /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
jcsanyi
fuente
2
Gracias @slim, pero los comandos que editaste en realidad no hacen nada a menos que estés ejecutando GDM, no ayudan a responder la pregunta.
jcsanyi
2
Claro, todavía me gustaría ver el contenido del enlace introducido, en caso de que ese sitio desaparezca.
slm
@slim buen punto. Volví a editar el contenido como una cita.
jcsanyi
17

Super+ Lfunciona en Fedora 24 que ejecuta Gnome 3.20

sysadmiral
fuente
44
esto también funciona en ubuntu gnome, gracias :)
daveoncode
También está bien en Centos7 / 3.28, bueno saberlo.
tonioc
15

Esto funciona para mí en Gnome 3.14. Instalación estándar, sin personalización.

gnome-screensaver-command --lock
0__
fuente
Se necesita ser instalado en Gnome 3.26.2, así que si no lo tiene, sudo apt-get install gnome-screensaver.
Pierna derecha el
No funcionó para mí, gdmno se ejecuta porque una actualización reciente lo rompió (tuve que cambiar a sddm ...)
Por Lundberg
10

Cómo habilitar el bloqueo de pantalla en Gnome Shell (3.14) usando xscreensaver (en Debian):

(Nota: aunque el gnome-screensaverpaquete existe actualmente en Debian sid, no parece ser utilizable)

  1. Instale el xscreensaverpaquete (y opcionalmente xscreensaver-data y xscreensaver-data-extra)
  2. Ejecute xscreensaverpara configurar el protector de pantalla como lo desee. Asegúrese de seleccionar 'Bloquear pantalla después de 0 minutos'.
  3. En la configuración del teclado GNOME, seleccione la pestaña Atajos, luego 'Atajos personalizados'
  4. Haga clic en el botón +, luego ingrese lo que quiera como nombre y xscreensaver-command -lcomo comando. Haga clic en Aceptar.
  5. Haga clic en 'Desactivado' y escriba la combinación de teclas que le gustaría bloquear la pantalla (la mía es Ctrl-Alt-L). Asegúrese de que esto no entre en conflicto con el acceso directo de 'Bloqueo de pantalla' de GDM en 'Sistema'.
  6. Disfruta de tu pantalla bloqueable.

Advertencia: las ventanas emergentes de notificación seguirán siendo visibles sobre la pantalla bloqueada. Si esto es un problema para usted, necesitará encontrar otra solución como la extensión LightDM Lock Screen .

Joel Cross
fuente
1
Gracias por proporcionar esta opción. Este es el único que terminó trabajando para mí en Gnome 3.14.1 en Debian Jessie
sanimalp
Desde que escribí esta respuesta, descubrí una opción diferente que implica el uso mate-screensaver(esencialmente lo mismo que el antiguo protector de pantalla de GNOME). Esto requiere escribir un administrador de sesión falso como se describe aquí ).
Joel Cross
4

Una solución que utilicé con éxito en debian, ubuntu y rhel7 es crear un breve script de python que se inicia automáticamente cuando inicia sesión en la sesión de gnome. Tenga en cuenta que en rhel7 la combinación de teclas para bloquear es super + l .

Cree /etc/xdg/autostart/gscreenlock.py de esta manera:

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

Luego hazlo ejecutable:

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

Y edite /etc/xdg/autostart/gscreenlock.desktop así:

[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
fuente
2

El bloqueo de pantalla se manejó gnome-screensaverhasta GNOME 3.8. La aplicación ha sido desaprobada por el equipo de GNOME y su funcionalidad se ha dividido entre gnome-shell, gnome-session y GDM.

Si solo desea que las cosas funcionen, es posible que tenga más suerte usando xscreensaver.

slm
fuente
2

@jcsanyi dio una explicación de fondo de cómo funciona.

Para aquellas personas que no pueden usar GDM3 debido a varias razones (digamos, este error ) y cambiaron a LigthDM, hay un comando que podemos usar para bloquear la pantalla (posiblemente podría funcionar con otros DM también, no he marcado aunque):

dm-tool lock

Para hacerlo más conveniente, vaya a Me settings -> Keyboard -> Scroll to the bottom -> Click "+" button -> Create new custom shortcut using the command abovegusta.

ingrese la descripción de la imagen aquí

Para usar la Super+Lcombinación, probablemente tenga que reasignar el Lock screenacceso directo del sistema existente a alguna otra combinación.

Johnny Doe
fuente
Esto funcionó para mí en Fedora 30 Gnome 3.32.2. Pero me pregunto por qué mi Fedora tiene lightdm como el administrador de visualización en ejecución predeterminado en lugar de GDM, y a qué programa Super+Lse envía el acceso directo de la pantalla de bloqueo predeterminado, aunque está presente en Configuración pero no funciona de todos modos.
Ivan Huang
2

Esta respuesta se basa en Fedora 30 GNOME 3.32.2

Para los escritorios Linux, la tecla de acceso directo predeterminada para bloquear la pantalla es Super-Lo Ctrl-Alt-L. Pero a veces pueden no funcionar y no puede encontrar una manera de bloquear la pantalla. Esto tiene que ver con el administrador de pantalla que la máquina está ejecutando actualmente. Puede verificar eso ejecutando $ systemctl status display-manager. Si ve gdm, el acceso directo predeterminado debería funcionar porque GDM - GNOME Display Manager maneja este acceso directo. Hay otros tipos de gestores de visualización tales como lightdm, sddm, lxdm, kdm, y xdm. El acceso directo predeterminado puede no funcionar si está ejecutando uno de ellos. Sin embargo, siempre puede intentar bloquear ejecutando $ dm-tool locky, si funciona, puede agregar un acceso directo personalizado para este comando. Es posible que desee cambiar a otro administrador de pantalla, por ejemplo, de lightdmagdm, y si es así, hazlo a continuación:

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

El acceso directo predeterminado es Shift+Ctrl+Alt+Lock.

Puede encontrar esto y editar usando la pestaña "Atajo" en la aplicación "Teclado".

Roopak A Nelliat
fuente
Ver comentarios. "El acceso directo está configurado en Ctrl + L, pero eso no hace nada".
sourcejedi
Si su respuesta es que esto ha comenzado a funcionar nuevamente en Fedora versión X, incluso cuando usa XDM en lugar de GDM, debe especificar cuál es esa versión de Fedora :). Hola y bienvenido a StackExchange.
sourcejedi
0

Descubrí una solución alternativa que funciona para mí en Debian Buster con GNOME Shell versión 3.30 y con Lightdm. No tengo idea si esto rompe algo, pero no he notado nada inusual.

  1. Paquete de instalación cinnamon-screensaver
  2. Agregar /usr/bin/cinnamon-screensavera las aplicaciones de inicio
  3. Cree un método abreviado de teclado para el comando: cinnamon-screensaver-command -l
yigitdnz
fuente