De acordo com Um guia não confiável para a configuração do XKB , você pode faça isso com um alias . Esse recurso é usado em xkb/aliases
, então você deve ser capaz de fazer algo como
alias <ESC> = 9;
alias <ESC> = 180;
Eu tenho um novo teclado bluetooth, e por alguma razão o código que a chave de escape retorna é 172 em vez de 1 (de acordo com 'showkey'; os mesmos códigos têm 8 adicionados em xkb, então 180 em vez de 9). Ao seguir esta resposta , sou capaz de remapear o ESC para trabalhar em keycode 180 em vez de 9, então isso é ótimo, no entanto eu não consigo fazer isso duas vezes, ou seja, escrever
<ESC> = 9;
<ESC> = 180;
Nesse caso, apenas a última configuração funciona. Isso é sub-ótimo porque quebra a chave no teclado embutido. Então eu posso conseguir um ou outro para funcionar bem, mas não ambos.
Qual é a coisa correta a fazer sobre isso?
De acordo com Um guia não confiável para a configuração do XKB , você pode faça isso com um alias . Esse recurso é usado em xkb/aliases
, então você deve ser capaz de fazer algo como
alias <ESC> = 9;
alias <ESC> = 180;
Pelo que entendi, você tem que passar por dois níveis de mapeamento. No mapeamento de códigos de teclas , você atribui nomes "arbitrários" (até 4 caracteres dentro de <>
) aos códigos de varredura numéricos gerados pelo teclado, em seguida, no mapeamento de símbolos você diz como esse nome de chave atua. Então você precisa ter
<ESC> = 9;
<ESC2> = 180;
, em seguida, uma entrada xkb_symbols
de
key <ESC2> { [ Escape ] };
No entanto, no seu caso de dois teclados, você deve simplesmente configurar um layout diferente para cada teclado em vez de criar um compatível.
Use xinput -list
para obter os IDs de seus teclados e para cada execução setxkbmap -device id ...
e os outros argumentos especificando modelo, layout, variante e opção para esse teclado específico.
Tags keyboard-layout xkb x11