Come posso bloccare il mio schermo in Gnome 3 senza GDM?


50

Non è presente l'opzione "Blocco" visualizzata nel menu utente e le scorciatoie standard ( Ctrl+ Lo Ctrl+ Alt+ L) non fanno nulla.

Sto eseguendo Fedora 19 con Gnome Shell 3.8.3 e XDM 1.1.11.

Sto usando XDM a causa del supporto XDMCP non funzionante in GDM - ma prima di passare a Fedora 19, avevo l'opzione di blocco, anche quando usavo XDM.

Ho pubblicato una risposta che riflette i risultati della mia ricerca. Sostanzialmente afferma che non è possibile avere il blocco dello schermo integrato in Gnome 3.8 senza eseguire GDM.

Spero davvero che ci sia una risposta migliore disponibile, quindi per favore aggiungi la tua risposta se c'è un modo per farlo che ho trascurato.


1
Prova Ctrl + Alt + L. Funziona?
m0nhawk,

1
@ m0nhawk No, neanche quello funziona. Ho aggiornato la domanda per riflettere ciò.
jcsanyi,

Strano, funziona per me. E cosa è impostato in Impostazioni - Tastiera - Scorciatoie - Sistema per Lock screen?
m0nhawk,

@ m0nhawk su Gnome 3.8 senza GDM?
jcsanyi,

2
@ m0nhawk Il collegamento è impostato su Ctrl + L- ma questo non fa nulla.
jcsanyi,

Risposte:


38

Dopo alcune ricerche, penso di avere abbastanza informazioni per pubblicare una risposta alla mia domanda.

In Gnome Shell 3.6 e precedenti, gnome-screensaverera presente il vecchio programma e, se GDM non era in esecuzione, gnome-screensaversarebbe stato invocato, consentendoti di bloccare lo schermo.

A partire da Gnome Shell 3.8 (incluso in Fedora 19), il gnome-screensaversupporto è stato completamente abbandonato. Ciò è stato fatto per tre motivi: riduzione della complessità del codice unita al fatto che lo screensaver è visto come una funzione non necessaria e al fatto che l'eventuale trasferimento a Wayland richiederà lo screensaver, il blocco, ecc. Per essere nel compositore.

Quindi l'unico modo integrato di Gnome per bloccare lo schermo è far funzionare GDM, che risponderà a un messaggio dbus che gli dice di bloccare lo schermo. Altri display manager (come XDM) non sono stati progettati per rispondere a questo messaggio dbus, quindi lo schermo non può essere bloccato.


Da questo link :

Nelle vecchie versioni di gnome il comando gnome-screensaver-command -l avrebbe bloccato lo schermo. Dato che gnome-screensaver non è più presente in gnome 3.8, ora devi inviare una chiamata dbus. Penso che questo sia gestito da GDM.

$ dbus-send --type=method_call --dest=org.gnome.ScreenSaver \
    /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

2
Grazie @slim, ma i comandi che hai modificato in realtà non fanno nulla a meno che tu non stia eseguendo GDM - non aiutano a rispondere alla domanda.
jcsanyi,

2
Certo, mi piacerebbe comunque vedere i contenuti del link inserito, nel caso in cui il sito scompaia.
slm

@slim buon punto. Ho modificato il contenuto come preventivo.
jcsanyi,

17

Super+ Lfunziona in Fedora 24 che esegue Gnome 3.20


4
funziona anche su Ubuntu
GNOME

OK anche su Centos7 / 3.28, buono a sapersi.
tonioc,

15

Questo funziona per me in Gnome 3.14. Installazione standard, nessuna personalizzazione.

gnome-screensaver-command --lock

E 'necessario installare in Gnome 3.26.2, quindi se non lo avete, sudo apt-get install gnome-screensaver.
Gamba destra,

Non ha funzionato per me, gdmnon funzionante perché un recente aggiornamento lo ha interrotto (ha dovuto passare a sddm ...)
Per Lundberg

10

Come abilitare il blocco dello schermo in Gnome Shell (3.14) usando xscreensaver (su Debian):

(Nota: sebbene il gnome-screensaverpacchetto esista attualmente su Debian Sid, non sembra essere utilizzabile)

  1. Installa il xscreensaverpacchetto (e facoltativamente xscreensaver-data e xscreensaver-data-extra)
  2. Esegui xscreensaverper configurare lo screensaver come lo desideri. Assicurati di selezionare 'Blocca schermo dopo 0 minuti'.
  3. Nelle impostazioni della tastiera GNOME, seleziona la scheda Scorciatoie, quindi "Scorciatoie personalizzate"
  4. Fai clic sul pulsante +, quindi inserisci quello che vuoi come nome e xscreensaver-command -lcome comando. Clicca OK.
  5. Fai clic su "Disabilitato" e digita la combinazione di tasti che desideri bloccare lo schermo (il mio è Ctrl-Alt-L). Assicurarsi che ciò non sia in conflitto con il collegamento GDM "Blocca schermo" in "Sistema".
  6. Goditi il ​​tuo schermo bloccabile.

