Olá a todos. Eu uso o Lubuntu 18.04 no meu laptop em casa. Um belo dia, decidi que não estava satisfeito com as ações que o Power Manager oferece ao fechar a tampa de um laptop. Quando fechei a tampa do laptop, queria bloquear a tela e depois de um tempo enviar o laptop para a hibernação. Para fazer isso, escrevi um roteiro e me apressei a compartilhá-lo com você.Eu tive dois problemas.A primeira é que a hibernação não funciona no loubunt fora da caixa;Encontre a troca UUID, para isso você precisa fazer:grep swap /etc/fstab
No meu caso, a saída é a seguinte:
UUID=aebf757e-14c0-410a-b042-3d9a6044a987 none swap sw 0 0
Então você precisa adicionar o UUID aos parâmetros de inicialização do kernel. Para fazer isso, adicione o arquivo / etc / default / grub à linha "GRUB_CMDLINE_LINUX_DEFAULT" resume = UUID =% your UUID%...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=aebf757e-14c0-410a-b042-3d9a6044a987"
...
E execute o comando:sudo update-grub
Agora a hibernação deve funcionar, para verificação, você pode:sudo systemctl hibernate
O segundo problema foi como bloquear a tela do usuário a partir da raiz sem enviar o laptop para dormir. Eu resolvi usando dbus-send, o comando em si está no script abaixo. Se alguém conhece outras opções, escreva nos comentários.Agora vamos começar a escrever o script.A primeira coisa que precisamos fazer no Power Manager é selecionar Desativar exibição como a ação ao fechar a capa, para que não haja conflitos com nosso script.
Em seguida, crie o arquivo / etc / acpi / events / laptop-lid com o seguinte conteúdo:event=button/lid.*
action=/etc/acpi/laptop-lid.sh
e crie o script /etc/acpi/laptop-lid.sh com o seguinte conteúdo:#!/bin/bash
BUS=$(grep -z DBUS_SESSION_BUS_ADDRESS \
/proc/$(pidof -s lxsession)/environ | \
sed 's/DBUS_SESSION_BUS_ADDRESS=//g')
USER=$(grep -z USER /proc/$(pidof -s lxsession)/environ | sed 's/USER=//g')
LID="/proc/acpi/button/lid/LID0/state"
check_lid () {
grep -q closed $LID
}
check_lid
if [ $? = 0 ]
then
sudo -u $USER -E dbus-send --bus=$BUS \
--type=method_call \
--dest="org.freedesktop.ScreenSaver" \
"/org/freedesktop/ScreenSaver" \
org.freedesktop.ScreenSaver.Lock
fi
sleep 600
check_lid
if [ $? = 0 ]
then
systemctl hibernate
fi
Tornamos o script executável:sudo chmod a+x /etc/acpi/laptop-lid.sh
E reinicie o daemon acpid para que as alterações se apliquem:sudo systemctl restart acpid.service
Tudo está pronto.Para o Gnome no script, você precisa alterar:- lxsessin => gnome-session
- org.freedesktop.ScreenSaver => org.gnome.ScreenSaver