Tenho uma máquina Linux na qual alterno com frequência entre um teclado padrão sem fio da Logitech com trackpad integrado e um "air mouse" com mini teclado integrado. O teclado tem um layout sueco e o mouse air tem um layout americano, e eu preferiria não ter que mudar o layout global em X toda vez que eu alternar.
Eu pesquisei bastante e encontrei várias discussões semelhantes, todas envolvendo setxkbmap -device <device> -layout <layout>
como uma solução, mas não importa como eu tente, esse comando sempre altera o layout de ambos os dispositivos.
Estou pensando que isso pode ter algo a ver com o fato de que, por alguma razão, ambos os dispositivos estão listados como 'ponteiro' em xinput -list
. Aqui, o dispositivo 9 é o teclado da Logitech, e o dispositivo 11 é a parte do teclado do mouse aéreo.
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:4032 id=9 [slave pointer (2)]
⎜ ↳ Usb Compliant device Usb Compliant device id=10 [slave pointer (2)]
⎜ ↳ Usb Compliant device Usb Compliant device id=11 [slave pointer (2)]
⎜ ↳ MCE IR Keyboard/Mouse (nuvoton-cir) id=13 [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)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Nuvoton w836x7hg Infrared Remote Transceiver id=12 [slave keyboard (3)]
Talvez não seja permitido definir o layout de um dispositivo de ponteiro e, assim, minhas tentativas de fazer isso padrão definem o layout mestre em vez disso? Não sei.
Eu tentei recolocar meus dispositivos no teclado mestre, com xinput reattach 11 3
, mas isso me dá uma mensagem de erro:
X Error of failed request: XI_BadDevice (invalid Device parameter)
Major opcode of failed request: 131 (XInputExtension)
Minor opcode of failed request: 43 ()
Device id in failed request: 0x17
Serial number of failed request: 18
Current serial number in output stream: 19
Neste ponto, estou sem ideias e sinto que esgotou todos os recursos da Internet, então, alguma ideia, alguém?