Usando o xmodmap para configurar mapeamentos de teclas individuais
É hora de escrever os resultados da minha própria pesquisa.
Eu pensei que eu deveria ter perdido alguma coisa no xmodmap e que isso não é muito bem documentado e as pessoas estão confusas. Mas acabou que o design do X.Org em relação ao XKB e ao xmodmap é simplesmente estúpido.
Falha épica: xmodmap
Você pode usar o xmodmap para redefinir os mapeamentos existentes, desde que esses mapeamentos realmente existam no layout do teclado original. No caso descrito na questão, você não pode estender o comportamento de nenhuma tecla para usar o AltGr. Você só pode alterar os keyyms AltGr para códigos de teclas que já estão usando AltGr.
Veja também: link
Solução alternativa: Mode_switch
Esta solução alternativa é descrita na resposta por @ Ned64. Você pode remapear AltGr
de ISO_Level3_Shift
para Mode_switch
.
Eu usei com sucesso a seguinte linha de comando para remapear AltGr
.
xmodmap -e 'keycode 108 = Mode_switch'
A desvantagem é que ele irá quebrar seu layout de teclado atual, mas você pode recriar todos os mapeamentos um por um usando xmodmap
como @ Ned64 já mencionado.
Solução alternativa: layout de teclado modificado
Estou usando us(cz_sk_de)
como meu layout de teclado e tentei modificá-lo adicionando configuração para as chaves que queria estender.
key <AB08> { [ comma, less, doublelowquotemark, leftdoublequotemark ] };
key <AB09> { [ period, greater, ellipsis, rightdoublequotemark ] };
(Na seção xkb_symbols "cz_sk_de"
de /usr/share/X11/xkb/symbols/us
)
Basta redefinir o layout do teclado para usar a versão modificada.
setxkbmap 'us(cz_sk_de)'
Agora você pode (1) digitar aspas e elipses tchecos e ingleses usando combinações de chaves ,
, .
, Shift
e AltGr
e / ou (2) remapear essas chaves usando xmodmap
agora que eles estão definidos.
A principal desvantagem é que setxkbmap
parece não suportar localizações arbitrárias para layouts de teclado e, portanto, você precisa escrever para a configuração do sistema em vez do seu diretório pessoal.
Conclusão
Este parece ser um exemplo de design overprojectado e incorrecto do X.Org, onde mesmo uma coisa tão trivial como mapear um código chave e uma combinação de modificadores num símbolo acaba por ser um problema. As ferramentas não parecem fornecer uma maneira razoável de alterar apenas mapeamentos de teclas individuais na configuração do usuário, sem efeitos colaterais.