Comprei o laptop ROG G551JM Asus, que provou ser compatível com o Ubuntu. O teclado do computador é mal projetado, com a tecla "Poweroff" sendo uma tecla comum, colocada no local, onde geralmente se encontra a tecla "End". Caso contrário, o computador está bom, então eu o comprei com a suposição de que seria capaz de "corrigir" o problema, ou seja, remapear o botão PowerOff na tecla "Finalizar".
O botão PowerOff cometeu um erro (ASUS G551JM):
Normalmente, existe uma tecla «Fim» (ASUS N56VZ):
Os "Poweroff" eventos de botão são produzidos pelo /dev/input/event2: Power Button
dispositivo (como relatado por evtest
) com código 116 (exemplo de linha evtest
: Event: time 1422895638.246142, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
)
A chave também é visível para o servidor X e, finalmente, o Ubuntu pode identificar as teclas pressionadas como uma PowerOff
tecla e inicia a caixa de diálogo semitransparente "Adeus usuário Adam ..." que confirma minha vontade de desligar o computador.
O problema é que a ligação que liga a tecla PowerOff pressiona com a rotina que exibe que a caixa de diálogo de confirmação não é visível no dconf-editor e não tenho idéia de onde encontrá-la.
Alguém pode me dizer, onde alterar (ou excluir) a ligação padrão da chave PowerOff ???
Deve ser algo fácil.
editar 21.IX.2016:
Existe uma maneira de desativar permanentemente a caixa de diálogo, consulte Como modificar as opções do botão liga / desliga? . Espero que, depois de desativar o botão liga / desliga, seja possível atribuí-lo novamente a outra coisa.
fonte
Home
eEnd
são as teclas "meta" que eu mais uso ... :(Respostas:
Consegui fazê-lo funcionar no meu ASUS N751JK no Ubuntu 18.04 LTS e Ubuntu 16.04 LTS (testado com o ambiente de desktop Unity nos dois casos e com o KDE Plasma no 18.04):
Primeiro, defina a ação do botão "Desligar" para
nothing
.Unidade
Como mencionado na resposta de Johano Fierra :
ou alternativamente,
sudo apt install dconf-tools
e usedconf-editor
para alterar aorg.gnome.settings-daemon.plugins.power
propriedade (como descrito aqui ). É necessário reiniciar ou fazer logout para fazê-lo funcionar.KDE
Vá para "Configurações do sistema" , selecione a guia "Gerenciamento de energia" na seção "Hardware" e selecione a guia "Economia de energia" , role para baixo, localize a lista suspensa "Quando o botão liga / desliga pressiona" e altera seu valor para "Não fazer nada" . Clique no botão "Aplicar" para que as alterações tenham efeito.
Instale o xdotool :
Este nos permitirá acionar os principais eventos.
O próximo passo é acionar a tecla "Finalizar" pressionando a tecla "Desligar" .
Ubuntu 18.04
Crie um
/etc/acpi/events/power
arquivo com o seguinte conteúdo:e crie um
/etc/acpi/power.sh
script com o seguinte conteúdo:e adicione permissões de execução a ele:
Ubuntu 16.04
Script ACPI de backup usado para manipular o evento do botão "Desligar" :
Em seguida, edite-o e encontre o seguinte:
e modifique o código abaixo para que fique assim:
Para aplicar essas alterações, deve-se executar:
Graças a Adam , é possível reiniciar
acpid
automaticamente quando um usuário faz login (na inicialização do sistema). Portanto, em vez de manualsudo acpid restart
no terminal sempre que após a reinicialização, adicione a seguinte linha:até o final do
/etc/pam.d/common-session
arquivo.fonte
sudo acpid reload
vez de reiniciar? Isso funcionaria?acpid restart
problema é adicionar uma linhasession optional pam_exec.so /usr/sbin/acpid restart
no final de/etc/pam.d/common-session
. Dessa forma, o acpid será reiniciado logo após o login do usuário e isso é suficiente para mim. Problema resolvido finalmente !!gsettings set
vez degsettings get
.sudo chmod +x /etc/acpi/power.sh
@Ezze, talvez você possa atualizar sua resposta para incluir isso.Isso deve fazer o truque.
Entre no terminal:
fonte
xev
comando e evitaxmodmap
remapear. A propósito, o código da tecla "Desligar" pode ser diferente (124 para o meu ASUS N751JK).gsettings set org.gnome.settings-daemon.plugins.power button-power "shutdown"
(pressionando o botão é capturado), edite/etc/acpi/events/powerbtn
e comente a linha#action=/etc/acpi/powerbtn.sh
e entre no terminal:xmodmap -e "keycode 124 = End"
Isso deve impedir o botão liga / desliga de fazer qualquer coisa e, ao mesmo tempo, mapeá-lo para a tecla Encerrar.powerbtn.sh
script, mas também pelo (pelo menos)systemd-logind
serviço (provavelmente, ele usa abutton-power
configuração mencionada na sua resposta). Você pode encontrarif pidof systemd-logind >/dev/null; then
...exit 0
linha napowerbtn.sh
qual o script permitesystemd-logind
manipular o evento "Desligar" sozinho quando a sessão da área de trabalho está ativa. Uma coisa que você tem razão: alterar obutton-power
valor não afeta a capacidade de capturar a chave, mas ela já é capturada por algum processo (systemd-logind
ou outro).