LINUX.ORG.RU

Альтернативное использование клавиши 'Caps Lock'


0

0

Возникло желание повесить на Caps_Lock Escape, так как при использовании vim'а такой расклад невозбранно доставляет. Но в то же время сохранить возможность капсить используя комбинацию Shift+Caps_Lock.

Пытался сею идею реализовать по средствам xmodmap, но желаемого результата не добился, либо только Escape на этой клавише:

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 66 = Caps_Lock"

а если так:

xmodmap -e "keysym Caps_Lock = Escape Caps_Lock"

то, Shift+Caps_Lock переключает капс, а Caps_Lock действует как Escape и переключает режим капса.

А вот как сделать, чтобы капс переключался только с шифтом, а без шифта действовал только как Escape пока для меня остается загадкой.


Не знаю, как можно сделать это через xmodmap, но поглядев в /usr/share/X11/xkb/symbols/capslock обнаружил там следующие строки:
partial hidden modifier_keys
xkb_symbols "swapescape" {
key <CAPS> { [ Escape ] };
key <ESC> { [ Caps_Lock ] };
};
То есть использование опции caps:swapescape меняет местами капс и ескейп. Почти то, что нужно :) При желании можно дописать в этот файлик и вариант с переключением капса по shift+caps, правда после обновления это изменение потеряется.

Laz ★★★★★
()
Ответ на: комментарий от Laz

Покопался в файле /usr/share/X11/xkb/symbols/capslock. И как выяснилось, секции в этом файле соответствуют значениям раздела "Клавиша Caps Lock" в параметрах раскладки которые расположены в Система-Параметры-Клавиатура.

Есть в этом файле следующая секция:

partial hidden modifier_keys
xkb_symbols "grouplock" {
replace key <CAPS> {[ISO_Next_Group, Caps_Lock]};
};

что в гуях соответствует галочке напротив слова CapsLock в разделе Key(s) to change layout, установка этой галочки активирует переключение раскладки клавишей Caps_Lock и при этом Shift+Caps переключают режим капса.

Я изменил эту секцию вот так:

partial hidden modifier_keys
xkb_symbols "grouplock" {
replace key <CAPS> {[Escape, Caps_Lock]};
};

Но желаемого эффекта это всё равно не принесло, т.к. опять одновременно с эскейпом включается капс, чего не наблюдалось при переключении раскладок капсом до изменения данной секции.

Возможное решение находится где-то здесь /usr/share/X11/xkb/, но для меня это всё выглядит как-то запутанно и не очевидно.

krizz
() автор топика
Ответ на: комментарий от krizz

Я дописал в symbols/capslock в описании опции swapescape к капслоку, на который вешается эскейп, ещё и капслок (каламбур какой-то получается..) Выглядеть стало вот так вот:
partial hidden modifier_keys
xkb_symbols "swapescape" {
key <CAPS> { [ Escape, Caps_Lock ] };
key <ESC> { [ Caps_Lock ] };
};
После этого включение опции caps:swapescape (либо в xorg.conf, либо где-то в hal, либо используя setxkbmap) делает именно то, что нужно.

Laz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.