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
nothingcomo mencionado na resposta de Johano Fierra :gsettings set org.gnome.settings-daemon.plugins.power button-power "nothing"ou, alternativamente,
sudo apt install dconf-toolse usedconf-editorpara fazer isso (como descrito aqui ). É necessário reiniciar ou efetuar logout para que funcione. -
Instale o xdotool :
sudo apt install xdotoolEste 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 fiEle 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.