ฉันจะล็อคหน้าจอของฉันใน Gnome 3 โดยไม่ใช้ GDM ได้อย่างไร


50

ไม่มีตัวเลือก "ล็อค" ปรากฏขึ้นในเมนูผู้ใช้และทางลัดมาตรฐาน ( Ctrl+ LหรือCtrl+ Alt+ L) ไม่ทำอะไรเลย

ฉันกำลังใช้งาน Fedora 19 กับ Gnome Shell 3.8.3 และ XDM 1.1.11

ฉันใช้ XDM เนื่องจากการสนับสนุน XDMCP ที่หักใน GDM - แต่ก่อนที่ฉันจะอัพเกรดเป็น Fedora 19 ฉันมีตัวเลือกการล็อคแม้ว่าจะใช้ XDM

ฉันโพสต์คำตอบที่สะท้อนถึงผลการวิจัยของฉันเอง โดยทั่วไปบอกว่าเป็นไปไม่ได้ที่จะรวมการล็อกหน้าจอเข้ากับ Gnome 3.8 โดยไม่ต้องเรียกใช้ GDM

ฉันหวังว่าจะมีคำตอบที่ดีกว่า - ดังนั้นโปรดเพิ่มคำตอบของคุณเองหากมีวิธีการใด ๆ ที่ฉันมองข้ามไป


1
ลองCtrl + Alt + Lดู ใช้งานได้หรือไม่
m0nhawk

1
@ m0nhawk ไม่ไม่ทำงานอย่างใดอย่างหนึ่ง ฉันได้อัปเดตคำถามเพื่อสะท้อนว่า
jcsanyi

แปลกมันใช้งานได้สำหรับฉัน และสิ่งที่ตั้งค่าในการตั้งค่า - แป้นพิมพ์ - ทางลัด - ระบบเพื่อLock screen?
m0nhawk

@ m0nhawk บน Gnome 3.8 ที่ไม่มี GDM หรือไม่
jcsanyi

2
@ m0nhawk ทางลัดถูกตั้งค่าเป็นCtrl + L- แต่นั่นไม่ได้ทำอะไรเลย
jcsanyi

คำตอบ:


38

หลังจากการวิจัยบางอย่างฉันคิดว่าฉันมีข้อมูลเพียงพอที่จะโพสต์คำตอบสำหรับคำถามของฉันเอง

ใน Gnome Shell 3.6 และรุ่นก่อนหน้านี้มีgnome-screensaverโปรแกรมเก่าอยู่และหาก GDM ไม่ทำงานgnome-screensaverจะมีการเรียกใช้ - อนุญาตให้คุณล็อกหน้าจอ

เริ่มต้นใน Gnome Shell 3.8 (รวมอยู่ใน Fedora 19) gnome-screensaverการสนับสนุนได้ลดลงอย่างสมบูรณ์ สิ่งนี้ถูกทำขึ้นด้วยเหตุผลสามประการ: ความซับซ้อนของรหัสที่ลดลงประกอบกับความจริงที่ว่าสกรีนเซฟเวอร์ถูกมองว่าเป็นคุณสมบัติที่ไม่จำเป็นและความจริงที่ว่าการย้ายไปยัง Wayland ในที่สุดจะต้องใช้ตัวรักษาหน้าจอ

ดังนั้นวิธีเดียวในการล็อคหน้าจอของ Gnome คือการเปิดใช้ GDM ซึ่งจะตอบกลับข้อความ dbus ที่บอกให้ล็อคหน้าจอ เครื่องมือจัดการหน้าจออื่น ๆ (เช่น XDM) ยังไม่ได้รับการออกแบบมาเพื่อตอบสนองต่อข้อความ dbus นี้และดังนั้นจึงไม่สามารถล็อคหน้าจอได้


จากลิงค์นี้ :

ใน gnome เวอร์ชันเก่าคำสั่ง gnome-screensaver-command -l จะล็อคหน้าจอของคุณ เนื่องจาก gnome-screensaver นั้นไม่มีอยู่ใน gnome 3.8 อีกต่อไปตอนนี้คุณต้องส่งสาย dbus ฉันคิดว่านี่เป็น GDM

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

2
ขอบคุณ @slim แต่คำสั่งที่คุณแก้ไขไม่ได้ทำอะไรนอกจากคุณจะใช้ GDM - พวกเขาไม่ได้ช่วยตอบคำถาม
jcsanyi

2
แน่นอนว่าฉันยังต้องการดูเนื้อหาของลิงก์ที่นำเข้ามาในกรณีที่ไซต์นั้นหายไป
slm

@ จุดที่ดีบาง ฉันแก้ไขเนื้อหาเป็นคำพูด
jcsanyi

17

