Quero embaralhar algumas teclas com o XKB. (Por quê? Em um laptop em que algumas teclas estão localizadas inconvenientemente.) Atualmente, uso o xmodmap:
keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home
Em vez disso, quero usar o XKB e atribuir nomes simbólicos diferentes para determinadas chaves físicas, em vez de atribuir diferentes academias de chaves a determinados códigos de chave. ( Este é o porquê.) Eu quero código de acesso 110 para enviar PGUP
, em vez de HOME
, código de acesso 115 para enviar DELE
, em vez de END
, etc. O resto da configuração não deve ser afectado (por isso PGUP
é manter o envio do keysym Prior
, etc., e todas as outras chaves permanecem como eles são).
Como posso alterar a atribuição desses códigos-chave específicos? Carregarei um arquivo com xkbcomp somefile.xkb $DISPLAY
o que preciso inserir somefile.xkb
?
fonte
-I
comutador! Obrigado, não consegui descobrir isso na página de manual.Você pode começar por
setxkbmap -print > somefile.xkb
obter o mapa de teclas que está usando como base e redefinir os nomes de chave que deseja naxkb_keycodes
seção como esta:Isso gera avisos de que alguns nomes de chave são atribuídos várias vezes, mas funciona porque apenas o último conta (por isso é importante colocar as configurações personalizadas após a inclusão). E o arquivo tem a vantagem de ser legível.
Outra maneira é despejar o mapa de teclas que você usa em um arquivo:
xkbcomp $DISPLAY somefile.xkb
e modificar as mesmas linhas (é o mesmo mapa de teclas com as inclusões avaliadas). Dessa forma, não há avisos para várias definições, mas é menos legível.fonte
evdev+aliases(azerty)
, etc.)? Quero explicitamente realizar uma alteração relativa, não uma reconfiguração completa. Chaves diferentes das 6 listadas nas perguntas não devem ser afetadas; elas devem permanecer no estado em que estavam quando eu emiti o comando.setxkbmap -print
, são arquivos/usr/share/X11/xkb/
. Eu acho que você tem que dar um mapa de teclado inteiro paraxkbcomp
mas posso estar errado ...