suspender Y bloquear la pantalla al cerrar la tapa en el arco / systemd

22

¿Cuál es la forma más sencilla de bloquear la pantalla Y suspender al cerrar la tapa? Estoy usando ganchos de eventos /etc/systemd/logind.confy suspendo con éxito al cerrar la tapa. Sin embargo, estoy perdido cuando se trata de la parte de bloqueo: ¿se supone que debo habilitar algún servicio de protector de pantalla y cómo puedo activar dos eventos a la vez logind.conf?

pldimitrov
fuente
Fuera del alcance, así que estoy comentando: en i3 es muy fácil asignar combinaciones de teclas a los comandos. Dado que mod+Lya ha sido asignado a blurlockpor mí, que era fácil tener mod+Sestar blurlock && systemctl suspend -ien su lugar. Entonces, no al cerrar la tapa, pero funciona muy bien para elegir si solo quiero bloquear o bloquear y suspender.
pzkpfw

Respuestas:

17

Hay un par de ejemplos en Arch Wiki .

Básicamente, se trata de la creación de un archivo de servicio para su bloqueador de pantalla y la garantía de que se engancha a cualquiera de los suspend, hibernateo sleepblancos.

Si usa un bloqueador de pantalla simple como slock , /etc/systemd/system/lock.servicese vería así:

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

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

[Install]
WantedBy=suspend.target

Otros ejemplos en el wiki tienen opciones más complejas, que incluyen cerrar y mostrar otros servicios, etc.

jasonwryan
fuente
Gracias, vi ese ejemplo pero no me di cuenta de que el ExecStart=/usr/bin/slockbit se refiere al bloqueo a primera vista.
pldimitrov
Si suspendo y vuelvo, mi administrador de pantalla X tiene un bloqueo de pantalla, eso es genial. ¿Pero qué hay de mis ttys? ¿Qué pasa si he iniciado sesión y me suspendí y olvidé salir de mis ttys? La gente podría cambiar a allí y continuar sus operaciones.
CMCDragonkai
@CMCDragonkai quieres fislock entonces ...
jasonwryan
1
Esto funciona, pero solo si usted es el único usuario del sistema. Una solución más limpia es usar xss-lock(disponible en Debian, Arch Linux; también Fedora la próxima semana) y ejecutarlo como usuario junto con i3locko slock.
Martin Ueding
1
@MartinUeding y @jasonwryan, Userestá codificado. La suposición de que esta máquina solo será utilizada por jason(o alguien que conozca su contraseña, como su novia, por ejemplo). Idealmente, nos gustaría Userser quien inició la suspensión, pero no he encontrado una solución para eso (todavía).
Rolf
1

Si usa openrccon, elogind¿hay una solución alternativa (que no depende del sistema):

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

Estoy publicando esto porque fue muy difícil encontrarlo de una manera adecuada que funcione y este hilo aparece en los primeros resultados de google sobre "bloquear después de suspender" o lo que sea.

Manoel Vilela
fuente