Aufhängen UND Sperren des Bildschirms am schließenden Deckel im Bogen / System

22

Was ist die einfachste Möglichkeit, den Bildschirm zu sperren UND beim Schließen des Deckels anzuhalten? Ich verwende Ereignis-Hooks /etc/systemd/logind.conf, die beim Schließen des Deckels erfolgreich angehalten werden. Beim Sperren bin ich jedoch verloren - soll ich einen Bildschirmschonerdienst aktivieren und wie kann ich zwei Ereignisse gleichzeitig auslösen logind.conf?

pldimitrov
quelle
Außerhalb des Geltungsbereichs, also kommentiere ich: In i3 ist es sehr einfach, Befehlen Tastenzuweisungen zuzuweisen. Da mod+Lbereits zugewiesen wurde blurlockfür mich war es einfach zu haben mod+Ssein , blurlock && systemctl suspend -istatt. Also nicht beim Schließen des Deckels, sondern funktioniert sehr gut, um zu wählen, ob ich nur sperren oder sperren und aufhängen möchte.
pzkpfw

Antworten:

17

Es gibt einige Beispiele im Arch Wiki .

Im Grunde ist es beinhaltet eine Servicedatei für die Bildschirmsperre zu schaffen und sicherstellen , dass er süchtig ist, entweder die suspend, hibernateoder sleepZiele.

Wenn Sie eine einfache Bildschirmsperre wie slock verwenden , /etc/systemd/system/lock.servicewürde dies so aussehen:

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

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

[Install]
WantedBy=suspend.target

Andere Beispiele im Wiki enthalten komplexere Optionen, z. B. das Herunterfahren und Aufrufen anderer Dienste usw.

jasonwryan
quelle
Danke, ich habe dieses Beispiel gesehen, aber nicht bemerkt, dass sich das ExecStart=/usr/bin/slockBit auf den ersten Blick auf das Sperren bezieht.
Pldimitrov
Wenn ich aussetze und zurückkomme, hat mein X-Display-Manager eine Bildschirmsperre, das ist großartig. Aber was ist mit meinen ttys? Was ist, wenn ich eingeloggt bin und gesperrt habe und vergessen habe, meine ttys zu verlassen? Die Leute könnten dorthin wechseln und ihren Betrieb fortsetzen.
CMCDragonkai
@ CMCDragonkai Sie wollen Physlock dann ...
Jasonwryan
1
Dies funktioniert jedoch nur, wenn Sie der einzige Benutzer des Systems sind. Eine sauberere Lösung ist zu verwenden xss-lock(verfügbar in Debian, Arch Linux; auch Fedora nächste Woche) und diese als Benutzer zusammen mit i3lockoder auszuführen slock.
Martin Ueding
1
@MartinUeding und @jasonwryan sind fest codiert User. Die Annahme, dass diese Maschine nur von jason(oder jemandem, der sein Passwort kennt, wie zum Beispiel seiner Freundin) benutzt wird. Idealerweise möchten wir Userderjenige sein, der die Suspendierung initiiert hat, aber ich habe (noch) keine Lösung dafür gefunden.
Rolf
1

Wenn Sie openrcmit verwenden, elogindgibt es eine alternative Lösung (die nicht systemabhängig ist):

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

Ich poste dies, weil es sehr schwierig war, einen richtigen Weg zu finden, wie es funktioniert, und dieser Thread erscheint bei den ersten Ergebnissen von Google über "lock after suspend" oder was auch immer.

Manoel Vilela
quelle