2

У меня есть две клавиатуры: старая PS /2 и USB. Я хочу, чтобы клавиатура usb имела раскладку us (или желательно, чтобы клавиатура usb следовала раскладке, выбранной в gnome), а клавиатура ps /2 имела собственную раскладку (ярлыки и другие вещи: D). Я пытался установить отдельные раскладки на каждой клавиатуре во время выполнения, используя setxkbmap -device 8 -layout ru (русская раскладка для тестирования), но это устанавливает раскладку на всех клавиатурах на русскую.

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

Редактировать: нашел часть ответа: когда вы указываете макет для устройства, вы должны включить все макеты, которые вы хотите, на все оборудование. Так что если я хочу русский на устройстве 2 и американский английский на 3, тогда мне нужно использовать «ru, us» при указании макета для устройства 2 и нас, ru для устройства 3. Как это

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

Мне все еще нужно получить это при запуске и сделать собственный макет. Помощь с этим будет высоко ценится.

1 ответ1

4

Вам нужно использовать

xinput --create-master SecondKeyboard

создать отдельную мастер-клавиатуру, а затем снова присоединить вторую клавиатуру к новому мастеру:

xinput --reattach "Идентификатор клавиатуры" "Основной идентификатор"

Вы используете идентификаторы из

xinput --list

Таким образом, клавиатуры являются отдельными и могут обрабатываться исключительно. Например, у вас есть два фокуса, вы можете писать в двух приложениях одновременно с двумя клавиатурами и устанавливать разные сочетания клавиш, указав разные основные идентификаторы в таких вещах, как setxkbmap.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .