Teclado separado para atalhos no linux (dois teclados, dois layouts)

2

Eu tenho dois teclados: um antigo ps / 2 e um usb. Eu quero que o teclado usb tenha o layout us (ou que o teclado usb tenha o layout escolhido no gnome) e o ps / 2 tenha um layout customizado (atalhos e outras coisas: D). Eu tentei definir layouts separados em cada teclado em tempo de execução usando setxkbmap -device 8 -layout ru (layout russo para teste), mas isso define o layout em todos os teclados para russo.

philippe@tnw:~$ xinput -list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MOSART Semi. Wireless Keyboard & Mouse    id=9    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=10   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=11   [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)]
    ↳ MOSART Semi. Wireless Keyboard & Mouse    id=8    [slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                        id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]

Editar: Encontrei a parte da resposta: Quando você especifica o layout de um dispositivo, precisa incluir todos os layouts desejados em todo o hardware. Então, se eu quiser russo no dispositivo 2 e Inglês dos EUA em 3, então eu preciso usar "ru, nós" quando especificando o layout para o dispositivo 2 e nós, ru para o dispositivo 3. Assim

setxkbmap -device 2 -layout ru,us
setxkbmap -device 3 -layout us,ru

Eu ainda preciso fazer isso na inicialização e criar um layout personalizado. Ajudar com isso seria muito apreciado.

    
por tehwalris 29.10.2011 / 20:36

1 resposta

3

Você precisa usar

xinput --create-master SecondKeyboard

para criar um teclado mestre separado e, em seguida, reconecte o segundo teclado ao novo mestre:

xinput --reattach "Keyboard Id" "Master Id"

Você usa os IDs de

xinput --list

Desta forma, os teclados são separados e podem ser tratados exclusivamente. Por exemplo. você tem dois focos, você pode escrever em dois aplicativos ao mesmo tempo com dois teclados e definir diferentes mapeamentos de teclas, especificando diferentes IDs mestres em coisas como setxkbmap.

    
por 21.09.2013 / 18:56