Consegui que funcionasse no meu ASUS N751JK e no Ubuntu 16.04 LTS:
-
Primeiro de tudo, ajuste a ação do botão "Desligar" para
nothing
como mencionado na resposta de Johano Fierra :gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"
ou, alternativamente,
sudo apt install dconf-tools
e usedconf-editor
para fazer isso (como descrito aqui ). É necessário reiniciar ou efetuar logout para que funcione. -
Instale o xdotool :
sudo apt install xdotool
Este nos permitirá acionar os principais eventos.
-
Script ACPI de backup usado para manipular o evento do botão "Desligar":
sudo cp /etc/acpi/powerbtn.sh /etc/acpi/powerbtn.sh.backup
-
Edite o script
etc/acpi/powerbtn.sh
, encontre o seguinte:# If logind is running, it already handles power button presses; desktop # environments put inhibitors to logind if they want to handle the key # themselves.
e modifique o código abaixo para que pareça:
if pidof systemd-logind >/dev/null; then xdotool key End exit 0 fi
Ele acionará o botão "Fim" e sairá quando a sessão da área de trabalho estiver ativa.
-
Para aplicar essas alterações, é preciso executar:
sudo acpid restart
Infelizmente, a desvantagem desse método é que a execução de sudo acpid restart
manualmente é necessária após cada reinicialização do sistema. Ele não funciona como esperado automaticamente quando o sistema é iniciado (embora exista acpid
process) e se pareça com algo descrito em este tópico desatualizado .
Eu tentei maneiras diferentes de reiniciar acpid
automaticamente em /etc/rc.local
ou em um script bash separado, especificado como session-setup-script
de LightDM com combinações diferentes usando os comandos sleep
ou at
. Mas sem sorte. Provavelmente, existem alguns erros que impedem que ele inicie normalmente. Seria muito útil se alguém encontrasse uma solução para isso ... no entanto, acho que é outra questão.
ATUALIZAÇÃO em 21 de janeiro de 2017
Graças a Adam é possível reiniciar acpid
automaticamente quando um usuário faz o login. Então, em vez de manual sudo acpid restart
no terminal toda vez após a reinicialização, adicione a seguinte linha:
session optional pam_exec.so /usr/sbin/acpid restart
ao final do arquivo /etc/pam.d/common-session
.
Confirmo que também funciona para o ASUS N751JK e para o ASUS GL552VW.