La configuración HandleLidSwitch
se define de /etc/systemd/logind.conf
la siguiente manera:
HandleLidSwitch=<hibernate,ignore,...>
La configuración se aplica correctamente en el arranque. Sin embargo, me gustaría cambiar la configuración durante el tiempo de ejecución según el estado de CA:
Si mi computadora portátil se está cargando, use HandleLidSwitch=ignore
. Si mi computadora portátil tiene batería, use HandleLidSwitch=suspend
.
¿Es esto posible de alguna manera realizarlo con el systemd actual?
Respuesta1
logind proporciona unabloqueo inhibidorMecanismo que permite que el software del usuario anule la política del sistema. Permite, por ejemplo, que Gnome tome el control de todos los botones e interruptores ACPI mientras esté activo. Puede usarlo para inhibir el "interruptor de manija-tapa" cuando el dispositivo está enchufado y soltar el bloqueo cuando está desenchufado.
El mejor enfoque sería escribir un script en un lenguaje con enlaces DBus y usar el Inhibit()
método logind, pero systemd proporciona un systemd-inhibit
comando que se puede usar desde un script de shell. Tenga en cuenta que está pensado para usarse como contenedor, manteniendo el bloqueo hasta que salga el proceso hijo:
systemd-inhibit --what=handle-lid-switch SOME_COMMAND_HERE
PD: Todo esto supone que no estás utilizando un entorno de escritorio que ya esté bloqueando el "interruptor de tapa de manija". Ejecutarlo systemd-inhibit
sin argumentos enumerará los inhibidores existentes.