É melhor eu responder a minha própria pergunta para referência futura.
Após uma pesquisa profunda, descobri que xmodmap
está realmente obsoleto e é aproximadamente corrigido no modelo de teclado xkb
. O modelo xkb
não usa uma matriz linear de alternativas, mas divide os layouts em groups
, com cada grupo tendo um par de caracteres em diferentes níveis de turno. As definições de xmodmap
preenchem as entradas em uma ordem muito engraçada: grupo 1, nível 1,2, grupo 2, nível 1,2, grupo 1, níveis 3 .... Os grupos devem ser como "layouts" e geralmente não são acessados com modificadores, mas com toggling. A exceção é o caractere Mode_switch
que usei, mas só acessa o grupo 2.
Tudo ficaria bem, exceto que as chaves têm tipos . Cada chave é definida pelo layout como TWO_LEVEL
, FOUR_LEVEL
, FOUR_LEVEL_ALPHANUMERIC
e assim por diante, e cada nível pode ter uma noção diferente de quais modificadores mapeiam para quais níveis. O comportamento que eu assumi (8 níveis, todas as combinações) foi na verdade LOCAL_EIGHT_LEVEL
que não foi usado pelo layout. Portanto, no caso de keycode 51
, o padrão era na verdade TWO_LEVEL
, e xmodmap
preenchia 3 grupos com as 6 chaves em vez de adicionar 6 níveis ao 1º grupo. O terceiro grupo não foi alcançado pelo modificador Mode_switch
. Usar outra chave resultou em comportamento diferente porque o tipo predefinido era diferente.
Como nas repetições na impressão por xmodmap
, não sei exatamente o que acontece (imprimi as definições xkb
e estava tudo bem), mas não me surpreendo que os erros ocorram quando você mapeia um array multidimensional de comprimento variável para uma única lista de symcodes. A saída não reflete o estado real de qualquer maneira.
Em conclusão, xmodmap é mal . Nunca use isso. Seu comportamento é errático e mal definido na melhor das hipóteses. Não faz o que diz que faz. Faça seus próprios xkb
maps. Reutilize a maior parte do layout em include
-ing e adicione as modificações necessárias.
No meu caso, a solução é derivar o segundo grupo do layout grego e substituir os símbolos matemáticos em lugares estratégicos, além de algumas modificações no primeiro grupo.
A maioria dos teclados baratos é muito limitada quando se trata de pressionar 3 teclas de cada vez. Isso resultou em falhas erráticas e dependentes de hardware para algumas chaves. Eu vou experimentar com diferentes teclas modificadoras (a chave mais inútil do mundo - a tecla de menu, ou similarmente inútil win-key), e possivelmente comprar um teclado melhor. A combinação de ambos os problemas (hardware quebrado por design + software fraudulento maligno) criou uma situação confusa de aparência aleatória que, a princípio, me impediu de vê-los como problemas separados.
Material de leitura: