Будучи старым vim-истом давно уже слышал древние байки про замену местами клавиш Esc и CapsLock. Сам я до такого хардкора как-то не доходил, но вот решил попробовать.
Основная причина подобного извращения это то, что CapsLock используется сравнительно редко (ну или скажем честно — никогда), а расположен близко к домашней линии клавиш, что несомненно удобно с точки зрения перемещения пальцев при печати. В общем как говорится в старой рекламе «попробовав раз — ем и сейчас» — это оказалось действительно офигенно удобно — мизинец практически всегда расположен в районе CapsLock-а и таким образом нажатие Esc стало практически незаметным и машинальным, что для работы в Vim-е просто незаменимо.
Как же добиться такого счастья?
Собственно тут возможны варианты и казалось бы самым логичным было бы перемапить клавиши в самом Vim-е. Но в силу разных причин это является проблематичным, поэтому самым оптимальным вариантом является перемапливание клавиш средствами самой операционной системы.
Поэтому воспользуемся волшебной командой xmodmap примерно следующим образом:
$ xmodmap -e "remove Lock = Caps_Lock"
$ xmodmap -e "keycode 66 = Escape NoSymbol Escape"
Я всё-таки решил оставить оригинальный Esc на месте, т. к. временами руки сами машинально тянутся к нему, а вместо ожидаемого результата получаю какую-то ерунду, да и настройка эта применяется ко всем приложениям и оригинальный Esc в других программах мне пригодится.
Однако, чтобы эти значения не потерялись при перезагрузке нужно прописать их в файл ~/.xmodmap и соответственно засунуть автозагрузку этого файла в ~/.xinitrc.
$ cat ~/.xmodmap
remove Lock = Caps_Lock
keycode 66 = Escape NoSymbol Escape
$ cat ~/.xinitrc
...
[[ -f ~/.xmodmap ]] && xmodmap ~/.xmodmap
Блин — и конечно-же это нихрена не работает в GNOME. Я не стал ковырять системный GDM конфиг, чтобы заставить его грузить мой xmodmap и вообще не стал ковырять системные файлы — вместо этого сделал всё через программу gnome-tweak.
И только в таком варианте всё заработало как надо даже после перезагрузки. Ммда — похоже старые X-овые навыки становятся невостребованными.
Чё-то не удержался и разобрался таки как это работает. Собственно как и ожидалось это просто запись в гномовский реестр.
$ gsettings get org.gnome.desktop.input-sources xkb-options 2.4.2 8.1.3
['caps:escape']
Так что если кому лень ковыряться с gnome-tweak-ом то ожно запихнуть напрямую в реестр:
$ gsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
Итого результатом стало повышение удобства работы в текстовом редакторе Vim.
Комментарии