Создаём свою «идеальную программерскую» раскладку или Недооценённый AltGr
*Примечание: чтобы в полной мере ощутить все преимущества новой «ка́стомной» раскладки, необходимо уверенно владеть десятипальцевым слепым вводом (иначе последующие действия не имеют никакого смысла).
Что здесь написано?
Осуждение QWERTY
Немножко об альтернативных раскладках
На чём печатаю Я
AltGr (правый Alt) и что с ним можно сделать
MSKLC: собираем раскладку
Шаг №1: Выбор базовой раскладки клавиатуры
Поскольку стоит цель разработать «идеальную» раскладку, то сначала необходимо позаботиться о том, как будут расположены символы на клавиатуре.
Немного отсебятины: Я, как и все, изучая десятипальцевый слепой ввод, печатал на всем знакомой QWERTY-раскладке. В процессе использования, испытывался лютый дискомфорт (возможно нас таких и не очень много): уставал левый указательный палец, правый безымянный и мизинец (даже несмотря на то, что P — далеко не самый частотный символ в английском языке). Также было замечено, что пальцы при печати сильно вытягиваются — как бы пытаются уйти подальше друг от друга.
Чтобы ответить на вопрос, почему так происходит, я создал Excel-файл, в котором наглядно показана нагрузка на каждый символ, и добавил таблицу частотности букв английского языка (результат на скрине).
Вот здесь как раз всё встаёт на свои места: T находится довольно далеко от основной позиции пальцев, плюсом буквосочетания AT/TA, TE/ET, ST/TS, DT, CT, NU/UN, NI/IN, NO, ON заставляют пальцы вытягиваться. Также я отметил главную неприятную особенность QWERTY, о которой конечно-же многие знают — это то, что основным по нагрузке является на домашний, а верхний ряд. Про перегрузку левой или правой руки ничего говорить не буду, так как на планете есть как правши, так и левши, но для левшей у меня плохие новости: если посмотреть на клавиатуру, то можно заметить, что снизу вверх клавиши смещаются ВЛЕВО, что удобно лишь правой руке.
Что по альтернативным раскладкам?
Начнём с того, что разные раскладки проектировались по-разному и преследовали разные цели: наиболее развёрнуто, научно и точно рассказано в этом посте: О вопросах сравнения и оптимизации клавиатурных раскладок / Хабр (habr.com)
Dvorak: все гласные влево, максимальное чередование и минимизация использования нижнего ряда любой ценой → повышение скорострельности.
Colemak/Workman: A влево, остальные гласные вправо, повышение эргономичности — расстояния, которые преодолевают пальцы при вводе текста, «Мы круче Dvorak’a!!!»
Capewell: нафиг чередования, даёшь эргономичность и идеальный межпальцевый баланс!
Carpalx: математические модели, системы штрафов, optimizing.
Minimak 4, 8, 12 keys: улучшаем QWERTY с минимальными усилиями!
ARENSITO: У вас есть Ergodox или Maltron? Тогда я к вам!!!
Лично я не смогу конкретно тебе порекомендовать одну, лучшую альтернативную раскладку, так как это дело очень индивидуальное, у всех по-разному развиты пальцы. К тому же в всех свои сильные и слабые стороны, а такое разнообразие раскладок даёт возможность сделать лучший выбор для себя самого. Но если уж совсем лень выбирать, можно обратить внимание на Comelak или Workman — они более универсальны.
Что бы там не говорили про то, что альтернативные раскладки нисколько не быстрее стандартной QWERTY, что на 99% правда, фактом является то, что люди переходящие на подобный раскладки идут на этот «трудный в освоении» шаг ради комфорта, а не скорости. Комфорт — это не пустой звук, я сам через это прошёл и очень доволен результатом, да в некоторых программах Ctrl+C и Ctrl+V приходится нажимать не как в QWERTY, но что мешает вводить комбинации двумя руками??? Верно, ничего не мешает.
К чему пришёл Я???
За основу я взял раскладку Dvorak, модифицированный Capewell’ом — Capewell-Dvorak, в котором символ L больше не нажимается правым мизинцем, что очень здорово. Я заметил, что клавишу N в QWERTY мне очень легко нажимается (вспоминаем как смещены символы в нижнем ряду) и там как раз поставили L, да и в принципе, раскладка вышла неплохая. Но, как вы поняли, и здесь есть маленький изьян, из-за которого пришлось немного откатиться к классическому Dvorak’у, а именно ZXCV, а точнее символ C (такое можно простить только Colemak/Workman и Carpalx’у, ибо гласные и K находятся справа, но не в этом случае)
Вследствие чего была произведена «маленькая» модификация, в результате которой я получил, то, что нужно. Действовал я чисто по ощущениям, для этого понадобилось время.
Шаг №2: Ставим всё необходимое на базу
Кто-то может возразить насчёт «программерской» клавиатуры, ибо уже есть Dvorak programmer. Да, он есть, но все спец-символы находятся в верхнем ряду. В то же время хочется нажимать все основные программерские символы в домашнем ряду, чем Dvorak programmer порадовать не может.
Я же предлагаю использовать AltGr (почти Ctrl+Alt, ибо AltGr+Del не работает как Ctrl+Alt+Del, то есть не работает) он же правый Alt, работает как Shift, точнее создаёт новый «чистый» слой клавиш, в который можно засунуть ещё кучу символов. Однако отмечу, что нужно научиться нажимать AltGr только правым мизинцем, тогда никаких проблем в его использовании не возникнет. Также я заметил, что почему-то на правый Alt стараются частотные символы не заводить, даже в домашний ряд, ограничиваясь диакритическими знаками, математическими знаками и греческим алфавитом. Скорее всего, это объясняется некоторой сложностью в использовании AltGr, а именно неправильное нажимание неправильным пальцем.
Теперь открываем блокнот и переписываем все спец-символы, чтобы не забыть: все скобки, кавычки, апостро́фы, звёздочки, амперса́нды, собачки, или даже диакритические знаки!
Агась, базовая раскладка есть, спец-символы не забыли, теперь можно приступать с сборке нашей супер-раскладки. Отрываем MSKLC (да-да, я Winдузятник) и вбиваем свои символы, не забывая всё проверять и тестировать. Перед сборкой очень рекомендую везде понажимать и посмотреть, какие функции содержит MSKLC, что такое Dead Key, как провести тест (там всё очень просто).
Жмём Shift и прописываем, что будет вводиться при зажатом Shift’е, большие буквы и стандартный спец-символы. Ещё можно предусмотреть спец-символы на месте точки и запятой (у меня это ! и =).
Теперь то, ради чего мы здесь собрались: AltGr!!! (не забудьте убрать галочку с Shift, иначе символы будут вводиться не с AltGr, а с AltGr+Shift, на которую (если это кому-то нужно) можно поставить цифры или даже шаблонные тексты)
Я расположил спец-символы следующим образом: слева — все виды скобок, справа — операторы и другие спец-символы. Самые частотные из них находятся в домашнем ряду, что упрощает их ввод. Вверху я расположил комбинируемые диакритические знаки «на все случаи жизни».
Ещё раз напомню, что правый Alt нажимается правым большим пальцем (да-да от так умеет, причём легко). Таким образом, остальные пальцы не сдвигаются с места, позволяя легко вводить спец-символы, почти как без него, тут нужно немного попрактиковаться.
Ура, вы расставили все клавиши так, как вам нужно, теперь осталось всё это добро собрать и установить на компьютер: открываем Project → Properties, будем свойства задавать
Задаём имя, описание (которое будет выскакивать при переключении раскладки), остальное по желанию.
После того как всё введено, жмём «Build DLL and Setup Package», после успешной установки перезагружаем ПК и радуемся новой установленной раскладке (старую можно удалить в настройках).
В итоге получается максимально комфортная раскладка, при кодинге в которой нужно делать минимальные пальцедвижения для ввода кода, скобок, операторов, тэгов и прочего (смотря на чём вы кодите)
Подытожим: для идеальной раскладки необходимо:
Идеальная базовая раскладка
Удобно расставленные спец-символы
Программа MSKLC
Много практики (если не печатаете на альтернативной раскладке)