Bagaimana saya bisa mengunci layar saya di Gnome 3 tanpa GDM?

50

Tidak ada opsi "Kunci" muncul di menu pengguna, dan pintasan standar ( Ctrl+ Latau Ctrl+ Alt+ L) tidak melakukan apa-apa.

Saya menjalankan Fedora 19 dengan Gnome Shell 3.8.3, dan XDM 1.1.11.

Saya menggunakan XDM karena dukungan XDMCP yang rusak di GDM - tetapi sebelum saya memutakhirkan ke Fedora 19, saya memang memiliki opsi kunci, bahkan ketika menggunakan XDM.

Saya telah memposting jawaban yang mencerminkan hasil penelitian saya sendiri. Pada dasarnya dikatakan bahwa kunci layar tidak mungkin diintegrasikan ke Gnome 3.8 tanpa menjalankan GDM.

Saya sangat berharap ada jawaban yang lebih baik tersedia - jadi tolong tambahkan jawaban Anda sendiri jika ada cara untuk melakukan ini yang saya abaikan.

jcsanyi
sumber
1
Coba Ctrl + Alt + L. Apakah itu bekerja?
m0nhawk
1
@ m0nhawk Tidak, itu juga tidak berfungsi. Saya telah memperbarui pertanyaan untuk mencerminkan hal itu.
jcsanyi
Aneh, itu bekerja untuk saya. Dan apa yang diatur dalam Pengaturan - Keyboard - Pintasan - Sistem untuk Lock screen?
m0nhawk
@ m0nhawk di Gnome 3.8 tanpa GDM?
jcsanyi
2
@ m0nhawk Pintasan diatur ke Ctrl + L- tetapi itu tidak melakukan apa-apa.
jcsanyi

Jawaban:

38

Setelah beberapa penelitian, saya pikir saya punya informasi yang cukup untuk mengirim jawaban atas pertanyaan saya sendiri.

Di Gnome Shell 3.6 dan sebelumnya, gnome-screensaverprogram lama ada, dan jika GDM tidak berjalan, gnome-screensaverakan dipanggil - memungkinkan Anda untuk mengunci layar.

Mulai di Gnome Shell 3.8 (termasuk dalam Fedora 19), gnome-screensaverdukungan telah sepenuhnya dibatalkan. Ini dilakukan karena tiga alasan: kompleksitas kode berkurang ditambah dengan fakta bahwa screensaver dilihat sebagai fitur yang tidak dibutuhkan, dan fakta bahwa akhirnya pindah ke Wayland akan memerlukan screensaver, penguncian, dll. Dukungan untuk berada di kompositor.

Jadi satu-satunya cara yang terintegrasi Gnome untuk mengunci layar adalah menjalankan GDM, yang akan merespons pesan dbus yang memerintahkannya untuk mengunci layar. Pengelola tampilan lain (seperti XDM) belum dirancang untuk menanggapi pesan dbus ini, sehingga layar tidak dapat dikunci.


Dari tautan ini :

Pada gnome versi lama, perintah gnome-screensaver-command -l akan mengunci layar Anda. Karena gnome-screensaver tidak ada lagi di gnome 3.8 Anda sekarang harus mengirim panggilan dbus. Saya pikir ini kemudian ditangani oleh GDM.

$ dbus-send --type=method_call --dest=org.gnome.ScreenSaver \
    /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
jcsanyi
sumber
2
Terima kasih @slim, tetapi perintah yang Anda edit tidak benar-benar melakukan apa pun kecuali Anda menjalankan GDM - mereka tidak membantu menjawab pertanyaan.
jcsanyi
2
Tentu, saya masih ingin melihat isi tautan yang dibawa, kalau-kalau situs itu hilang.
slm
@slim bagus. Saya mengedit konten kembali sebagai kutipan.
jcsanyi
17

Super+ Lbekerja di Fedora 24 yang menjalankan Gnome 3.20

sysadmiral
sumber
4
ini berfungsi di ubuntu gnome juga, terima kasih :)
daveoncode
Juga OK di Centos7 / 3.28, senang tahu.
tonioc
15

Ini bekerja untuk saya di Gnome 3.14. Instalasi standar, tidak ada penyesuaian.

gnome-screensaver-command --lock
0__
sumber
Ini harus diinstal di Gnome 3.26.2, jadi jika Anda tidak memilikinya sudo apt-get install gnome-screensaver,.
Kaki kanan
Tidak bekerja untuk saya, gdmtidak berjalan karena pembaruan baru-baru ini mematahkannya (harus beralih ke sddm ...)
Per Lundberg
10

Cara mengaktifkan penguncian layar di Gnome Shell (3.14) menggunakan xscreensaver (di Debian):

(Catatan: Meskipun gnome-screensaverpaket saat ini ada di sisi Debian, sepertinya tidak dapat digunakan)

  1. Instal xscreensaverpaket (dan secara opsional xscreensaver-data dan xscreensaver-data-extra)
  2. Jalankan xscreensaveruntuk mengonfigurasi screensaver seperti yang Anda inginkan. Pastikan untuk memilih 'Kunci layar setelah 0 menit'.
  3. Di pengaturan keyboard GNOME, pilih tab Pintasan, lalu 'Pintasan Khusus'
  4. Klik tombol +, lalu masukkan apa pun yang Anda inginkan sebagai nama dan xscreensaver-command -lsebagai perintah. Klik OK.
  5. Klik 'Nonaktif' dan ketik kombinasi tombol yang Anda ingin mengunci layar (milik saya adalah Ctrl-Alt-L). Pastikan ini tidak bertentangan dengan pintasan 'Lock Screen' GDM di bawah 'System'.
  6. Nikmati layar yang bisa dikunci.

