Jak mogę zablokować ekran w Gnome 3 bez GDM?


50

W menu użytkownika nie ma opcji „Zablokuj”, a standardowe skróty ( Ctrl+ Llub Ctrl+ Alt+ L) nic nie robią.

Używam Fedory 19 z Gnome Shell 3.8.3 i XDM 1.1.11.

Używam XDM z powodu zepsutej obsługi XDMCP w GDM - ale przed uaktualnieniem do Fedory 19 miałem opcję blokady, nawet gdy korzystałem z XDM.

Zamieściłem odpowiedź odzwierciedlającą wyniki moich własnych badań. Mówi w zasadzie, że nie można zintegrować blokady ekranu z Gnome 3.8 bez uruchamiania GDM.

Naprawdę mam nadzieję, że dostępna jest lepsza odpowiedź - więc proszę dodać własną odpowiedź, jeśli istnieje jakiś sposób, aby to przeoczyć.


1
Spróbować Ctrl + Alt + L. Czy to działa?
m0nhawk,

1
@ m0nhawk Nie, to też nie działa. Zaktualizowałem pytanie, aby to odzwierciedlić.
jcsanyi

Dziwne, to działa dla mnie. A co jest ustawione w Ustawienia - Klawiatura - Skróty - System Lock screen?
m0nhawk,

@ m0nhawk na Gnome 3.8 bez GDM?
jcsanyi

2
@ m0nhawk Skrót jest ustawiony na Ctrl + L- ale to nic nie robi.
jcsanyi

Odpowiedzi:


38

Po kilku badaniach wydaje mi się, że mam wystarczającą ilość informacji, aby opublikować odpowiedź na moje pytanie.

W Gnome Shell 3.6 i wcześniejszych gnome-screensaverobecny był stary program, a jeśli GDM nie był uruchomiony, gnome-screensaverzostanie wywołany - umożliwiając zablokowanie ekranu.

Począwszy od Gnome Shell 3.8 (zawartej w Fedorze 19) gnome-screensaverwsparcie zostało całkowicie usunięte. Dokonano tego z trzech powodów: zmniejszonej złożoności kodu w połączeniu z faktem, że wygaszacz ekranu jest postrzegany jako niepotrzebna funkcja oraz fakt, że ewentualne przeniesienie do Wayland będzie wymagało obsługi wygaszacza ekranu, blokady itp. W kompozytorze.

Tak więc jedynym zintegrowanym z Gnome sposobem blokowania ekranu jest uruchomienie GDM, który zareaguje na komunikat dbus mówiący o zablokowaniu ekranu. Inne menedżery wyświetlania (takie jak XDM) nie zostały zaprojektowane do reagowania na ten komunikat dbus, więc ekran nie może zostać zablokowany.


Z tego linku :

W starych wersjach gnome polecenie gnome-wygaszacz ekranu-polecenie -l blokuje ekran. Ponieważ gnome-wygaszacza ekranu nie ma już w gnome 3.8, musisz teraz wysłać połączenie dbus. Myślę, że jest to następnie obsługiwane przez GDM.

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

2
Dzięki @slim, ale edytowane przez ciebie polecenia nic nie robią, chyba że używasz GDM - nie pomagają odpowiedzieć na pytanie.
jcsanyi

2
Jasne, nadal chciałbym zobaczyć treść linku, na wypadek gdyby strona zniknęła.
slm

@slim dobry punkt. Zredagowałem treść jako cytat.
jcsanyi

17

Super+ Ldziała w Fedorze 24, na której działa Gnome 3.20


4
to działa również na
gnomie

Również OK na Centos7 / 3.28, dobrze wiedzieć.
tonioc

15

Działa to dla mnie w Gnome 3.14. Standardowa instalacja, bez dostosowywania.

gnome-screensaver-command --lock

Muszą to być zainstalowany w Gnome 3.26.2, więc jeśli nie masz go sudo apt-get install gnome-screensaver.
Prawa noga

Nie działało dla mnie, gdmnie działało, ponieważ zepsuła go ostatnia aktualizacja (musiał przełączyć się na sddm ...)
Per Lundberg

10

Jak włączyć blokowanie ekranu w Gnome Shell (3.14) za pomocą xscreensaver (w Debianie):

(Uwaga: Chociaż gnome-screensaverpakiet istnieje obecnie na sid Debianie, nie wydaje się, aby był użyteczny)

  1. Zainstaluj xscreensaverpakiet (i opcjonalnie xscreensaver-data i xscreensaver-data-extra)
  2. Uruchom, xscreensaveraby skonfigurować wygaszacz ekranu tak, jak chcesz. Pamiętaj, aby wybrać „Ekran blokady po 0 minutach”.
  3. W ustawieniach klawiatury GNOME wybierz kartę Skróty, a następnie „Skróty niestandardowe”
  4. Kliknij przycisk +, a następnie wprowadź dowolną nazwę xscreensaver-command -ljako nazwę i polecenie. Kliknij OK.
  5. Kliknij „Wyłączone” i wpisz kombinację klawiszy, którą chcesz zablokować ekran (moja to Ctrl-Alt-L). Upewnij się, że nie koliduje to ze skrótem „Blokada ekranu” GDM w obszarze „System”.
  6. Ciesz się zamykanym ekranem.

