Problema ao designar diferentes layouts para vários dispositivos de entrada simultâneos no Linux

0

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?

    
por Nervous Nerve 07.12.2014 / 11:38

1 resposta

0

Eu tive o mesmo problema com meu mouse Logitech g600.

Eu tive que fazer o xorg ver o mouse como um [teclado escravo] . aqui está como eu resolvi isso:

$ cat /etc/X11/xorg.conf.d/10-evdev.conf

Section "InputClass"
    Identifier "g600 hack"
    Driver     "evdev"

    MatchUSBID  "046d:c24a" # from lsusb
    MatchIsKeyboard "true" 

    Option "IgnoreRelativeAxes" "true"
    Option "IgnoreAbsoluteAxes" "true"
    
por 10.03.2015 / 11:49