O logind fornece um mecanismo de bloqueio do inibidor que permite que o software do usuário substitua a diretiva do sistema. Ele permite, por exemplo, que o Gnome assuma o controle de todos os botões e switches da ACPI enquanto estiver ativo. Você pode usá-lo para inibir o "interruptor da tampa do manipulador" quando o dispositivo estiver conectado e soltar o bloqueio quando estiver desconectado.
A melhor abordagem seria escrever um script em uma linguagem com ligações DBus e usar o método Inhibit()
do logind, mas o systemd fornece um comando systemd-inhibit
que pode ser usado a partir de um script de shell. Observe que ele deve ser usado como um wrapper, mantendo a trava até que o processo filho saia:
systemd-inhibit --what=handle-lid-switch SOME_COMMAND_HERE
P.S. Isso tudo presume que você não está usando um ambiente de desktop que já está bloqueando o "handle-lid-switch". A execução de systemd-inhibit
sem argumentos listará os inibidores existentes.