menangguhkan DAN mengunci layar pada tutup penutup di lengkungan / sistemd

22

apa cara paling mudah untuk mengunci layar DAN menangguhkan saat menutup tutupnya? Saya menggunakan pengait acara /etc/systemd/logind.confdan berhasil menunda saat menutup tutupnya. Namun saya tersesat ketika datang ke bagian penguncian - apakah saya harus mengaktifkan beberapa layanan screensaver dan bagaimana saya dapat memicu dua peristiwa sekaligus logind.conf?

pldimitrov
sumber
Di luar lingkup jadi saya berkomentar: di i3 sangat mudah untuk menetapkan keybindings ke perintah. Karena mod+Lsudah ditugaskan blurlockuntuk saya, mudah untuk mod+Smenjadi blurlock && systemctl suspend -igantinya. Jadi, tidak ketika menutup tutupnya, tetapi bekerja dengan sangat baik untuk memilih apakah saya hanya ingin mengunci, atau mengunci dan menangguhkan.
pzkpfw

Jawaban:

17

Ada beberapa contoh di Arch Wiki .

Pada dasarnya, ini melibatkan pembuatan file layanan untuk pengunci layar Anda dan memastikan itu terhubung ke salah satu suspend, hibernateatau sleeptarget.

Jika Anda menggunakan pengunci layar sederhana seperti slock , /etc/systemd/system/lock.serviceakan terlihat seperti ini:

[Unit]
Description=Lock the screen on resume from suspend

[Service]
User=jason
Environment=DISPLAY=:0
ExecStart=/usr/bin/slock

[Install]
WantedBy=suspend.target

Contoh lain di wiki memiliki opsi yang lebih kompleks, termasuk mematikan dan membuka layanan lain, dll.

jasonwryan
sumber
Terima kasih, saya melihat contoh itu tetapi tidak menyadari ExecStart=/usr/bin/slocksedikit mengacu pada penguncian sekilas.
pldimitrov
Jika saya menangguhkan dan kembali, manajer tampilan X saya memiliki kunci layar, itu hebat. Tapi bagaimana dengan celana saya? Bagaimana jika saya login, dan saya diskors dan saya lupa untuk keluar dari ttys saya, orang-orang dapat beralih ke sana dan melanjutkan operasi mereka.
CMCDragonkai
@ CMCDragonkai Anda ingin physlock kemudian ...
jasonwryan
1
Ini berfungsi, tetapi hanya jika Anda adalah satu-satunya pengguna sistem. Solusi yang lebih bersih adalah dengan menggunakan xss-lock(tersedia di Debian, Arch Linux; juga Fedora minggu depan) dan menjalankannya sebagai pengguna bersama dengan i3lockatau slock.
Martin Ueding
1
@MartinUeding dan @jasonwryan, di User-hardcode. Asumsi bahwa mesin ini hanya akan digunakan oleh jason(atau seseorang yang tahu kata sandinya, seperti pacarnya, misalnya). Idealnya, kami ingin Usermenjadi siapa pun yang memulai penangguhan, tetapi saya belum menemukan solusi untuk itu (belum).
Rolf
1

Jika Anda menggunakan openrcdengan elogindapakah ada solusi alternatif (yang tidak bergantung pada systemd):

#!/bin/sh
#
# /lib/elogind/system-sleep/lock.sh
# Lock before suspend integration with elogind

username=lerax
userhome=/home/$username
export XAUTHORITY="$userhome/.Xauthority"
export DISPLAY=":0.0"

case "${1}" in
        pre)
            su $username -c "/usr/bin/slock" &
            sleep 1s;
            ;;
esac

ref: https://gist.github.com/ryukinix/bd0c1ddcbbafdb4149ae70e41b7c822b

Saya memposting ini karena sangat sulit untuk menemukan cara yang tepat untuk bekerja dan utas ini muncul di hasil pertama google tentang "mengunci setelah penangguhan" atau apa pun.

Manoel Vilela
sumber