Super+ Lทำงานใน Fedora 24 ซึ่งใช้ Gnome 3.20


4
สิ่งนี้ใช้งานได้กับ Ubuntu gnome ด้วยเช่นกันขอบคุณ :)
daveoncode

ตกลงบน Centos7 / 3.28 ด้วย
tonioc

15

สิ่งนี้ใช้ได้กับฉันใน Gnome 3.14 การติดตั้งมาตรฐานไม่มีการปรับแต่ง

gnome-screensaver-command --lock

มันจะต้องมีการติดตั้งใน Gnome 3.26.2 sudo apt-get install gnome-screensaverดังนั้นหากคุณไม่ได้มีมัน
ขาขวา

ไม่ทำงานสำหรับฉันgdmไม่ทำงานเนื่องจากการอัปเดตล่าสุดทำให้แตก (ต้องเปลี่ยนเป็น sddm ... )
ต่อ Lundberg

10

วิธีเปิดใช้งานการล็อกหน้าจอใน Gnome Shell (3.14) โดยใช้ xscreensaver (บน Debian):

(หมายเหตุ: แม้ว่าgnome-screensaverแพคเกจปัจจุบันมีอยู่ใน Debian sid แต่ดูเหมือนว่าจะไม่สามารถใช้งานได้)

  1. ติดตั้งxscreensaverแพ็กเกจ (และเลือก xscreensaver-data และ xscreensaver-data-extra)
  2. เรียกใช้xscreensaverเพื่อกำหนดค่าสกรีนเซฟเวอร์ตามที่คุณต้องการ อย่าลืมเลือก 'ล็อกหน้าจอหลังจาก 0 นาที'
  3. ในการตั้งค่าแป้นพิมพ์ GNOME ให้เลือกแท็บทางลัดจากนั้นเลือก 'ทางลัดที่กำหนดเอง'
  4. คลิกปุ่ม + จากนั้นป้อนสิ่งที่คุณต้องการเป็นชื่อและxscreensaver-command -lเป็นคำสั่ง คลิกตกลง
  5. คลิก 'ปิดการใช้งาน' และพิมพ์คีย์ผสมที่คุณต้องการล็อคหน้าจอ (ของฉันคือ Ctrl-Alt-L) ตรวจสอบให้แน่ใจว่าสิ่งนี้จะไม่ขัดแย้งกับทางลัด 'ล็อคหน้าจอ' ของ GDM ภายใต้ 'ระบบ'
  6. เพลิดเพลินไปกับหน้าจอที่ล็อคได้ของคุณ

Caveat: ป๊อปอัปการแจ้งเตือนจะยังคงปรากฏให้เห็นผ่านหน้าจอที่ถูกล็อค หากนี่เป็นปัญหาสำหรับคุณคุณจะต้องค้นหาวิธีแก้ไขปัญหาอื่น ๆ เช่นส่วนขยายหน้าจอล็อค LightDM


1
ขอบคุณที่ให้ตัวเลือกนี้ นี่เป็นสิ่งเดียวที่จบลงด้วยการทำงานให้ฉันใน Gnome 3.14.1 ใน Debian Jessie
sanimalp

ตั้งแต่ผมเขียนคำตอบนี้ผมได้ค้นพบตัวเลือกที่แตกต่างกันที่เกี่ยวข้องกับการใช้mate-screensaver(หลักเช่นเดียวกับหน้าจอของ GNOME เก่า) ต้องเขียนผู้จัดการเซสชันปลอมดังที่อธิบายไว้ที่นี่ )
Joel Cross

4

การทำงานรอบ ๆ ฉันประสบความสำเร็จในการใช้เดเบียนอูบุนตูและ rhel7 กำลังสร้างสคริปต์หลามสั้น ๆ ที่เริ่มต้นโดยอัตโนมัติเมื่อคุณเข้าสู่เซสชัน gnome โปรดสังเกตว่าใน rhel7 คีย์ผสมเพื่อล็อคเป็นซุปเปอร์ + L

สร้าง/etc/xdg/autostart/gscreenlock.pyเช่นนี้

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

จากนั้นทำให้ปฏิบัติได้:

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

และแก้ไข/etc/xdg/autostart/gscreenlock.desktopดังนี้:

