Сделайте клавишу copilot работать как правый CTRL снова под Linux.

Вопрос или проблема

Мой новый ноутбук оснащен новой клавишей 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
  1. Установите keyd:
    sudo dnf install keyd
  2. Создайте файл конфигурации, например, /etc/keyd/keyd.conf, и добавьте следующую строку для переназначения клавиши Copilot на правый CTRL:
    f23+leftshift+leftmeta = overload(control, esc)
Установка kmonad

Если вам требуется более сложная конфигурация:

  1. Установите kmonad:
    sudo dnf install kmonad
  2. Создайте файл конфигурации, например, ~/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 в зависимости от ваших потребностей. Этот процесс позволяет вам получить привычный функционал клавиатуры, несмотря на изменения в оборудовании.

Теперь, вооружившись этой информацией, вы сможете успешно перенастроить вашу клавиатуру и работать комфортно в любой среде.

Оцените материал
Добавить комментарий

Капча загружается...