Remap CapsLock для Escape и системы управления Wide

Можно ли переназначить систему ключей CapsLock так, что когда кнопка CapsLock нажата сама по себе, она действует как клавиша эвакуации, а при нажатии другой клавишей она действует как клавиша управления?

  • Клавиша 'd' в VNC Viewer сводит к минимуму все окна
  • Мертвые ключи, не работающие в приложениях Java Swing
  • Как X сопоставляет коды проверки ключа ядра с ключом?
  • Ключ от Unix User Level
  • tmux не соблюдает отключенный поток управления
  • Состояние ключа переключения Fn
  • Прочтите специальные клавиши в bash
  • Вино над ssh X11 вперед, проблема с клавиатурой
  • Как я могу переназначить кнопки мыши на клавиши-модификаторы?
  • Как отключить клавиатуру ноутбука при подключении USB-клавиатуры?
  • Функциональные клавиши громкости распознаются, но не меняют громкость
  • Пользовательский макет xkb, в котором один ключ создает две кодовые точки юникода
  • 5 Solutions collect form web for “Remap CapsLock для Escape и системы управления Wide”

    Я нашел очень хорошее решение, называемое xcape . Из README:

    xcape запускается как демон и перехватывает клавишу Control. Если клавиша Control нажата и отпущена сама по себе, она будет генерировать событие Escape key.

    Это имеет смысл, если вы переделали ключ Caps Lock в Control. Будущие версии этой программы могут сделать это сопоставление для вас, но на данный момент это то, что вам нужно сделать самостоятельно.

    Я сопоставил Caps to Escape, чтобы мне было удобнее печатать в Vim. Я использовал xmodmap и поместил это в ~/.Xmodmap .

     clear Lock keycode 0x42 = Escape 

    Для применения: xmodmap ~/.Xmodmap . Вы можете поместить это в файл, например ~ / .bash_profile (я вставляю в ~ / .xinitrc, потому что я не использую менеджер входа.

    Чтобы сопоставить CapsLock + [другой ключ], рассмотрите возможность использования xbindkeys .

    Единственное решение для переназначения ключей по всей системе – это написать простое правило udev. Он не будет зависеть от X, будет работать на любом терминале или приложении и переносится между любыми недавними установками Linux, просто копируя два файла.

    Вам нужно написать 2 файла: один, содержащий правило udev, которое сообщает ядру переназначить ключи и один, содержащий фактические сопоставления, которые вам нужны.

    Используя этот метод, я переделал всю свою клавиатуру, возможно, код полезен как вдохновение http://git.adirat.com/carpalx-keyboard

    Я натолкнулся на другой вопрос на AskUbuntu, который имел хороший ответ, но мне пришлось немного изменить его, чтобы работать на моих системах. https://askubuntu.com/questions/177824/remapping-caps-lock-to-control-and-escape-not-the-usual-way/750535#750535

    В комментариях Per Louis и Sergiy я придумал это решение, которое работает для меня на Ubuntu 16.04 (Xenial), и я приведу его со мной на другие Linux-системы, которые я использую.

    Я установил xcape и поместил следующие строки кода в мой .profile файл в моем домашнем каталоге.

     setxkbmap -option 'caps:ctrl_modifier' xcape -e '#66=Escape' 

    Сергий:

    Я использовал gnome-tweak-tool для сопоставления Caps Lock с Ctrl, поскольку в настройках системы на Ubuntu 14.04 нет раскладки клавиатуры. Тогда xcape -e 'Control_L = Escape' не сработал, но после использования xcape -d я обнаружил, что Caps Lock генерирует код 66 и перенаправляет его соответственно: xcape -e '# 66 = Escape'. – Сергей Белогодёв 4 сен 14 в 10:08

    Луи:

    В соответствии с этим сообщением в блоге это можно сделать только с помощью xcape: setxkbmap -option 'caps: ctrl_modifier' xcape -e 'Caps_Lock = Escape' setxkbmap -option 'caps: ctrl_modifier' xcape -e 'Caps_Lock = Escape; Control_L = Escape; Control_R = Escape '- Луи Симонау 4/15 в 10:06

    Я специально разработал для этого инструмент в C, который преодолел многие проблемы с помощью решения xcape / xmodmap :

    Linux и Unix - лучшая ОС в мире.