[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

การล็อกหน้าจอถูกจัดการgnome-screensaverจนถึง GNOME 3.8 แอปพลิเคชันเลิกใช้งานแล้วโดยทีม GNOME และฟังก์ชันการทำงานนั้นได้รับการแบ่งออกเป็นส่วน ๆ ใน gnome-shell, gnome-session, & GDM

หากคุณเพียงต้องการให้สิ่งต่าง ๆ ประสบความสำเร็จคุณอาจโชคดีกว่าxscreensaverนี้ได้


2

@jcsanyi ให้คำอธิบายพื้นหลังของวิธีการทำงาน

สำหรับคนที่ไม่สามารถใช้ GDM3 ได้ด้วยเหตุผลหลายประการ ( เช่นข้อผิดพลาดนี้ ) และเปลี่ยนเป็น LigthDM มีคำสั่งที่เราสามารถใช้เพื่อล็อคหน้าจอ (อาจเป็นไปได้ที่จะทำงานกับ DM อื่น ๆ ด้วยเช่นกัน ตรวจสอบว่า):

ล็อคเครื่องมือ DM

เพื่อให้สะดวกยิ่งขึ้นไปที่ settings -> Keyboard -> Scroll to the bottom -> Click "+" button -> Create new custom shortcut using the command aboveเช่นนี้

ป้อนคำอธิบายรูปภาพที่นี่

ในการใช้Super+Lชุดค่าผสมคุณอาจต้องกำหนดLock screenทางลัดระบบที่มีอยู่ให้กับชุดค่าผสมอื่น


สิ่งนี้ใช้ได้กับฉันใน Fedora 30 Gnome 3.32.2 แต่ฉันสงสัยว่าทำไม Fedora ของฉันมี lightdm เป็นเครื่องมือจัดการหน้าจอเริ่มต้นใช้งานแทน GDM และโปรแกรมSuper+Lใดที่ส่งทางลัดของหน้าจอล็อกเริ่มต้นไปที่หน้าจอเนื่องจากมีอยู่ในการตั้งค่า แต่ไม่ทำงานอยู่ดี
Ivan Huang

2

คำตอบนี้ขึ้นอยู่กับ Fedora 30 GNOME 3.32.2

สำหรับลินุกซ์เดสก์ท็มักจะคีย์ลัดเริ่มต้นสำหรับการล็อคหน้าจอหรือSuper-L Ctrl-Alt-Lแต่บางครั้งพวกเขาอาจไม่ทำงานและคุณไม่สามารถหาวิธีล็อคหน้าจอได้ สิ่งนี้เกี่ยวข้องกับตัวจัดการหน้าจอที่เครื่องกำลังทำงานอยู่ $ systemctl status display-managerคุณสามารถตรวจสอบว่าด้วยการวิ่ง ถ้าคุณเห็นgdmแล้วช็อตคัตเริ่มต้นควรใช้งานได้เนื่องจาก GDM นั้นถูกจัดการโดยตัวจัดการหน้าจอของ GNOME มีชนิดอื่น ๆ ของผู้จัดการการแสดงผลเช่นlightdm, sddm, lxdm, และkdm xdmทางลัดเริ่มต้นอาจไม่ทำงานหากคุณใช้งานอย่างใดอย่างหนึ่ง อย่างไรก็ตามคุณสามารถลองล็อกได้ตลอดเวลาโดยการใช้งาน$ dm-tool lockและหากใช้งานได้คุณสามารถเพิ่มทางลัดที่กำหนดเองสำหรับคำสั่งนี้ คุณอาจต้องการเปลี่ยนเป็นเครื่องมือจัดการการแสดงผลอื่นเช่นจากlightdmเป็นgdmและถ้าเป็นเช่นนั้นทำด้านล่าง:

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

0

Shift+Ctrl+Alt+Lockทางลัดเริ่มต้นคือ

คุณสามารถค้นหาสิ่งนี้และแก้ไขโดยใช้แท็บ "ทางลัด" ในแอพ "แป้นพิมพ์"


ดูความคิดเห็น "ทางลัดถูกตั้งค่าเป็น Ctrl + L - แต่นั่นไม่ได้ทำอะไรเลย"
sourcejedi

หากคำตอบของคุณคือสิ่งนี้ได้เริ่มทำงานอีกครั้งใน Fedora เวอร์ชัน X แม้ว่าจะใช้ XDM แทน GDM คุณต้องระบุว่า Fedora รุ่นนั้นคืออะไร :) สวัสดีและยินดีต้อนรับสู่ StackExchange
sourcejedi

0

ฉันหาวิธีแก้ปัญหาที่เหมาะกับฉันบน Debian Buster กับ GNOME Shell รุ่น 3.30 และ Lightdm ฉันไม่มีความคิดใด ๆ เลยถ้าสิ่งนี้ผิดปกติ แต่ฉันไม่ได้สังเกตอะไรผิดปกติ

  1. ติดตั้งแพ็คเกจ cinnamon-screensaver
  2. เพิ่ม/usr/bin/cinnamon-screensaverไปยังแอปพลิเคชันเริ่มต้น
  3. สร้างแป้นพิมพ์ลัดสำหรับคำสั่ง: cinnamon-screensaver-command -l
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.