zawiesić ORAZ ekran blokady na zamykającej pokrywie w arch / systemd


22

jaki jest najprostszy sposób na zablokowanie ekranu ORAZ zawieszenie podczas zamykania pokrywy? Używam haków zdarzeń /etc/systemd/logind.confi zawieszam się po zamknięciu pokrywy. Jednak jestem zagubiony, jeśli chodzi o część blokującą - czy mam włączyć usługę wygaszacza ekranu i jak mogę wywołać dwa zdarzenia jednocześnie logind.conf?


Poza zakresem, więc komentuję: w i3 bardzo łatwo jest przypisywać skróty klawiszowe do poleceń. Ponieważ mod+Lzostał już blurlockdla mnie przydzielony , łatwo było mod+Sbyć blurlock && systemctl suspend -izamiast niego. Więc nie przy zamykaniu pokrywy, ale działa bardzo dobrze, aby wybrać, czy chcę tylko zablokować, czy zablokować i zawiesić.
pzkpfw,

Odpowiedzi:


17

Arch Wiki ma kilka przykładów .

Zasadniczo polega to na utworzeniu pliku usługi dla szafki ekranowej i upewnieniu się, że jest ona zaczepiona do albo suspend, hibernatealbo do sleepcelów.

Jeśli używasz prostej blokady ekranu, takiej jak slock , /etc/systemd/system/lock.servicewyglądałby następująco:

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

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

[Install]
WantedBy=suspend.target

Inne przykłady na wiki mają bardziej złożone opcje, w tym zamykanie i uruchamianie innych usług itp.


Dzięki, widziałem ten przykład, ale nie zdawałem sobie sprawy, że ExecStart=/usr/bin/slockbit odnosi się do blokowania na pierwszy rzut oka.
pldimitrov

Jeśli zawieszę się i wrócę, mój menedżer wyświetlania X ma blokadę ekranu, to świetnie. Ale co z moimi ttys? Co jeśli jestem zalogowany, a ja zawiesiłem się i zapomniałem wyjść z mojego konta, ludzie mogliby się tam przełączyć i kontynuować swoją działalność.
CMCDragonkai

@CMCDragonkai chcesz fizlock wtedy ...
jasonwryan

1
Działa to, ale tylko wtedy, gdy jesteś jedynym użytkownikiem systemu. Bardziej przejrzystym rozwiązaniem jest użycie xss-lock(dostępne w Debianie, Arch Linux; także Fedora w przyszłym tygodniu) i uruchomienie go jako użytkownika razem z i3locklub slock.
Martin Ueding

1
@MartinUeding i @jasonwryan Usersą na stałe zapisane . Założenie, że z tego urządzenia będzie korzystać tylko jason(lub ktoś, kto zna swoje hasło, na przykład jego dziewczyna). Idealnie chcielibyśmy Userbyć kimkolwiek, kto zainicjował zawieszenie, ale nie znalazłem na to rozwiązania (jeszcze).
Rolf

1

Jeśli używasz openrcz, elogindistnieje alternatywne rozwiązanie (które nie jest zależne od systemu):

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

Publikuję to, ponieważ bardzo trudno było znaleźć właściwy sposób, w jaki działa, a ten wątek pojawia się w pierwszych wynikach Google dotyczących „blokady po zawieszeniu” lub cokolwiek innego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.