Adicione as seguintes linhas ao arquivo /etc/acpi/lid.sh
:
#open
screenon
chvt 7
#close
chvt 12
screenoff
Isso mudará para o console quando a tampa estiver fechada e evitará a detecção de movimentos do mouse.
Eu tenho um laptop rodando linux. Na minha configuração do xorg, eu tenho a configuração do DPMS para que a tela desligue automaticamente durante vários eventos. Além disso, eu tenho que seguir o seguinte script ligado aos eventos de abertura / fechamento da tampa da ACPI:
#!/bin/sh
for i in $(pidof X); do
CMD=$(ps --no-heading $i)
XAUTH="$(echo $CMD | sed -n 's/.*-auth \(.*\)//p')"
DISPLAY="$(echo $CMD | sed -n 's/.* \(:[0-9]\) .*//p')"
# turn the display off or back on
export XAUTHORITY=$XAUTH
/usr/bin/xset -display $DISPLAY dpms force $1
done
Basicamente, este script usa um parâmetro ("on" ou "off") e depois percorre todas as minhas sessões X em execução e liga ou desliga o monitor.
Aqui está o meu problema. Quando fecho a tampa do laptop, a tela se apaga como esperado, mas se ocorrer um evento de mouse (como se algo colidisse com a mesa ...), a tela volta a funcionar mesmo que esteja fechada (consigo ver luz através do lado do laptop).
Existe uma maneira de impedir que a tela seja ativada durante um evento de mouse se a tampa estiver fechada?
Você pode fazer mágica com xrandr; por exemplo. algo ao longo das linhas de
xrandr --output LVDS --off
para desativá-lo e
xrandr --output LVDS --auto
para trazê-lo de volta. Substitua o LVDS por qualquer que seja o nome da saída para a tela do seu laptop.
A desvantagem disso é que, se algo der errado, pode ser difícil deixar sua tela sem energia elétrica.
Seguindo a ideia de desativar o mouse, você pode fazê-lo de maneira mais seletiva e segura com xinput:
# open
DISPLAY=:0.0 xinput set-int-prop 12 "Device Enabled" 8 1
# close
DISPLAY=:0.0 xinput set-int-prop 12 "Device Enabled" 8 0
Você encontra o ID (12 aqui) com: xinput --list
Tente usar um aplicativo como o Power Devil para gerenciar isso. KDE ou Gnome?
Parece ser um pouco difícil impedir que o X sinalize a atividade e desabilite o DPMS quando recebe eventos de atividade.
Mas, como você já está no reino dos scripts, que tal desabilitar os dispositivos USB quando a tampa está fechada? O efeito poderia ser alcançado simplesmente removendo módulos, ou talvez suspendendo o dispositivo usb. Algo como isso pode funcionar:
echo suspend > /sys/bus/usb/devices/usb1/power/level
Se isso funcionar, seu X não receberá eventos enquanto a tampa estiver fechada.
Tags power-management xorg linux dpms