Peringatan: Munculan pemberitahuan masih akan terlihat di layar yang terkunci. Jika ini merupakan masalah bagi Anda, Anda harus mencari solusi lain seperti ekstensi Layar Kunci LightDM .

Joel Cross
sumber
1
Terima kasih telah menyediakan opsi ini. Ini adalah satu-satunya yang akhirnya bekerja untuk saya di Gnome 3.14.1 di Debian Jessie
sanimalp
Sejak saya menulis jawaban ini, saya telah menemukan opsi berbeda yang melibatkan penggunaan mate-screensaver(pada dasarnya sama dengan screensaver GNOME lama). Ini membutuhkan penulisan manajer sesi palsu seperti yang dijelaskan di sini ).
Joel Cross
4

Sebuah karya di sekitar saya berhasil digunakan di debian, ubuntu dan rhel7 sedang membuat skrip python pendek yang dimulai secara otomatis ketika Anda masuk ke sesi gnome. Perhatikan bahwa di rhel7 kombinasi tombol untuk mengunci adalah super + l .

Buat /etc/xdg/autostart/gscreenlock.py seperti ini:

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

Kemudian buat itu bisa dieksekusi:

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

Dan edit /etc/xdg/autostart/gscreenlock.desktop seperti ini:

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

Penguncian layar ditangani gnome-screensaverhingga GNOME 3.8. Aplikasi telah ditinggalkan oleh tim GNOME dan fungsinya telah dibagi antara gnome-shell, gnome-session, & GDM.

Jika Anda hanya ingin mendapatkan sesuatu yang berfungsi Anda mungkin lebih beruntung menggunakan xscreensaver.

slm
sumber
2

@ jcsanyi memberikan penjelasan latar belakang tentang cara kerjanya.

Bagi orang-orang yang tidak dapat menggunakan GDM3 karena berbagai alasan (katakanlah, bug ini ) dan beralih ke LigthDM ada perintah yang dapat kita gunakan untuk mengunci layar (mungkin itu bisa bekerja dengan DM lain juga, saya belum diperiksa):

kunci alat dm

Untuk membuatnya lebih mudah, pergi settings -> Keyboard -> Scroll to the bottom -> Click "+" button -> Create new custom shortcut using the command aboveseperti ini.

masukkan deskripsi gambar di sini

Untuk menggunakan Super+Lkombinasi, Anda mungkin harus menetapkan ulang Lock screenpintasan sistem yang ada ke beberapa kombinasi lainnya.

Johnny Doe
sumber
Ini bekerja untuk saya di Fedora 30 Gnome 3.32.2. Tapi saya bertanya-tanya mengapa Fedora saya memiliki lightdm sebagai manajer tampilan yang berjalan dan bukan GDM, dan program mana yang pintasan layar kunci default Super+Ldikirim ke karena meskipun itu ada di Pengaturan tetapi tidak berfungsi.
Ivan Huang
2

Jawaban ini didasarkan pada Fedora 30 GNOME 3.32.2

Untuk desktop Linux biasanya tombol pintas default untuk mengunci layar adalah Super-Latau Ctrl-Alt-L. Tetapi kadang-kadang mereka mungkin tidak berfungsi dan Anda tidak dapat menemukan cara untuk mengunci layar. Ini berkaitan dengan manajer tampilan yang sedang dijalankan mesin. Anda dapat memeriksanya dengan menjalankan $ systemctl status display-manager. Jika Anda melihat gdmmaka pintasan default harus berfungsi karena pintasan ini ditangani oleh GDM - GNOME Display Manager. Ada jenis lain dari manajer tampilan seperti lightdm, sddm, lxdm, kdm, dan xdm. Pintasan default mungkin tidak berfungsi jika Anda menjalankan salah satunya. Namun, Anda selalu dapat mencoba mengunci dengan menjalankan $ dm-tool lockdan jika berhasil, Anda dapat menambahkan pintasan khusus untuk perintah ini. Anda mungkin ingin beralih ke manajer tampilan lain, misalnya, dari lightdmkegdm, dan jika demikian lakukan di bawah ini:

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

Pintasan default adalah Shift+Ctrl+Alt+Lock.

Anda dapat menemukan ini, dan mengedit menggunakan tab "Pintasan" di aplikasi "Keyboard".

Roopak A Nelliat
sumber
Lihat komentar. "Pintasan diatur ke Ctrl + L - tetapi itu tidak melakukan apa-apa."
sourcejedi
Jika jawaban Anda adalah bahwa ini sudah mulai berfungsi lagi di Fedora versi X bahkan ketika menggunakan XDM alih-alih GDM, Anda perlu menentukan versi Fedora itu :). Hai dan selamat datang di StackExchange.
sourcejedi
0

Saya menemukan solusi yang bekerja untuk saya di Debian Buster dengan GNOME Shell versi 3.30 dan dengan Lightdm. Saya tidak tahu apakah ini merusak sesuatu tetapi saya belum melihat sesuatu yang tidak biasa.

  1. Instal paket cinnamon-screensaver
  2. Tambahkan /usr/bin/cinnamon-screensaverke aplikasi startup
  3. Buat pintasan keyboard untuk perintah: cinnamon-screensaver-command -l
yigitdnz
sumber