Dois teclados, dois layouts de idiomas

16

Quero conectar dois conjuntos de teclados ao meu computador. É possível definir cada um para um idioma específico. Para que não seja necessário alterar o idioma a cada vez.

Por exemplo:

  • teclado 1 tipos russo

  • teclado 2 tipos inglês

user126106
fonte

Respostas:

15

Usando xinpute setxkbmaputilitários, você pode definir no terminal para que cada teclado tenha um layout diferente.

Primeiro, usando o xinput -list | grep keycomando, você precisa encontrar o ID do dispositivo de cada teclado. Aqui está um exemplo (meu caso):

$ xinput -list | grep 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)]
     Video Bus                                 id=7    [slave  keyboard (3)]
     Power Button                              id=8    [slave  keyboard (3)]
     Sleep Button                              id=9    [slave  keyboard (3)]
     2.4GHz 2way RF Receiver                   id=10   [slave  keyboard (3)]
     HP Webcam                                 id=12   [slave  keyboard (3)]
     AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
     HP WMI hotkeys                            id=15   [slave  keyboard (3)]
       USB Keyboard                            id=16   [slave  keyboard (3)]
       USB Keyboard                            id=17   [slave  keyboard (3)]

E segundo, usando setxkbmap -device <key_ID> -layout <layout_name>, defina o layout que você deseja para cada teclado. Um exemplo (para meus teclados):

setxkbmap -device 3 -layout ro    #My master keyboard is set to Romanian layout
setxkbmap -device 10 -layout us   #The keyboard with id=10 is set to English (US) layout
setxkbmap -device 16 -layout ru   #The keyboard with id=16 is set to EFor Russian layout
Radu Rădeanu
fonte
Ótimo. Trabalho. Obrigado. Talvez uma pergunta separada. Mas existe alguma maneira de monitorá-los no Plasma Desktop com algum ícone mostrando o layout de cada teclado ?!
user126106
@MinimusHeximus É uma pergunta separada, e acho que é difícil fazer uma resposta simples em um comentário à sua pergunta. Portanto, use o botão de pergunta .
Radu Rădeanu
obrigado. Posso perguntar, mas para ser informativo: agora o ícone do idioma normal é completamente irresponsável no plasma. Aliás, uma solução em unidade é bem-vinda (que ainda não testei).
User126106
11
@MinimusHeximus Bem, esta solução deve funcionar em qualquer desktop Ubuntu . E eu testei no Unity.
Radu Rădeanu
3
Obrigado por esta resposta, que me inspirou a fazer uma pergunta relacionada: Como atribuir permanentemente um layout de teclado diferente a um teclado USB? Parece que vou precisar de um script de inicialização para isso. Primeira lista xinput | grep "Teclado USB" fornecerá IDs de dispositivo (diferentes a cada inicialização). Preciso de outro comando para cortar o primeiro número de ID e, em seguida, usá-lo aqui: setxkbmap -device <número> -layout <LAYOUT>
Sadi
6

Um pouco fora do tópico, mas se você usar adicionalmente o -variant opção, poderá digitar dvorak em um teclado e trabalhador ou qwerty ou qualquer outro layout no outro teclado.

setxkbmap -verbose -device 17 -layout us -variant dvorak

Programação em pares com esteróides!

Ronald Evers
fonte