Dois teclados em um computador. Quando escrevo com A quero um layout de teclado nos EUA, quando uso B, quero o sueco. Possível?

43

Eu tenho um laptop com o qual eu uso um teclado externo. Quando eu digito usando o teclado externo, eu quero usar um layout de teclado americano, já que esse é o tipo de teclado externo que eu tenho. Por outro lado, quando eu digito usando o teclado integrado, eu gostaria de usar um layout sueco.

Isso é possível? E como eu faria isso?

Estou perguntando aqui, pois acho que encontraremos a maior parte da expertise em Linux aqui.

    
por Deleted 26.11.2009 / 21:38

5 respostas

36

Primeiro, você precisa encontrar o ID do dispositivo do teclado para alterar:

$ xinput -list | grep -i key
⎣ 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)]
    ↳ LITEON Technology USB Keyboard            id=9    [slave  keyboard (3)]
    ↳ LITEON Technology USB Keyboard            id=10   [slave  keyboard (3)]

Em seguida, altere o layout usando o setxkbmap:

$ setxkbmap -device 9 dvorak

Algumas versões do setxkbmap precisam de um argumento '-layout':

$ setxkbmap -device 9 -layout dvorak
    
por 07.06.2011 / 15:41
8

Eu posso dizer positivamente que o que você quer fazer é de fato possível. Eu consegui o cenário especificado primeiro

sudo cat /dev/input/event(0,1,2..)

ao digitar em cada teclado para garantir que eles sejam reconhecidos como dispositivos separados. Então eu simplesmente apliquei tentativa e erro, experimentando com

setxkbmap -device (1-x) us .

Descobri que setxkbmap -device 1 us configurou ambos (todos) teclados, enquanto setxkbmap -device 6 us afetou apenas o secundário. É importante, talvez, que ambos estivessem conectados via PS / 2.

Isto, obviamente, não é garantido para trabalhar para você, e nem sequer classifica como uma resposta adequada, mas confirma que é possível. Eu não sei de acordo com qual esquema os teclados individuais são nomeados em /dev/input , mas tenho certeza que os nomes podem ser especificados no udev, tornando possível colocar o comando setxkbmap apropriado em /etc/rc.local ou similar .

    
por 28.11.2009 / 06:58
5

Pode ser possível, a julgar pelo argumento -device para setxkbmap:

       -device device
               Specifies the numeric device id of the input device to be
               updated with the new keyboard layout. If not specified, the
               core keyboard device of the X server is updated.

Naturalmente, no entanto, não tenho um segundo teclado para experimentá-lo no momento.

-Um usuário Dvorak

    
por 28.11.2009 / 04:45
5

Embora essa pergunta seja um pouco antiga, eu pensei em compartilhar minha solução, pois nenhuma das outras respostas abordou como fazer isso funcionar na inicialização.

Minha situação: Eu tenho um teclado Happy Hacking que se conecta via usb que tem chaves movidas (controle onde caps lock é, etc). Eu uso isso na maioria das vezes, mas às vezes eu gostaria de usar o teclado do laptop padrão ou outro teclado usb. Para esses teclados, criei um layout de teclado personalizado.

O truque é que o layout de teclado personalizado não deve ser aplicado ao teclado Happy Hacking.

Solução: Eu criei um arquivo de configuração do Xorg como tal:

$ cat /etc/X11/xorg.conf.d/30-keyboard.conf 
Section "InputClass"
        Identifier "Happily Hacked Keyboard"
        MatchDevicePath "/dev/input/event*"
        MatchIsKeyboard "on"
        Driver "evdev"

        Option "XkbLayout" "us"
        Option "XkbVariant" "hhk"
EndSection

Section "InputClass"
        Identifier "Happy Hacking Keyboard"
        MatchIsKeyboard "on"
        MatchVendor "Topre_Corporation"
        Driver "evdev"

        Option "XkbLayout" "us"
        Option "XkbVariant" "basic"
EndSection

A primeira parte basicamente diz para qualquer teclado padrão, aplique o layout nos com a variante personalizada. A segunda parte diz para o teclado hacker feliz, use o layout dos EUA com a variante básica.

Você pode combinar dispositivos com base em vários parâmetros: xorg doc

    
por 28.07.2015 / 23:31
0

Eu não acho que você pode fazer isso exatamente do jeito que você quer. Existem duas opções que eu conheço:

1) Você pode alternar um simples clique do mouse / pressionamento de tecla.

Com o Ubuntu / GNOME:

Clique do mouse

No Ubuntu / Gnome, desde que você tenha a configuração dos layouts de entrada, vá para um local vazio no painel, clique com o botão direito e clique em 'Adicionar ao painel'. Selecione 'Indicador de teclado' para adicionar isso ao painel. Isso deve inserir um pedacinho de texto indicando o layout do seu teclado e você pode clicar para mudar.

Atalho de teclado

Sistema - > Preferências - > Teclado - > Layouts - > Opções de layout

Existe uma opção "Chave (s) para alterar o layout". Você pode configurá-lo para Alt + Shift, o que não deve atrapalhar nenhum atalho de teclado normal.

Eu presumo que exista uma maneira do KDE de fazer isso também.

2) A outra alternativa é o link , mas não tenho certeza se isso está disponível para o sueco e pode não ser ser possível para linguagens que tenham construções semelhantes ao inglês.

    
por 27.11.2009 / 00:05