Я обнаружил в
Две клавиатуры и две языковые раскладки
, что можно назначить определенную раскладку для конкретного устройства клавиатуры.
Я хочу использовать клавиатуру в качестве чисто горячих клавиш / макросов (для команд функций GIMP, Photoshop или MangaStudio), создавая раскладку клавиатуры, состоящую из символов Unicode, помимо тех, которые присутствуют в моем другом клавиатуры, а затем с помощью Autokey для создания реальных вызовов макросов.
Не такой простой, как HidMacros в Windows, но все же управляемый (кроме того, Autokey имеет фильтры по именам окон, которые позволили бы сохранять единый макет ярлыков, независимо от используемого приложения).
Первым шагом была проверка поведения setxkbmap в моей системе.
Я приступил к проверке своего списка xinput, получив
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:400e id=10 [slave pointer (2)]
⎜ ↳ Wacom Intuos2 12x18 stylus id=11 [slave pointer (2)]
⎜ ↳ PixArt USB Optical Mouse id=14 [slave pointer (2)]
⎜ ↳ PixArt USB Optical Mouse id=15 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=17 [slave pointer (2)]
⎜ ↳ Wacom Intuos2 12x18 eraser id=19 [slave pointer (2)]
⎜ ↳ Wacom Intuos2 12x18 cursor id=20 [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)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ CNF7051 id=9 [slave keyboard (3)]
↳ CHESEN USB Keyboard id=12 [slave keyboard (3)]
↳ CHESEN USB Keyboard id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=16 [slave keyboard (3)]
↳ Toshiba input device id=18 [slave keyboard (3)]
↳ SIGMACHIP USB Keyboard id=22 [slave keyboard (3)]
Теперь, что я хотел бы сделать, это назначить другую компоновку двум «CHESEN USB Keyboard» - одна из них - это клавиши мультимедиа, которые я «физически исключил» при сборке, неважно - и оставил остальные клавиатуры с текущей раскладкой (на испанском языке, с немой тильдой).
В частности, беспроводной Logitech K400, который я использую в качестве основной клавиатуры / указателя (это очень удобно).
Как ни странно, я не вижу клавиатуру K400 в списке xinput, просто запись для объединяющего устройства Logitech, указанная в виде указателя.
Итак, в качестве теста я попытался вставить команду
~$ setxkbmap -device 12 -layout us
И, честно говоря, она работает как рекламируется ... но для K400.
Очевидно, у K400 нет собственной раскладки ... она просто использует раскладку последней использованной клавиатуры.
Итак, если я сейчас нажму клавишу на Чезене, Logitech внезапно переключится на американскую раскладку (с символом -, замененным на;), только чтобы вернуться к испанской раскладке, как только я нажму клавишу на сигмачипе. клавиатуры.
1118 Что здесь происходит? У меня есть способ исправить поведение K400?