Две клавиатуры две языковые раскладки

16

Я хочу подключить два набора клавиатуры к моему компьютеру. Можно ли установить каждый для конкретного языка. Так что нет необходимости каждый раз менять язык.

Например:

  • клавиатура 1 тип русская

  • клавиатура 2 типа английский

нано - сливай меня
источник

Ответы:

15

Используя xinputи setxkbmapутилиты, вы можете установить с терминала, чтобы каждая клавиатура имела разную раскладку.

Во-первых, используя xinput -list | grep keyкоманду, вы должны найти идентификатор устройства каждой клавиатуры. Вот пример (мой случай):

$ 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)]

А во-вторых, используя setxkbmap -device <key_ID> -layout <layout_name>, установите раскладку, которую вы хотите для каждой клавиатуры. Пример (для моих клавиатур):

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
Раду Рэдяну
источник
Отлично. Работает. Благодарю. Возможно отдельный вопрос. Но есть ли способ контролировать их в Plasma Desktop с помощью некоторого значка, отображающего раскладку для каждой клавиатуры ?!
Нано - объединить меня
@MinimusHeximus Это отдельный вопрос, и я думаю, что сделать простой ответ в комментарии к вашему вопросу сложно. Поэтому, пожалуйста, используйте кнопку « Задать вопрос» .
Раду Рэдяну
Благодарю. Я могу спросить, но, чтобы быть информативным: теперь иконка нормального языка совершенно не имеет отношения к плазме. Кстати, решение в единстве приветствуется (которое я еще не проверял).
Нано - объединить меня
1
@MinimusHeximus Ну, это решение должно работать на любом рабочем столе Ubuntu . И я тестировал на Unity.
Раду Рэдяну
3
Спасибо за этот ответ, который вдохновил меня задать связанный с этим вопрос: как навсегда назначить другую раскладку клавиатуры для клавиатуры USB? Кажется, для этого мне понадобится скрипт запуска. Первый список xinput | grep "USB Keyboard" выдаст мне идентификаторы устройств (разные при каждом запуске). Мне нужна другая команда, чтобы вырезать первый идентификационный номер и затем использовать его здесь: setxkbmap -device <NUMBER> -layout <LAYOUT>
Sadi
6

Немного не по теме, но если вы дополнительно используете эту -variantопцию, вы можете набрать dvorak на одной клавиатуре и workman или qwerty или любую другую раскладку на другой клавиатуре.

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

Парное программирование на стероидах!

Рональд Эверс
источник