Ostrzeżenie: wyskakujące powiadomienia będą nadal widoczne na zablokowanym ekranie. Jeśli jest to dla Ciebie problem, musisz znaleźć inne rozwiązanie, takie jak rozszerzenie LightDM Lock Screen .


1
Dziękujemy za udostępnienie tej opcji. To jedyny, który skończył dla mnie pracować w Gnome 3.14.1 na Debian Jessie
sanimalp

Odkąd napisałem tę odpowiedź, odkryłem inną opcję, która wymaga użycia mate-screensaver(zasadniczo taka sama jak stary wygaszacz ekranu GNOME). Wymaga to napisania fałszywego menedżera sesji, jak opisano tutaj ).
Joel Cross,

4

Obejściem, którego z powodzeniem używałem w debian, ubuntu i rhel7, jest tworzenie krótkiego skryptu python, który uruchamia się automatycznie po zalogowaniu się do sesji gnome. Zauważ, że w rhel7 kombinacja klawiszy do zablokowania to super + l .

Utwórz /etc/xdg/autostart/gscreenlock.py w następujący sposób:

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

Następnie uczyń go wykonywalnym:

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

I edytuj /etc/xdg/autostart/gscreenlock.desktop w następujący sposób:

[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

Blokowanie ekranu było obsługiwane gnome-screensaverdo wersji GNOME 3.8. Aplikacja została wycofana przez zespół GNOME, a jej funkcjonalność została podzielona między gnome-shell, gnome-session i GDM.

Jeśli chcesz po prostu sprawić, że coś zadziała, możesz mieć więcej szczęścia w używaniu xscreensaver.


2

@jcsanyi podał ogólne wyjaśnienie tego, jak to działa.

Dla osób, które nie są w stanie korzystać z GDM3 z różnych powodów (powiedzmy, ten błąd ) i przełączyły się na LigthDM, istnieje polecenie, którego możemy użyć do zablokowania ekranu (być może mogłoby to również działać z innym DM, ja nie zaznaczone):

blokada narzędzia DM

Aby było to wygodniejsze, polub settings -> Keyboard -> Scroll to the bottom -> Click "+" button -> Create new custom shortcut using the command aboveto.

wprowadź opis zdjęcia tutaj

Aby użyć Super+Lkombinacji, prawdopodobnie musisz ponownie przypisać istniejący Lock screenskrót systemowy do innej kombinacji.


Działa to dla mnie na Fedorze 30 Gnome 3.32.2. Zastanawiam się jednak, dlaczego moja Fedora ma lightdm jako domyślny działający menedżer wyświetlania zamiast GDM i do którego programu Super+Ljest wysyłany domyślny skrót ekranu blokady, skoro jest obecny w Ustawieniach, ale i tak nie działa.
Ivan Huang

2

Ta odpowiedź jest oparta na Fedorze 30 GNOME 3.32.2

W komputerach z systemem Linux zwykle domyślnym klawiszem skrótu do blokowania ekranu jest Super-Llub Ctrl-Alt-L. Ale czasami mogą nie działać i nie można znaleźć sposobu na zablokowanie ekranu. Ma to związek z tym, który menedżer wyświetlania aktualnie działa na komputerze. Możesz to sprawdzić, uruchamiając $ systemctl status display-manager. Jeśli widzisz, gdmdomyślny skrót powinien działać, ponieważ jest obsługiwany przez GDM - GNOME Display Manager. Istnieją inne rodzaje menedżerów wyświetlaczy, takich jak lightdm, sddm, lxdm, kdm, i xdm. Domyślny skrót może nie działać, jeśli używasz jednego z nich. Zawsze możesz jednak spróbować zablokować, uruchamiając, $ dm-tool locka jeśli działa, możesz dodać niestandardowy skrót do tego polecenia. Możesz przełączyć się do innego menedżera wyświetlania, na przykład z lightdmnagdm, a jeśli tak, to poniżej:

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

0

Domyślny skrót to Shift+Ctrl+Alt+Lock.

Możesz to znaleźć i edytować za pomocą karty „Skrót” w aplikacji „Klawiatura”.


Zobacz komentarze. „Skrót jest ustawiony na Ctrl + L - ale to nic nie robi.”
sourcejedi

Jeśli twoja odpowiedź brzmi: to zaczęło działać ponownie w Fedorze w wersji X, nawet gdy używasz XDM zamiast GDM, musisz określić, jaka jest ta wersja Fedory :). Cześć i witamy w StackExchange.
sourcejedi

0

Wymyśliłem obejście, które działa dla mnie w Debian Buster z GNOME Shell w wersji 3.30 i Lightdm. Nie mam pojęcia, czy to coś psuje, ale nie zauważyłem niczego niezwykłego.

  1. Zainstaluj pakiet cinnamon-screensaver
  2. Dodaj /usr/bin/cinnamon-screensaverdo aplikacji startowych
  3. Utwórz skrót klawiaturowy dla polecenia: cinnamon-screensaver-command -l
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.