आर्च / सिस्टमड में ढक्कन बंद करने पर सस्पेंड और लॉक स्क्रीन


22

स्क्रीन को बंद करने और ढक्कन बंद करते समय निलंबित करने का सबसे सीधा तरीका क्या है? मैं ईवेंट हुक का उपयोग कर रहा हूं /etc/systemd/logind.confऔर सफलतापूर्वक ढक्कन बंद करने पर निलंबित हूं । हालाँकि, जब मैं लॉकिंग पार्ट की बात करता हूं तो मैं हार जाता हूं - क्या मैं कुछ स्क्रीनसेवर सेवा को सक्षम करने वाला हूं और मैं एक बार में दो घटनाओं को कैसे ट्रिगर कर सकता हूं logind.conf?


दायरे से बाहर इसलिए मैं टिप्पणी कर रहा हूं: i3 में कमांड को कीबाइंडिंग असाइन करना बहुत आसान है। चूंकि मेरे लिए mod+Lपहले से ही सौंपा गया था blurlock, इसलिए इसके बजाय mod+Sहोना आसान था blurlock && systemctl suspend -i। इसलिए, ढक्कन को बंद करते समय नहीं, बल्कि यह चुनने के लिए बहुत अच्छी तरह से काम करता है कि मैं सिर्फ लॉक करना चाहता हूं, या लॉक करना और निलंबित करना।
pzkpfw

जवाबों:


17

आर्क विकी में कुछ उदाहरण हैं ।

असल में, यह अपनी स्क्रीन लॉकर के लिए एक सेवा फ़ाइल बनाने और यह या तो के शौकीन है सुनिश्चित करना शामिल है suspend, hibernateया sleepलक्षित करता है।

आप की तरह एक साधारण स्क्रीन लॉकर का उपयोग करते हैं slock , /etc/systemd/system/lock.serviceइस प्रकार दिखाई देगा:

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

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

[Install]
WantedBy=suspend.target

विकी पर अन्य उदाहरणों में अधिक जटिल विकल्प हैं, जिनमें शट डाउन करना और अन्य सेवाओं को लाना आदि शामिल हैं।


धन्यवाद, मैंने उस उदाहरण को देखा, लेकिन यह महसूस नहीं किया कि ExecStart=/usr/bin/slockबिट पहली झलक में लॉक करने के लिए संदर्भित करता है।
pldimitrov

यदि मैं निलंबित हो जाता हूं और वापस आता हूं, तो मेरे एक्स डिस्प्ले मैनेजर में स्क्रीन लॉक है, यह बहुत अच्छा है। लेकिन मेरे टिट्स का क्या? क्या होगा अगर मैं लॉग इन हूं, और मैंने निलंबित कर दिया है और मैं अपने ttys से बाहर निकलना भूल गया, लोग वहां स्विच कर सकते हैं और अपना संचालन जारी रख सकते हैं।
CMCDragonkai

@CMCDragonkai आप चाहते हैं physlock फिर ...
jasonwryan

1
यह काम करता है, लेकिन केवल अगर आप सिस्टम के एकमात्र उपयोगकर्ता हैं। एक सफाई घोल उपयोग करने के लिए है xss-lock(Debian, आर्क लिनक्स में उपलब्ध है, यह भी फेडोरा अगले सप्ताह) और के साथ एक उपयोगकर्ता के रूप में एक साथ चलते हैं, i3lockया slock
मार्टिन उडिंग

1
@MartinUving और @jasonwryan, Userहार्डकोड है। यह धारणा कि इस मशीन का उपयोग केवल jason(या कोई व्यक्ति जो अपने पासवर्ड को जानता है, जैसे कि उसकी प्रेमिका, उदाहरण के लिए) द्वारा किया जाएगा। आदर्श रूप से, हम चाहते हैं कि Userजिसने भी सस्पेंड की पहल की हो, लेकिन मुझे उस (अभी तक) के लिए कोई समाधान नहीं मिला है।
रॉल्फ

1

यदि आप इसके openrcसाथ उपयोग करते हैं elogindतो एक वैकल्पिक समाधान है (जो सिस्टमड निर्भर नहीं है):

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

रेफरी: https://gist.github.com/ryukinix/bd0c1ddcbbafdb4149ae70e41b7c822b

मैं इसे पोस्ट कर रहा हूं क्योंकि यह एक उचित तरीका खोजना बहुत मुश्किल है जो यह काम करता है और यह धागा "सस्पेंड के बाद लॉक" या जो भी हो, उसके बारे में Google के पहले परिणामों पर दिखाई देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.