XKB: atribua vários códigos de teclas para um comportamento (ESC)

1

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?

    
por Ben Farmer 28.04.2016 / 10:26

2 respostas

1

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;
    
por 28.04.2016 / 10:59
0

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.

    
por 29.04.2016 / 21:29