Вопрос или проблема
Мой новый ноутбук оснащен новой клавишей copilot вместо обычной правой клавиши CTRL.
Как переназначить эту клавишу в современных Linux/Gnome/Wayland?
Клавиша не отправляет одиночный скан-код, а отправляет left-Shift + Windows key + F23 одновременно.
Я пытался изучить привязку клавиш в Linux, но не уверен, как они работают с тремя клавишами, нажатые одновременно. Кроме того, я не уверен, какую подсистему лучше всего модифицировать для этой цели в 2024 году, особенно с современной настройкой на базе Fedora 40, GNOME 46 и Wayland.
С помощью keyd я смог переназначить клавишу copilot. Вот соответствующая конфигурация.
f23+leftshift+leftmeta = overload(control, esc)
В моем случае с ноутбуком HP ZBook нажатие клавиши Copilot отправляет комбинацию left-meta
+ left-shift
очень быстро (в пределах 2 мс): нажимаете left-meta
, нажимаете left-shift
, отпускаете left-shift
, отпускаете left-meta
. Отпускание клавиши Copilot ничего не дает.
Я использовал kmonad для переназначения клавиши Copilot на залипающую right-ctrl
, которая, похоже, работает хорошо:
(defsrc
lmet
lsft
)
(deflayer base
;; ЛЕВАЯ_META нажата, это может быть из-за либо Copilot, либо обычного нажатия.
(around-next-timeout 2
;; Поменять на слой переназначения-copilot на 2 мс. Если это клавиша Copilot,
;; следующее LSHIFT приведет к нажатию RCTRL из этого слоя.
(layer-toggle remap-copilot)
;; В противном случае вести себя как залипающая клавиша.
;; Обратите внимание, что вы не можете поставить LMETA здесь в одиночку, так как around-next-timeout
;; *также* нажмет эту клавишу вместо нажатия.
(sticky-key 500 lmet))
;; LSHIFT здесь не используется
_
)
(deflayer remap-copilot
_ _ (sticky-key 500 rctl))
Ответ или решение
Как переопределить клавишу Copilot на правый CTRL в Linux (GNOME/Wayland)
С недавними новшествами в аппаратном обеспечении, такими как клавиша Copilot на новых ноутбуках, пользователи Linux сталкиваются с трудностями в перенастройке клавиш. Эта клавиша, заменяя обычную правую клавишу CTRL, отправляет комбинацию клавиш «левый Shift» + «Windows» + «F23» при нажатии. В этой статье мы подробно рассмотрим, как изменить назначение этой клавиши на правый CTRL в современном окружении Linux с использованием Fedora 40, GNOME 46 и Wayland.
Шаг 1: Понимание комбинации клавиш
Клавиша Copilot генерирует событие, которое подразумевает одновременное нажатие нескольких клавиш. В вашем случае, нажатие клавиши вызывает быстрое нажатие и отпускание «левого Meta» и «левого Shift» в течение 2 миллисекунд. Это определяет необходимость в решениях, способных обрабатывать многократные нажатия клавиш.
Шаг 2: Установка необходимого ПО
Для решения данной задачи мы можем воспользоваться несколькими инструментами, в частности, keyd и kmonad. Оба этих инструмента предоставляют возможность кастомизации и перенастройки клавиатурных действий в Linux.
Установка keyd
- Установите keyd:
sudo dnf install keyd
- Создайте файл конфигурации, например,
/etc/keyd/keyd.conf
, и добавьте следующую строку для переназначения клавиши Copilot на правый CTRL:f23+leftshift+leftmeta = overload(control, esc)
Установка kmonad
Если вам требуется более сложная конфигурация:
- Установите kmonad:
sudo dnf install kmonad
-
Создайте файл конфигурации, например,
~/my_kmonad_config.kbd
, с содержимым:(defsrc lmet lsft ) (deflayer base (around-next-timeout 2 (layer-toggle remap-copilot) (sticky-key 500 lmet)) _ ) (deflayer remap-copilot _ _ (sticky-key 500 rctl))
В данном конфиге
remap-copilot
активируется в случае, если была нажата клавиша Copilot, в противном случае стандартное поведение клавиатуры сохраняется.
Шаг 3: Запуск и тестирование
После настройки и сохранения конфигурационного файла:
-
Запустите keyd или kmonad в терминале:
keyd
kmonad ~/my_kmonad_config.kbd
-
Проверьте, функционирует ли переназначение клавиш. Нажмите клавишу Copilot и убедитесь, что она работает как правый CTRL.
Заключение
Переопределение клавиши Copilot на правый CTRL в Linux требует понимания обработки событий клавиатуры и использования специализированных инструментов. Вы можете выбрать между keyd и kmonad в зависимости от ваших потребностей. Этот процесс позволяет вам получить привычный функционал клавиатуры, несмотря на изменения в оборудовании.
Теперь, вооружившись этой информацией, вы сможете успешно перенастроить вашу клавиатуру и работать комфортно в любой среде.