Xmodmap может делать то, что вы просите, если вы не против взломать ваш ключ CapsLock .
Xmodmap может различать левую и правую клавиши Shift, поэтому мы можем сначала переназначить RightShift на ModeSwitch, чтобы получить наш путь:
xmodmap -e "keysym Shift_R = Mode_switch"
Основной синтаксис для изменения поведения ключа
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 по умолчанию (работает только на некоторых раскладках клавиатуры).
Так много для теории. На практике эти переназначения могут вести себя немного иначе при изменении комбинации Shift + Letter . Я не могу говорить за Kubuntu, но некоторые приложения Unity будут переопределять поведение, указанное Xmodmap в этих случаях.
Чтобы переконфигурировать каждый ключ, чтобы он принимал только правильный модификатор, я нашел самый надежный способ:
Чтобы заставить R принимать только RightShift, выполните следующую команду:
xmodmap r r R R
Чтобы заставить L принимать только LeftShift, выполните следующую команду:
xmodmap l L l l
Подсказки:
Чтобы сделать переназначения постоянными, создайте / отредактируйте скрипт оболочки в ~/.kde/Autostart/
, сделайте его исполняемым и сохраните в нем соответствующие команды.
Чтобы отменить все переназначения, просто выполните следующую команду:
setxkbmap