Para saber se o botão realmente está funcionando, vá para um terminal e digite
while [ 1 ]; do cat /proc/acpi/button/lid/LID/state; sleep 1; done
você deve obter um
state: open
a cada segundo. Agora feche a tampa e espere um pouco. Abra novamente. Algumas linhas devem agora ser
state: closed
com isso, você pode dizer que o hardware está funcionando, e o sinal é lido pelo linux
Se estiver funcionando, não sei qual é o seu problema = P
No entanto, eu tenho um kludge feio que você pode usar enquanto seu problema não é corrigido
#ensures that a closed lid causes the computer to suspend
#! /bin/bash
while [ 1 ]
do
sleep 20
grep closed /proc/acpi/button/lid/LID/state && sudo pm-suspend
done
Este é um script bash.
Para usá-lo,
1) crie um arquivo com este conteúdo (digamos, check_lid)
2) clique com o botão direito no arquivo e abra as propriedades
2.1) vá para as permissões e selecione 'permitir a execução do arquivo como um programa'
3) no menu de desligamento, vá para Startup Applications e adicione seu programa (check_lid) para os programas na inicialização.
4) Assegure-se de que seu usuário possa executar o sudo pm-suspend sem usar uma senha (através do arquivo sudoers)