Sua pergunta é mais sobre o remapeamento dos botões do mouse que os botões do teclado, certo? Eu acho que o ImWheel pode remapear vários dispositivos. Eu uso e tenho um writeup aqui: link
Eu sei que posso usar xinput
para remapear os botões do mouse em apenas um mouse, mas deixar os outros inalterados. Isso é muito útil. No meu caso, eu uso para conectar dois mouses ao meu desktop, um com a mão direita e outro com a mão esquerda.
Pode algo assim também ser feito quando há mais de um teclado conectado? Posso remapear chaves para outras teclas em um teclado e deixar outras inalteradas?
No meu caso específico, meu mouse parece estar registrado como um teclado adicional e seu 6º e 7º botão são traduzidos para pageup e pagedown , gostaria de vinculá-los para copiar / colar em vez disso - mas eu não quero afetar as teclas regulares pageup e pagedown no meu teclado padrão.
Veja como a saída de xinput
parece - o teclado em questão está com o id 10:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SteelSeries Diablo III Gaming Mouse id=9 [slave pointer (2)]
⎜ ↳ SteelSeries Diablo III Gaming Mouse id=11 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Creative Technology Ltd SB Tactic3D Rage USB id=8 [slave keyboard (3)]
↳ SteelSeries Diablo III Gaming Mouse id=10 [slave keyboard (3)]
↳ Logitech USB Keyboard id=13 [slave keyboard (3)]
↳ Logitech USB Keyboard id=14 [slave keyboard (3)]
↳ HP WMI hotkeys id=15 [slave keyboard (3)]
Isso não pode ser feito com xinput / xf86-input-evdev, você teria que fazer isso diretamente no evdev, confira o pacote evtest.
Tags keyboard input-devices xinput