четверг, 10 октября 2013 г.

Переключение раскладки по Caps Lock

Привычка - очень сильная вещь. Привычка переключать раскладку клавиатуры по Ctrl+Shift оказалась чрезвычайно долгоиграющей.

Регулярно испытывал неудобства, например, в Eclipse где многие нужные хоткеи состоят из Ctrl+Shift+что-то. А поскольку данная комбинация перехватывается иксами (или кем там в DE), то хоткеи эти в программах не работают. Долго мучился из-за этого. Причём Caps Lock уже давно отключен за ненадобностью и вредностью - легко задеть его случайно.

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

В KDE изменить хоткей для переключения раскладки элементарно (олдфаги помнят в 3.х версии это был тот ещё квест). А вот в LXDE+Openbox оказалось чуточку сложнее. Решение ниже

Первые 10 решений в гугле выглядят примерно так:
setxkbmap -option grp:caps_toggle, us,ru
Это работает. Только и по Ctrl+Shift она продолжает переключаться, а следовательно хоткей не освободился для других программ.
Значит предварительно надо убрать все опции xkb:
setxkbmap -option ""
После этого у меня при загрузке стал включен Caps Lock, но задача практически решена т.к. с Ctrl+Shift переключалка ушла и на Caps Lock повисла.
Остаётся отключить режим Caps Lock:
xmodmap -e "remove lock = Caps_Lock"
Итого в итоге 3 строчки в скрипт автостарта LXDE:
xmodmap -e "remove lock = Caps_Lock"
setxkbmap -option ""
setxkbmap -option grp:caps_toggle, us,ru
Не самый красивый и не единственный метод, но работает.

Комментариев нет:

Отправить комментарий