Remapear a chave de energia para excluir

14

Eu tenho um macbook pro rodando o Ubuntu 13.10 com o FluxBox. Infelizmente, o botão liga / desliga está fisicamente acima do backspace, onde eu esperaria que a chave delete estivesse. No OS X, o programa PowerKey pode ser usado para remapear a tecla liga / desliga para excluir. Como posso fazer algo semelhante no X Windows?

Eu desativei a tecla liga / desliga editando /etc/systemd/logind.conf e definindo HandlePowerKey = ignore Depois disso, posso pressionar o botão liga / desliga sem desligar o laptop.

A execução de xev -event keyboard revela que o KeyPress da chave liga / desliga normalmente está sendo comido por outro processo:

MappingNotify event, serial 36, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeymapNotify event, serial 36, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

KeymapNotify event, serial 37, synthetic NO, window 0x0,
    keys:  1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

No entanto, executando apenas o xterm diretamente do console, consegui obter o código de acesso e remapear a chave com êxito.

xinit /usr/bin/xterm -- :1
xev -event keyboard | tee /tmp/junk.txt
tail -n ???? /tmp/junk.txt
MappingNotify event, serial 28, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x600001,
    root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 29, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

Neste ponto, também foi possível mapear a chave usando o xmodmap. Eu mapeei a barra invertida, que é mais fácil de ver do que excluir:

 xmodmap -e "keycode 124 = backslash bar"

Eu poderia obter um equivalente mal-funcional para executar, adicionando isso a ~/.fluxbox/keys , mas isso é tanto feio quanto lento o suficiente para ser inutilizável.

  # Remap the power off to a delete key...
  XF86PowerOff :Exec xdotool key Delete

Como posso usar o xmodmap ou o setxkbmap para usar o botão liga / desliga ao mesmo tempo que um gerenciador de janelas normal?

    
por nathan 24.12.2013 / 08:21

3 respostas

3

Eu não entendo exatamente a sentença final, pergunta, mas posso me relacionar com o título da pergunta: "Remapear a tecla de poder para excluir".

Tente substituir qualquer "XF86PowerOff" ou apenas o que corresponde ao seu teclado com "Excluir" em / usr / share / X11 / xkb / symbols / inet.

Você precisa repetir isso depois de uma atualização do sistema que atualiza esse arquivo.

    
por 13.05.2016 / 20:18
1

Não é uma resposta exata, mas você tentou pressionar fn + delete ? Isso deve funcionar como um verdadeiro Excluir , contra sua ação real de 'backspace' e está muito próximo da chave de energia.

Outra dica:

fn + entra age como um botão Inserir , então você deve ser capaz de pressionar shift + < kbd> fn + introduza e Cole como um clique do meio.

    
por 06.04.2015 / 19:41
0

É difícil dizer com certeza. Estas podem ser coisas que você já tentou, mas podem levar a uma solução fácil.

O xmodmap está funcionando para outras chaves, ou há algo que o fluxbox está fazendo que esteja quebrando o xmodmap completamente?

O que acontece se você iniciar x, modmapear a tecla liga / desliga e depois iniciar o fluxbox? O mapeamento fica?

Se estiver executando o xmodmap antes do fluxbox funcionar e manter suas configurações, você pode escrever um script de shell para chamar ambos na ordem correta ou, se estiver usando o gdm, ele deve ler ~/.xmodmap ou ~/.xmodmaprc automaticamente para você antes O fluxbox entra em cena.

    
por 30.01.2014 / 20:02