Alterna entre o layout do teclado com base no evento de entrada

3

Eu tenho um francês e um teclado americano no meu computador. Eu estou usando wm incrível e defini tudo para que seja fácil para mim alternar entre o layout do teclado. Mas eu ainda tenho que fazer isso sozinho.

Teoricamente, deve ser possível para o computador entender de qual teclado o evento de entrada vem e usar o layout associado ao teclado. Eu olhei para cima, mas não encontrei uma boa resposta. É possível fazer isso?

Eu estava pensando que poderia escrever um pequeno código analisando o evento do teclado e fazer a troca, mas:

  • ele seria executado em paralelo com o manipulador de eventos para que houvesse um problema de simultaneidade (algo como this );
  • parece um jeito sujo de fazer isso e eu prefiro uma solução limpa.

Obrigado pela sua ajuda

    
por billx 16.04.2014 / 10:20

1 resposta

4

Você pode fazer isso configurando seus teclados separadamente. Por exemplo, uso o layout do inglês dos EUA no teclado do meu laptop e tenho um teclado USB Sun Type 6 com layout alemão e tenho o seguinte no meu /etc/X11/xorg.conf.d/10-evdev.conf :

# Default configuration for all keyboards not handled explicitly
Section "InputClass"
     Identifier "evdev keyboard catchall"
     MatchIsKeyboard "on"
     MatchDevicePath "/dev/input/event*"
     Driver "evdev"

     Option "XkbRules"   "evdev"
     Option "XkbModel"   "pc105"
     Option "XkbLayout"  "us(altgr-intl),de,ru"
     Option "XkbOptions" "lv3:menu_switch,caps:hyper,compose:ralt,grp:rctrl_rshift_toggle,terminate:ctrl_alt_bksp"
EndSection

# Match the external keyboard by USB ID
Section "InputClass"
    Identifier "Sun Type 6"
    MatchIsKeyboard "on"
    MatchUSBID "0430:0005"

    Driver "evdev"
    Option "XkbRules"   "evdev"
    Option "XkbModel"   "sun(type6)"
    Option "XkbLayout"  "de"
    Option "XkbOptions" "caps:hyper,compose:menu,terminalte:ctrl_alt_bksp"
EndSection
    
por 16.04.2014 / 10:33