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