6

Я пытаюсь отключить Capslock и сделать следующие изменения:

Ctrl+Capslock => Capslock
Alt+Capslock => Escape (since my Escape key is broken)

Прямо сейчас я пытаюсь использовать Xmodmap.

У меня есть только следующее:

keycode 66 = NoSymbol Caps_Lock

Это отключает Capslock и отображает Shift+Capslock на Capslock, но мне нужно Ctrl+Capslock вместо Shift+Capslock.

Я понятия не имею, как сопоставить Alt+Capslock с клавишей Escape.

Я хочу уточнить, что мне не нужен ответ для использования Xmodmap, любой метод будет в порядке.

1 ответ1

2

Xmodmap не может сделать то, что вы просите, но он может приблизить вас.

Основной синтаксис для изменения поведения ключа

xmodmap -e "keycode  KEYCODE = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"
xmodmap -e "keysym KEYSYMBOL = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"

где

  • KEYSYMBOL2 срабатывает при нажатии клавиши во время нажатия Shift.
  • KEYSYMBOL3 срабатывает при нажатии клавиши во время нажатия переключателя режимов.
  • KEYSYMBOL4 срабатывает при нажатии клавиши при нажатии Shift + ModeSwitch.
  • KEYSYMBOL1 срабатывает при нажатии клавиши ни с одним из вышеперечисленных.
  • ModeSwitch - это AltGr по умолчанию (работает только на некоторых раскладках клавиатуры).

Мы не можем установить Ctrl или Alt в качестве клавиши ModeSwitch , поскольку ни одна клавиша не может служить двумя разными модификаторами.

Однако мы можем включить CapsLock в клавишу ModeSwitch :

xmodmap -e "keysym Caps_Lock = Mode_switch Mode_switch"

Чтобы переназначить CapsLock + Ctrl на клавишу CapsLock , выполните следующие команды.

xmodmap -e "keysym Control_L = Control_L Control_L Caps_Lock"
xmodmap -e "keysym Control_R = Control_R Control_R Caps_Lock"

Обратите внимание, что здесь CapsLock является клавишей-модификатором, поэтому сначала нужно нажать эту клавишу.

Мы не можем переназначить CapsLock + Alt или CapsLock + Super для Escape таким же образом, поскольку Alt и Super служат различным функциям, когда они нажимаются отдельно и используются в качестве клавиш-модификаторов.

Любой другой ключ будет работать нормально. Примеры:

  • Для CapsLock + ` (стандартная раскладка США) используйте

    xmodmap -e "keysym grave = grave asciitilde Escape"
    
  • Для CapsLock + Space используйте

    xmodmap -e "keysym space = KP_Space KP_Space Escape"
    

Подсказки:

  • Чтобы сделать переназначения постоянными, создайте / отредактируйте файл .gnomerc в вашей домашней папке и сохраните в нем соответствующие команды.

  • Чтобы отменить все переназначения, просто выполните

    setxkbmap
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .