ตรวจสอบให้แน่ใจว่าเดสก์ท็อปของฉันถูกล็อคเมื่อเข้าสู่โหมดสลีป


1

มีวิธีติดตั้งตะขอบางอย่างที่จะทำให้แน่ใจxlockหรือมีการเรียกโปรแกรมที่คล้ายกันก่อนที่แล็ปท็อปของฉันจะเข้าสู่โหมดสลีปโดยไม่คำนึงถึงที่มาของคำขอ (การโทรpm-suspendจากสคริปต์หรือปิดฝาเป็นต้น) และผู้จัดการหน้าต่างที่ฉันกำลังใช้อยู่?

(ขณะนี้ฉันใช้ Debian Linux แต่ฉันคิดว่าจะมีวิธีแก้ปัญหาแบบไม่เชื่อเรื่องพระเจ้า)

คำตอบ:


3

ไม่เนื่องจากเคอร์เนลไม่ได้ให้สัญญาณ "กำลังหลับ" ใด ๆ ก่อนที่จะแช่แข็งกระบวนการทั้งหมดจึงไม่มีวิธีที่ไม่เชื่อเรื่องการกระจาย

ที่กล่าวว่าคำขอการระงับทั้งหมด - รวมถึงการปิดฝา - มักจะผ่าน API ผู้ใช้บางส่วน: ในที่สุดพวกเขาเรียกSuspend()ฟังก์ชันsystemd-logind ผ่าน D-Bus หรือวางpm-suspendคำสั่ง ทั้งสองมี "hooks" หลากหลายชนิดซึ่งสามารถใช้สำหรับสิ่งนี้

(โปรดทราบว่าไม่ว่าคุณจะทำอะไรผู้ใช้echo mem > /sys/power/stateจะยังคงมองไม่เห็นผู้ใช้โดยตรงโดยตรงจากการดูการกระโดดของนาฬิกาทันที ... )

ดังนั้นหากคุณใช้systemdเป็น init:

  1. ติดตั้งxss-lockและทำให้สภาพแวดล้อมเดสก์ท็อปของคุณเริ่มต้นที่การเข้าสู่ระบบ (ผ่าน~/.xinitrcทาง~/.config/autostart/หรือผ่านสิ่งใดก็ตาม):

    xss-lock xlock &

    สิ่งนี้จะจัดการกับการแจ้งเตือนล่วงหน้าของ systemd รวมถึงการloginctl lock-sessionsโทรด้วยตนเองหากคุณต้องการ

  2. สร้าง pm-utils hook script ที่/etc/pm/sleep.d/50lock:

    #! / bin / ดวลจุดโทษ
    ล็อคเซสชัน

    (อย่าลืมให้chmod +x.) คุณไม่จำเป็นต้องนี้ systemd ปกติระงับ แต่มันจะส่งการแจ้งเตือนไป XSS pm-suspendล็อคเมื่อใดก็ตามที่คุณทำงานด้วยตนเอง

หากคุณใช้ระบบ init อื่น:

หากคุณใช้pm-suspendงานอยู่ฉันคิดว่าคุณสามารถเรียกใช้xlock โดยตรงจากสคริปต์ hook ของ pm / sleep.d ที่จะต้องให้คุณตั้งค่าโดยตรงDISPLAYและXAUTHORITYตัวแปรสภาพแวดล้อมซึ่งเป็นที่น่ากลัวเพราะพวกเขาสามารถแตกต่างกันจากการบูตเพื่อบูต (แม้ว่าบางคน hardcode :0มี ... )

โดยรวมในสถานการณ์นั้นวิธีการเฉพาะสภาพแวดล้อมบนเดสก์ท็อปอาจทำงานได้ดีขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.