Eu tenho um macbook pro executando o Ubuntu 13.10 com FluxBox. Infelizmente, o botão liga / desliga está fisicamente acima do backspace, onde eu esperaria que a chave de exclusão estivesse. No OS X, o programa PowerKey pode ser usado para remapear a tecla liga / desliga a ser excluída. Como posso fazer algo semelhante no X Windows?
Desativei a tecla liga /etc/systemd/logind.conf
/ desliga editando e configurando. HandlePowerKey = ignore
Depois disso, posso pressionar o botão liga / desliga sem desligar o laptop.
A execução xev -event keyboard
revela que o KeyPress da tecla liga / desliga normalmente está sendo consumido 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 da chave 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
Nesse ponto, também era possível mapear a chave usando o xmodmap. Mapeei-o para a barra invertida, que é mais fácil de ver do que excluir:
xmodmap -e "keycode 124 = backslash bar"
Eu poderia obter um equivalente quase funcional para executar adicionando isso a, ~/.fluxbox/keys
mas isso é feio e lento o suficiente para ser inutilizável.
# Remap the power off to a delete key...
XF86PowerOff :Exec xdotool key Delete
Como posso usar xmodmap ou setxkbmap para usar o botão liga / desliga ao mesmo tempo que um gerenciador de janelas normal?
fonte
Não é uma resposta exata, mas você já tentou pressionar fn+ delete? Isso deve funcionar como uma exclusão real , em comparação com a ação real de 'backspace' e está muito próximo da tecla liga / desliga.
Outra dica:
fn+ enteratua como um botão Inserir ; portanto, você pode pressionar shift+ fn+ entere Colar como um clique do meio.
fonte
É difícil dizer com certeza. Talvez você já tenha tentado isso, mas pode levar a uma solução fácil.
O xmodmap está funcionando para outras chaves ou há algo que o fluxbox está fazendo que está quebrando completamente o xmodmap?
O que acontece se você iniciar x, modmap a tecla liga / desliga e depois iniciar o fluxbox? O mapeamento permanece?
Se executar xmodmap antes obras Fluxbox e mantém suas configurações, você pode escrever um script shell para chamar tanto na ordem correta, ou se você estiver usando gdm deve ler-se
~/.xmodmap
ou~/.xmodmaprc
automaticamente para você antes fluxbox entra em cena.fonte