Avvertenza: i popup di notifica saranno comunque visibili sulla schermata di blocco. Se questo è un problema per te, dovrai trovare un'altra soluzione come l' estensione LightDM Lock Screen .


1
Grazie per aver fornito questa opzione. Questo è l'unico che ha finito per funzionare per me in Gnome 3.14.1 su Debian Jessie
sanimalp,

Da quando ho scritto questa risposta, ho scoperto un'opzione diversa che implica l'uso mate-screensaver(essenzialmente lo stesso del vecchio salvaschermo GNOME). Ciò richiede la scrittura di un gestore sessioni falso come descritto qui ).
Joel Cross,

4

Un lavoro che ho usato con successo in debian, ubuntu e rhel7 è la creazione di uno script Python breve che viene avviato automaticamente quando si accede alla sessione di gnome. Si noti che in rhel7 la combinazione di tasti da bloccare è super + l .

Crea /etc/xdg/autostart/gscreenlock.py in questo modo:

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

Quindi renderlo eseguibile:

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

E modifica /etc/xdg/autostart/gscreenlock.desktop in questo modo:

[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

2

Il blocco dello schermo è stato gestito gnome-screensaverfino a GNOME 3.8. L'applicazione è stata deprecata dal team GNOME e la sua funzionalità è stata suddivisa tra gnome-shell, gnome-session e GDM.

Se vuoi solo far funzionare le cose, potresti avere più fortuna usando xscreensaver.


2

@jcsanyi ha fornito una spiegazione di base su come funziona.

Per quelle persone che non sono in grado di usare GDM3 per vari motivi (diciamo, questo bug ) e sono passati a LigthDM c'è un comando che possiamo usare per bloccare lo schermo (forse potrebbe funzionare anche con altri DM, non ho controllato però):

dm-tool lock

Per renderlo più conveniente vai a settings -> Keyboard -> Scroll to the bottom -> Click "+" button -> Create new custom shortcut using the command abovequesto.

inserisci qui la descrizione dell'immagine

Per usare la Super+Lcombinazione, probabilmente devi riassegnare il Lock screencollegamento di sistema esistente ad un'altra combinazione.


Questo ha funzionato per me su Fedora 30 Gnome 3.32.2. Ma mi chiedo perché la mia Fedora abbia lightdm come display manager in esecuzione predefinito anziché GDM, e a quale programma Super+Lviene inviato il collegamento di blocco dello schermo predefinito poiché è presente in Impostazioni ma non funziona comunque.
Ivan Huang,

2

Questa risposta si basa su Fedora 30 GNOME 3.32.2

Per i desktop Linux di solito il tasto di scelta rapida predefinito per bloccare lo schermo è Super-Lo Ctrl-Alt-L. Ma a volte potrebbero non funzionare e non riesci a trovare un modo per bloccare lo schermo. Ciò ha a che fare con il gestore display che la macchina è attualmente in esecuzione. Puoi verificarlo eseguendo $ systemctl status display-manager. Se vedi gdmallora il collegamento predefinito dovrebbe funzionare perché questo collegamento è gestito da GDM - GNOME Display Manager. Ci sono altri tipi di display manager, come lightdm, sddm, lxdm, kdm, e xdm. Il collegamento predefinito potrebbe non funzionare se ne stai eseguendo uno. Tuttavia, puoi sempre provare a bloccare eseguendo $ dm-tool locke se funziona puoi aggiungere un collegamento personalizzato per questo comando. Potresti voler passare a un altro display manager, ad esempio, da lightdmagdme in tal caso, fare quanto segue:

$ dnf install gdm
$ systemctl disable lightdm
$ systemctl enable gdm
$ reboot

0

Il collegamento predefinito è Shift+Ctrl+Alt+Lock.

Puoi trovarlo e modificarlo utilizzando la scheda "Collegamento" nell'app "Tastiera".


Vedi commenti "Il collegamento è impostato su Ctrl + L - ma questo non fa nulla."
sourcejedi,

Se la tua risposta è che questo ha iniziato a funzionare di nuovo in Fedora versione X anche quando si utilizza XDM invece di GDM, è necessario specificare quale sia quella versione di Fedora :). Ciao e benvenuto su StackExchange.
sourcejedi,

0

Ho trovato una soluzione alternativa che funziona per me su Debian Buster con GNOME Shell versione 3.30 e con Lightdm. Non ho idea se questo rompe qualcosa, ma non ho notato nulla di insolito.

  1. Installa pacchetto cinnamon-screensaver
  2. Aggiungi /usr/bin/cinnamon-screensaveralle applicazioni di avvio
  3. Crea una scorciatoia da tastiera per il comando: cinnamon-screensaver-command -l
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.