Клавиатура-2
Nov. 23rd, 2007 06:56 pmПять лет назад я перешёл на десятипальцевый метод по-русски, а два года назад — и по-английски. Причём решил для упрощения перехода сделать английскую раскладку практически такой же, как и русская, которая в отличие от QWERTY (Sholes, ~1874), разрабатывалась для людей, а не для машин. Всё было замечательно, только в последнее время оказалось неудобно, что в моей английской раскладке буквы простые не совпадают с control-буквами. Так, команда поменять архивные атрибуты в Тотал Командере будет Ctrl+A A, но получается, что это на разных клавишах. А уж что говорить про vim с его экстремальной мнемоникой (например, v, shift-v и ctrl-v для выделения блоков). В общем, если переходить на полный отказ от подглядывания на клавиатуру, то гораздо удобнее иметь единую раскладку и для букв, и для управляющих символов.
Попробовал перенести все контролы на ту же раскладку, что и английские буквы. Оказалось, что это очень неудобно. Так как привычка нажимать Ctrl+C/X/V (clipboard), Ctrl+Z (undo), Ctrl+A (select all), Ctrl+S (save), Ctrl+F (find), Ctrl+D (duplicate line), Ctrl+W (close tab), Ctrl+Q (mark as read), Ctrl+B (branch view) уже в подкорке, и набираются эти комбинации абсолютно автоматически, особенно clipboard и undo. Интересно, что все важные (читай, используемые) сочетания находятся в левой части клавиатуры. И это неспроста: так сделано специально, чтобы освободить правую руку для управления мышью или стрелками и прочей навигацией.
Встала задача выбора (вернее, разработки) английской раскладки, которая должна удовлетворять следующим требованиям:
- Она должна быть оптимальной, т.е. более часто употребляемые буквы должны быть в основном ряду и на указательном и среднем пальцах, более редкие — в верхнем и нижнем, на мизинцах. (Как это научно обзывается, психо-физиологическая модель?) См., например, раскладки Dvorak (1936), Klausler, Arensito, Maltron, Fingerworks, Asset, Colemak, Capewell.
- Причём оптимальность нужна не только для английских текстов, но и для html и для текстов программ, в первую очередь, для Питона. Естественно, в настоящее время некоторая часть текста не набирается, а копируется, особенно в текстах программ, а также используется автодополнение. Учёт этих условий был бы очень сложен, но он не сильно (если вообще хоть как-то) повлиял бы на конечный результат.
- Основные управляющие комбинации должны остаться слева, самые основные — на своих местах.
- Желательно по-возможности сохранить vim-навигацию, т.е. буквы HJKL должны быть в правой части. Хотелось бы также расположить эти "стрелки" в обычной форме перевёрнутого "Т". И так как совершенно невозможно оставить такие редкие буквы в основном ряду, можно попробовать сдвинуть их в нижний ряд.
- Возможен учёт моих личных ощущений и предпочтений. До тайминга своей печатательной деятельности я ещё не дошёл (как некоторые товарищи), но субъективно, например, буквы в двух средних колонках (TGBYHN или ЕПИНРТ) труднее набирать, чем в остальных, даже в крайних (QAZP;/ или ЙФЯЗЖ,).
- Совпадение клавиш в новой раскладке и в существующих QWERTY и ЙЦУКЕНГ может также считаться небольшим преимуществом. Хотя с другой стороны, мне не нужно переучиваться с QWERTY.
В отличие от времён Шолеса и даже Дворака, у нас есть компьютер, который может кучу всего промоделировать и проэвалюировать. А также интернет, в котором завались сколько каких угодно текстов. И ещё опыт предыдущих разработчиков, с успехом использующих эволюционные алгоритмы. Всё это делает задачу разработки раскладки клавиатуры вполне решаемой в домашних условиях в довольно короткое время.
Эксперименты показыают, что нет такого понятия как "абсолютно лучшая клавиатура", потому что результаты довольно ощутимым образом зависят от целевых текстов (частотная модель языка) и от психо-физической модели. Т.е. главные исходные положения будут соблюдаться — буквы ETAOINS будут в среднем ряду, не будет частых сочетаний на одном пальце в разных рядах и т.п., но конкретное расположение разных незначительных букв может варьироваться.
В конце концов была получена такая раскладка:
qwfdm ypr:;[] QWFDM YPR<>{} asntg uehoi' ASNTG UEHOI" zxcvb /kjl. ZXCVB ?KJL, Цветовая кодировка: • Совпадает с QWERTY, • New positions, • New combinations, • VIM navigation, • VIM, exchanged (H − help, K − top), • Совпадает с ЙЦУКЕНГ.
Как уже говорилось, некоторые небольшие изменения практически никак не влияют на оптимальность раскладки. Например, можно поменять порядок F и D (и тогда он будет таким же, как в QWERTY, и практически на том же месте, только на ряд выше), M и G, Y и P, и т.п. На одних множествах слов один порядок чуть-чуть лучше, на других — другой. Но, думаю, можно остановиться и на таком расположении. По численным характеристикам данная раскладка превосходит QWERTY (кто б сомневался) и Dvorak, и приближается к Arensito, Capewell и Colemak, а на некоторых моделях английского даже является лучшей.
Осталась, конечно, ещё одна беда — косое расположение клавиш (придуманное для того, чтоб механические рычажки к молоточкам могли проходить между друг друга и занимали таким образом меньше места), но это уже хардверная проблема, увы.
Итак, опытная эксплуатация начинается! Дело за малым — выучить и применять.
Upd. 80 тысяч секунд, полёт нормальный. Обучение проходит успешно, даже удивляюсь всё время, что пальцы почти не приходится перемещать. Т.е. они как-бы сначала дёргаются, на старые QWUKENG места, а потом оказыватся, что не надо лишних телодвижений, буквы уже под пальцами. Для чего всё-таки приходится двигаться: для R и для D — довольно заметно, что они не на основном ряду, но это был осознанный выбор и действительно, когда дело доходит до G и U, то понимаешь, что лучше так. Кстати, очень хорошо заметно, что не приходится набирать буквы подряд одним пальцем, в полном соответствии с задумкой. Одно только слово запомнилось вредное — keep. Возвращаясь к D и R: любители основного ряда могут поменять G с D и U с R, результат тоже будет хороший. Ещё заметно, что L внизу, особенно в сочетании LO. Ну да, 26 букв — не 8 букв, что ж поделать. Но ведь и vim вписался в схему. Вы просто не представляете, сколько лишнего пальцы проходят на клавиатуре QWERTY! По сравнению с этим LO - это просто шутка.
2007.12.09. Опыт эксклуатации показывает, что LO на одной кнопке - плохо, и что THE тоже плохо набирается. Поэтому лучше, чтоб TH были на одной стороне. Опять много экспериментов, прогонов программы и всё такое, и в конце концов думаю, что вот такая клавиатура мне по душе.
Q W F Y G / P R : ; A S I E U D T H N O Z X C V B M K J L .
А самая лучшая ВООБЩЕ клавиатура такая:
V M F U K / D P C ; S N A E H L T I R O Q J X Y : G W B Z .
Она набирает 1001969 очень условных баллов. При этому моя новая - 923669, моя старая - 923002, QWERTY - 588899, Dvorak - 854169, Klausler2 - 927072, Asset - 931607, Arensito - 957399, Capewell - 959468, Colemak - 975687.