Como mapear botões estendidos no mouse?

1

Estou tentando seguir este guia para usar um Logitech G600. Eu tenho (usando um computador windows) mapeado cada combinação de teclas no mouse para algo em um teclado normal. Eu configurei algumas regras em /etc/udev/hwdb.d/ para mapear os scancodes para alguns keycodes estendidos (found aqui ). Tudo isso funciona bem, exceto que o X não reconhece códigos de teclas maiores que 255. Então, a linha

 KEYBOARD_KEY_7001d=zenkakuhankaku

faz com que o botão do mouse cite o código de tecla 400 (via showkey) e o xev não reconhece a chave.

Eu também tentei executar xmodmap -pke | grep "= XF86" para mostrar os códigos de teclas com menos de 255 que devem estar disponíveis, mas não consigo descobrir como mapear o scancode para esses códigos de teclas (ou seja, KEYBOARD_KEY_7001d=XF86Explorer deixa a chave mapeada para " z ").

Existe uma maneira de mapear um scancode diretamente para um código numérico (no arquivo hwdb - não tenho desejo de mapear tudo o que emite a letra "a" para o XF86Calculator)?

Existe alguma outra maneira de mapear o código de varredura para um dos códigos XF86 não utilizados?

    
por William Everett 17.03.2015 / 23:22

1 resposta

0

Ok, então aqui está o que acabei fazendo. Eu puxei os nomes das chaves reais de /usr/include/linux/input.h. Há uma seção em que os nomes dos códigos de tecla são definidos:

#define KEY_RIGHTMETA           126
#define KEY_COMPOSE             127
#define KEY_STOP                128     /* AC Stop */
#define KEY_AGAIN               129
#define KEY_PROPS               130     /* AC Properties */

Eu usei o xxx minúsculo em KEY_xxx (assim, "compor", "parar", etc.) como os nomes das chaves. Eu escolhi coisas que pareciam não ser usadas em outro lugar (como KEY_LEFTCTRL).

Depois, como o artigo sugerido, usei xbindkeys -km para obter os números de códigos de chaves apropriados e usei xbindkeys para mapeá-los.

    
por 18.03.2015 / 03:05