Keyboard for Emacs Layout Research

August 2014 · 5 minute read

Кратко, причины и цели:

Итог работы может быть полезен таким же как я линуксоидам-емаксоидам, на остальных не расчитано. Но действуя такими же принципами ты можешь найти удобный вариант для себя. Стоит только начать…

Недели три как поменял себе шрифты в Emacs, сменив доставлявший меня последний десяток лет fixed 10x20 на Inconsolata. Три дня потом не мог спокойно кюшать программировать, начертанием буковок любовался. А на днях начал давно задуманное, сменил таки раскладку с QWERTY на более удобную. Ощущения поначалу странные, но то что оно удобнее пальцам ощутимо сходу. После обезьяньих прыжков с qwerty вероятно любая случайная раскладка будет удобней (разве что кроме TNWMLC). У меня это не первая попытка освоить альтернативу. Но прошлые разы не устраивали по тем или иным причинам. Осмысливая прошлые провалы я понял причины своего неприятия. Альтернативные раскладки стремятся быть лучшими во всём с претензией на оптимальность. Действительно, расположение рук и движения пальцев на них приятней, но вот отсутствие совместимости с привычными программами — для меня основная проблема перехода. Есть впрочем варианты, где это в некоторой степени учли — Colemak к примеру, оставив Ctl+XCV в привычных местах. Но я практически живу в GNU Emacs, где клавиши управления расположены совсем по-другому (к примеру для копирования-вставки это Alt+W, Ctl+Y). Биндинги Emacs это ведь, тяжёлое наследие клавиатуры Symbolics, но на ней хотя бы в управляющих клавишах недостатка не было. Colemak же в этом плане никак не помогает, он заточен под Wordstar-стиль, принятый в продуктах под Windows и в этом думаю, причина моей неудачи с прошлой попыткой перехода. Поэтому подойдя к задаче с другой стороны, продумал раскладку, которая будет не столько улучшать параметры эргономики (на дефолтных клавиатурах это в принципе слабодостижимо), сколько улучшит параметры управления привычными себе программами. Без претензий на универсальность. Для меня основные програмы — это Emacs и шелл, последний также с раскладкой от Emacs. Дополнительно ещё парочка простых редакторов вроде godit, клонов Emacs. В качестве браузера всё чаще возращаюсь к Firefox, которым с плагином оказалось удобно управлять также через имаксовые биндинги. Короче, привык я к Emacs и решения предлагаемые Colemak и подобными «универсальными» раскладками мне только мешают. В собственной раскладке Colemacs (немного привычный уже Colemak был взят за основу) разместил клавиши управления курсором и наиболее частыми режимами в на мой взгляд удобных местах. Управление курсором, расположенное в QWERTY на разных руках, перенёс под левую руку (AEPNBF теперь удобно управляются одной рукой при зажатой правой рукой управляющей клавише Ctl/Alt). Частые клавиши сохранения и переключения режимов XCS вынесены под правую руку. Популярность команд редактирования Emacs бралась по исследованию http://ergoemacs.org/emacs/command-frequency.html. Заодно уменьшил нагрузку на правую руку, т.к. она отвлекается на мышку. Погоняв результаты подбора на симуляторе carpalx остался удовлетворён полученным. Цифры верхнего ряда ушли за Shift, по умолчанию нажимаются спецсимволы — решение не для всех применений, но в моём случае под программирование на си-подобных языках так удобнее. А длинные комбинации чисел можно набирать на доп. клавиатуре. Выбор параметров по определению субъективен, требуются уточнения и правду выявит только эксперимент на себе. Поэтому осталось это счастье освоить, чем я и занялся сразу же. Три дня ушло на подбор раскладки и базовое освоение в процессе. Клавиши уже все запомнил, но пока моторная память не срабатывает, приходится задумываться над каждым нажатием (помогает старый способ освоения — печать с закрытыми глазами). Расчитываю за месяц набрать исходную скорость набора. Конечно QWERTY никуда не денется, т.к. хоть иногда, но бывает нужно чего-нибудь набирать на чужих клавиатурах, но по прошлому опыту — знание трёх раскладок не проблема. Без задержек во времена перехода с дописишных компьютеров на PC переключался между JCUKEN/QWERTY/ЙЦУКЕН.

keyboard image

Исследования по клавиатуре с настройками для X Window выложены на github, но это начало. Полагаю, понадобится не менее года на финальную выверку раскладки. После чего можно предлагать её знакомым емаксоидам. В планах: уточнение модели использования клавиатуры человеком, т.к. методики предлагаемые carpalx и прочими выглядят неполными. Также любопытно опробовать клавиатуры, где вопросы эргономики решены «аппаратно», сменой их расположения в пространстве и изменением формы, а не простым ремапом (я про Maltron, ErgoDox, Catboard, DataHand и подобные радикальные варианты).

В тему:

Простой хинт по оптимзации раскладки, если всё выше показалось слишком мудрёным путём. Сделай ремап CapsLockBackspace. Это очень разгрузит правый мизинец, на клавиатурах напрягаемый длинным переходом вправо-верх за клавишей удаления (btw в шелле есть удобная привязка Ctl+H для этой цели, но кроме шелла есть другие программы). Этот совет предлагают Colemak и Norman.

Дополнение. Сюда же в тему ссылки на используемые мной утилиты для ремапа клавиш:

Дополнение №2. Нашёл настраиваемую утилиту для использования модификаторов как одиночных клавиш: https://github.com/alols/xcape/, заменил ею space2ctl.