Вопрос или проблема
Клавиатура Microsoft Ergonomic Keyboard модель 2019 года (не старая модель 4000) генерирует несколько нажатий клавиш для новых клавиш. Хорошо известно, как перенастроить ползунок масштабирования старой версии, однако вопрос в том, как сделать это для новых клавиш. Правила udev позволяют указывать только один код сканирования для записи перенастройки, например KEYBOARD_KEY_0c022d=pageup
.
Вот вывод evtest
для клавиши Office:
Событие: время 1604142043.024827, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e0
Событие: время 1604142043.024827, тип 1 (EV_KEY), код 29 (KEY_LEFTCTRL), значение 1
Событие: время 1604142043.024827, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e1
Событие: время 1604142043.024827, тип 1 (EV_KEY), код 42 (KEY_LEFTSHIFT), значение 1
Событие: время 1604142043.024827, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e2
Событие: время 1604142043.024827, тип 1 (EV_KEY), код 56 (KEY_LEFTALT), значение 1
Событие: время 1604142043.024827, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e3
Событие: время 1604142043.024827, тип 1 (EV_KEY), код 125 (KEY_LEFTMETA), значение 1
А вот для клавиши Emoji:
Событие: время 1604142174.537667, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e0
Событие: время 1604142174.537667, тип 1 (EV_KEY), код 29 (KEY_LEFTCTRL), значение 1
Событие: время 1604142174.537667, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e1
Событие: время 1604142174.537667, тип 1 (EV_KEY), код 42 (KEY_LEFTSHIFT), значение 1
Событие: время 1604142174.537667, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e2
Событие: время 1604142174.537667, тип 1 (EV_KEY), код 56 (KEY_LEFTALT), значение 1
Событие: время 1604142174.537667, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 700e3
Событие: время 1604142174.537667, тип 1 (EV_KEY), код 125 (KEY_LEFTMETA), значение 1
Событие: время 1604142174.537667, -------------- SYN_REPORT ------------
Событие: время 1604142174.545449, тип 4 (EV_MSC), код 4 (MSC_SCAN), значение 7002c
Событие: время 1604142174.545449, тип 1 (EV_KEY), код 57 (KEY_SPACE), значение 1
Таким образом, ключ Office генерирует только нажатия модификаторов, а клавиша Emoji генерирует нажатия модификаторов и нажатие пробела примерно через 8 миллисекунд. На этой клавиатуре также есть другие новые пользовательские клавиши, которые генерируют серверные нажатия, однако клавиши Office и Emoji самые важные для перенастройки из-за их расположения.
Недавно я создал модуль ядра для перенастройки этих клавиш на Правый Meta
и Правый Meta+Пробел
. Вы можете найти его по адресу https://gitlab.com/arnekeller/microsoft-ergonomic-keyboard/. Для установки следуйте обычной процедуре для модулей вне дерева. (Пожалуйста, оставьте комментарий, если я должен описать это более подробно.)
Ответ или решение
Для переназначения клавиш «Office» и «Emoji» на клавиатуре Microsoft Ergonomic Keyboard 2019 года вам потребуется выполнить несколько шагов. В отличие от более старых моделей, таких как 4000, данная версия генерирует несколько нажатий клавиш для новых клавиш. Это создает дополнительные сложности для remapping, так как требуется довольно специфичная настройка.
Шаг 1: Анализ скан-кодов
Сначала необходимо понять, какие именно скан-коды генерируются нажатиями клавиш. Совместите вывод команды evtest
с клавишами, которые вы хотите переназначить:
- Клавиша Office генерирует набор модификаторов (CTRL, SHIFT, ALT, META), но не генерирует одиночный код.
- Клавиша Emoji также генерирует набор модификаторов и, дополнительно, добавляет нажатие пробела (KEY_SPACE) с небольшим временным интервалом.
Шаг 2: Использование udev
К сожалению, системы управления данными, такие как udev
, позволяют переназначать только один скан-код для каждой записи. Из-за многоуровневого характера генерации скан-кодов вам придется использовать более продвинутый метод.
Шаг 3: Создание модуля ядра
Вы можете попробовать создать модуль ядра для переназначения этих клавиш на желаемые значения. В вашем случае ключевыми становятся:
- Для клавиши Office: переназначение на
Right Meta
- Для клавиши Emoji: переназначение на
Right Meta + Space
Вы уже упомянули, что вы разработали такой модуль. Это отличный подход для решения вашей задачи. Вот ссылка на ваш проект: microsoft-ergonomic-keyboard.
Шаг 4: Установка модуля
Для установки модуля, выполните следующие действия:
-
Скачайте репозиторий с рабочего компьютера:
git clone https://gitlab.com/arnekeller/microsoft-ergonomic-keyboard.git
-
Перейдите в каталог с модулем:
cd microsoft-ergonomic-keyboard
-
Соберите модуль:
make
-
Установите модуль:
sudo make install
-
Загрузите модуль:
sudo modprobe название_вашего_модуля
Дополнительные проверки
После установки модуля проверьте, корректно ли работают переназначенные клавиши. Используйте evtest
для мониторинга состояний клавиш и убедитесь, что они отправляют ожидаемые события.
Заключение
Эта процедура может показаться сложной, но, следуя вышеописанным шагам, вы сможете переназначить клавиши на вашей клавиатуре Microsoft Ergonomic Keyboard 2019 года. В случае возникновения затруднений, вы можете оставить комментарий в вашем репозитории на GitLab для дальнейшей помощи. Успехов в переназначении клавиш!