Клавиатура Ant-keyboard. Часть 1 — общий дизайн и разработка

в 9:59, , рубрики: Без рубрики

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработкаИдя по стопам Ibnteo, который собрал клавиатуру CatBoard, выкладываю на всеобщее обозрение свою задумку на счёт DIY-клавиатуры, дабы читатели оценило, и оставило свои отзывы / пожелания / предложения.
Идея заключается не только в создании самой клавиатуры, но и в вычислении идеальной для неё раскладки букв и символов, для обоих используемых мною языков.
Данная задумка находится в стадии шлифовки, и не отображает реально существующую клавиатуру. Паять начну тогда, когда решу что проект доведён до идеала. Посему не стесняйтесь критиковать, указывать на недочёты, да и просто выдвигать предложения и пожелания. К любому мнению прислушаюсь.

Содержание статьи:


Истоки

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

Также весьма любопытный комментарий оставил tonsky.

Про RSI (Туннельный синдром), который также является одной из основных причин ухода от стандарта, тоже много сказано здесь:

А что касается названия проекта, то первоистоки кроются в фамилии автора.


Предыдущий опыт

Ранее я писал уже о своём опыте создания нестандартных раскладок, а посему и начну статью освещением моих мыслей и опыте по поводу своих предыдущих раскладок:

В целом… они отвратительны. Вот общий список недостатков:

  • Первый недостаток, который бросается в глаза — слабое чередование рук (правая рука нагружена сильнее). Причём мало того что правая рука нагружена сильнее, так она ещё и постоянно смещается со стартовой позиции печати, в отличие от левой руки, которая лежит как влитая. Особенно заметны эти недостатки в англоязычном двораке. В дикторе-же, который создавался как аналог дворака, это было заметно в меньшей степени, что позволило ей просуществовать в изменённом виде на моей клавиатуре и по сей день.
  • Следующий недостаток — арифметические символы там расположены в неудобном месте, и в обеих раскладках расположены в разных местах. Хотя изначально я хотел расположить их в одних и тех-же местах в обеих раскладках, чтобы не путаться. Ибо путаница в расположении символов в стандартных раскладках была одной из причин ухода от стандарта.
  • Также твёрдый и мягкий знак в русской раскладке находятся в «закулисье». Со временем я понял насколько это было плохой идеей располагать их в тех местах.
  • Ну и в целом раскладки неоптимальны, хоть и выигрывают в некоторой степени у qwerty и йцукен.

Есть ещё несколько менее страшных недостатков, но думаю и так достаточно уже приведённых.
Также я оставил там комментарий по поводу «мозговзрывающего» расположения чисел на числовом ряде у оригинального дворака для программистов, позже я понял что был не прав. Но об этом чуть позже.


Идея создания

Идея создания собственной клавиатуры и вычисления идеальной раскладки для неё пришла из недр моей натуры перфекциониста, поскольку подходящих себе вариантов среди существующих раскладок (даже после серий модификаций) и клавиатур я не нашёл.

Хотя нет, вру, нашёл — это небезызвестная клавиатура ErgoDox. И её я бы с удовольствием приобрёл. Хоть и не лишена она недостатков в моём понимании:
Первый недостаток достаточно незначительный и субъективный: слишком много периферийных клавиш сгруппировано в пятом (самом нижнем ряду), что заставляет руку смещать со стартовой позиции печати, выгибать пальцы, и т.д.

Второй недостаток возможно выдуманный: у меня пальцы достаточно длинные, (8.5 см. указательный палец, 9.5 см. средний, и 8 и 6 см. на безымянный и мизинец. Но это так, если кто любопытствует.) посему, возможно мне будет несколько неудобно печатать на эргодоксе.

В любом случае, пока эргодокс я не щупал, чтобы убедиться в своих опасениях или наоборот развенчать их, посему утверждать, что всё настолько плохо, насколько я сказал выше, я пока не буду.

Но, так или иначе, есть у меня в голове идея создать свою клавиатуру, подходящую прежде всего мне. О ней дальше и пойдёт речь.

Так-то, идея моя чрезвычайно проста:

  • Как можно меньше клавиш, но не превращая клавиатуру в аккордную (чтобы не приходилось часто нажимать несколько клавиш).
  • Эргономика и удобство. Дабы не калечить руки, ибо RSI это не шутка, и хреново лечится.
  • Кнопки модификаторы (shift, ctrl, alt, fn) и системные кнопки (enter, backspace и проч.) смещены к большим пальцам, которые в стандарте не нагружены практически ничем, а вместо них нагружены наоборот мизинцы, самые слабые пальцы на руках.
  • Равномерно нагружены обе руки.
  • Максимальное чередование рук тоже является немаловажным фактором.
  • Оптимальное расположение клавиш, символов и букв. Дабы частоиспользуемые символы / буквы были расположены ближе к наиболее сильным пальцам. Но в то-же время чтобы не приходилось тянуться, выгибать руку или пальцы, для доступа к наиболее редкоиспользуемым.
  • Грамматические, арифметические и прочие символы находятся на одних и тех-же местах для обеих раскладок, дабы не путаться в символах при переключении раскладки.


Базовая раскладка клавиш

Проанализировав множество эргономичных и не очень аналогов, экспериментируя с базовым расположением клавиш, я пришёл к выводу что наиболее оптимальным и простым расположением клавиш для меня будет это:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Сразу скажу что базовое расположение клавиш я брал не «с потолка», а с зарисовок на листах бумаги, где я перерисовывал наиболее комфортное расположение клавиш для моих рук. Точно так-же, как это сделал philpirj, ссылку на статью которого я скинул в примерах клавиатур-аналогов.
Половинки находятся под таким углом опять-же из учётов специфики ширины моих плеч.

Иными словами как я взял это расположение клавиш: я максимально расслабил руки, и положил их на лист бумаги, представив что это клавиатура, и посмотрел под каким углом лягут руки. Сделал замеры угла. Затем сделал пометки того, как легли подушечки пальцев рук. Затем нарисовал примерное положение всех клавиш, и перенёс данные в компьютер с максимальным тщанием и осторожностью.

Ещё один момент стоит упомянуть, глядя на клавиши под мизинцы. Они смещены аж на целый ряд вниз. Это опять-же связано с длиной моих пальцев, и длина мизинца на моей руке заметно короче нежели длина остальных пальцев.

Проблемы мизинца

Глядя на эту раскладку на самом деле уже можно судить о некоей неоптимальности. Я имею ввиду то, что мизинец на обеих руках нагружен восемью кнопками, против четырёх для безымянного и среднего пальцев. Это столько-же, сколько на указательном. Да, там расположены наиболее редкоиспользуемые символы и буквы, но тем не менее, факт налицо.
Есть вариант создания дополнительного ряда снизу, но этот вариант предполагает чрезмерное выгибание пальцев вниз, и смещения руки со стартовой позиции, дабы нажать на клавиши в нижнем ряду. Тем не менее, этот вариант имеет право на жизнь, и возможно я в будущем поэкспериментирую с этим. Ibnteo уже экспериментирует.

Иной вариант решения проблемы заключается в удалени «лишних» 8 клавиш по бокам, а символы, расположенные там, набирать через alt+<клавиша>. Но русский язык, с его 33мя буквами в алфавите, вряд-ли будет счастлив такому исходу.

Был на самом деле и другой вариант расположения базовой раскладки, вот такой:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
И сразу видно что он хуже чем предыдущий: мизинец не только нагружен восемью кнопками, так ещё до кнопок, находящихся на «ушках» клавиатуры приходится тянуться, снимая руку со стартовой позиции печати, и выгибая её.

Проблемы большого пальца

Иной момент, который стоит затронуть заключается в расположении клавиш под большой палец:
Есть мнение, что до самых крайних пар клавиш будет сложно тянуться, особенно это касается той клавиши, что стоит чуть дальше.

Решений этой проблемы несколько.

Первое:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
То бишь банально сместить клавишу наверх, создавая таким образом пятиклавишный ряд. Решение интересное, но возникает вопрос выгибаемости большого пальца, да и вообще удобства сего метода.

Второе решение предложил suenot, заключается он в том, чтобы некоторые клавиши перекинуть в fn ряд, уменьшив таким образом количество кнопок с восьми, до шести. Но об fn ряде я намерен поговорить чуть позже.

Третье решение предложил ibnteo, заключается он в том, чтобы использовать универсальную квази-кнопку.
Суть метода: убрать все клавиши-модификаторы, и оставить лишь Quasi-L и Quasi-R.
Предложение поступило лишь недавно, и я пока не успел его обдумать, но в целом выглядит интересно.

Четвёртое решение поступило опять-же со стороны suenot.
Заключается идея в замене кнопок под большие пальцы джойстиками, либо сгруппированными кнопками. Так, как это представлено на картинке:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

UPD:
Пока дописывал статью в голову пришла ещё одна мысль, которая по факту и может быть решением этой проблемы:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
То бишь суть: сместить эти клавиши с больших пальцев обратно на мизинцы. И для того чтобы так сделать, мне придётся отойти от своей концепции менее нагруженных мизинцев.

Так, или иначе, эксперименты с расположением клавиш продолжаются.


Клавиатуры-аналоги

По ходу демонстрации базовой раскладки и различных её модификаций я хотел сделать краткий экскурс и сравнение между другими эргономичными клавиатурами, но в целом это всего-лишь даст лишний объём статье. Да и так понятно с первого взгляда чем отличается, а чем похожа моя клавиатура на своих аналогов. И сразу видно что самый ближний аналог — клавиатура ErgoDox. Почему, думаю понятно: скорее всего мы исходили из одинаковых критериев и представлений по поводу оптимальной клавиатуры.

Так, или иначе, если вам любопытно взглянуть на аналоги, и прочитать обзоры на них, то прошу вас проследовать по нижеуказанным ссылкам:


Железо

Возвращаюсь обратно к клавиатуре, и к её базовым компонентам.
Думаю многие заметили что в центре клавиатуры расположено нечто, круглой формы. Так вот — это трекбол. Предполагается вмонтировать в клавиатуру один из трекболов, дабы использовать его взамен мышки.
Полностью мышку он конечно не заменит, (особенно это касается например компьютерных игр) но об этом я хотел бы поговорить чуть позже.

Если вам любопытно взглянуть на подобия этих клавиатур с трекболами, то могу предоставить вам несколько картинок под спойлером.

Скрытый текст

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Выглядят они конечно технически некультурно, на мой взгляд. Но не стоит выдвигать заводских требований к самодельным устройствам.

Далее, свитчеры:
Свитчеры планируется использовать cherry-ml, по причине моей любви к низкопрофильным клавиатурам.
Но если этот вариант совсем не вариант, и вы можете подсказать идеи получше, то пожалуйста напишите об этом.
Также на самом деле как я погляжу ML свитчеры достаточно непопулярны, а это может намекать на том что они как-бы «неочень».

Плюс колпачки подыскать проблема, а посему мне придётся использовать клавиатуру-донора.
В качестве клавиатуры-донора я предусмотрел Cherry-G84-5200.
В любом случае утверждение выше может быть опять-же ошибочным, и автор статьи просто искал не в том месте не в то время, и колпачки под ML не миф, и их легко достать.

Очередная фишка касательно железа, заключается в «чашевидной» форме, как это сделано в кинезисе например:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Ещё один любопытный аспект в плане начинки железа заключается в сдвигаемых и трансформируемых рядах, как это сделано на геймпаде Razor Orbweaver. Логично предположить почему: у разных людей разная длина пальцев и размер кисти, посему в идеале нужно сделать смещаемые ряды, в том числе ряды под большие пальцы.
То-же самое касается и ширины плеч: у разных людей она разная. Посему логично было-бы сделать смещаемые половинки клавиатуры.

Продолжая тему железа, хочется также сказать что у нас есть идея вмонтировать переносную память на клавиатуру. То бишь если ты используешь клавиатуру в качестве переносной, то что мешает вмонтировать в неё флешку, и транспортировать какую-либо информацию вместе с ней?

Далее, раз уж заговорили о встроенной флешке, так почему-бы не встроить туда-же card reader и usb hub?
Да и за примерами таких клавиатур далеко бегать не надо:

Но эти две опции абсолютно необязательны, и всего-лишь являются прикольной фишкой, а не насущной необходимостью. Возможно я сделаю это, но это точно будет не в первом билде клавиатуры.

Закончу тему железа парой слов о контроллере:
Контроллер планируется использовать avr 162 mu, чтобы не изобретать велосипед, и использовать вариант, который уже работает у моего друга и коллеги.
Хотя не исключаю что буду использовать и другие контроллеры, это надо ещё будет посмотреть.


Расположение системных клавиш и клавиш-модификаторов

Расположение системных клавиш и клавиш-модификаторов такое:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Ранее я говорил про смещение этих кнопок к большим пальцам. Причины просты: излишне нагруженные мизинцы, и практически ненагруженные большие пальцы в стандартных клавиатурах.
Я считаю это неверным подходом. Посему и разгрузил несчастный мизинец, который и так является самым слабым пальцем руки, и нагрузил большой палец, который, по идее, является наоборот самым сильным.

Преимущества метода:

  • Теперь десятипальцевый метод печати действительно соответствует своему названию, и мы действительно употребляем все десять пальцев при печати.
  • Пользоваться клавишами-модификаторами теперь стало намного удобнее. И, при нажатии (к примеру) shift, не нужно смещать руки, и заставлять безымянные пальцы, пусть на короткое время, но печатать на восьми кнопках, вместо положенных ему 4-х.
  • Горячие клавиши теперь тоже доступнее, и «тролльские» хоткеи, которые заставляли руку тянуться через всю клавиатуру, теперь тоже стали доступнее. (Но касательно горячих клавиш, я на самом деле хотел остановиться и поговорить о них подробнее, чуть позже.

Также можно в качестве преимуществ данного метода процитировать комментарий suenot по поводу использования CatBoard:

«Капслок прибит, потому что клавиша бесполезная. но я могу набирать легко КАПСОМ с помощью шифта, при этом не теряя скорость, просто удерживая шифт большим пальцем. Большие пальцы работают отдельно и вовсе не мешают набирать остальным 8 пальцам текст. УПРАЖНЕНИЕ №8 теперь проходится с таким ощущением, что пользуешься читами.»

Казалось-бы всё идеально, и у смещённых к большим пальцам клавиш нет никаких недостатков, но… возникает вопрос — а как нажимать сочетания клавиш ctrl+shift или alt+shift например? Нажатием двух кнопок одним пальцем? Можно конечно и так, хоть и выглядит этот вариант невероятно костыльным.
Другой недостаток кроется в расположении клавиш escape и delete. Удобно ли будет их доставать в таком положении? Хотя если в эргодоксе аж 3 кнопки расположены подобным образом, то доставать их должно быть удобно.

Как исправить эти недостатки?
Ну… примеры решений я уже высказал чуть выше, но если оставить расположение клавиш так как есть, не меняя их на thumbpad'ы и прочее, то касательно сочетаний горячих клавиш у меня есть весьма интересное решение связанное с fn слоем. Но об этом чуть ниже, а пока я хотел-бы поговорить о расположении символов в своей раскладке.


Расположение символов для обоих языков

Прежде чем я начну рассказывать непосредственно о самих символах, я хотел-бы предоставить вам частотность употребления символов в русском и английском языках. Данная статистика употреблялась при вычислении раскладок для этой клавиатуры.

Статистика символов для английского языка

, 4385330
. 3781070
" 908360
— 900300
' 861540
; 262610
) 259980
( 255150
: 239880
! 221960
? 218300
/ 99270
[ 73330
] 73170
% 33900
$ 32420
| 30980
_ 29870
* 27530
= 23260
+ 23120
> 18340
< 13070
& 12280
` 11870
11190
^ 8110
# 4960
@ 3500
~ 2300
{ 1790
} 1480
Статистика символов для русского языка

, 888818
. 593655
— 350253
? 70078
! 49002
: 40238
« 39290
» 39221
… 34908
; 10686
) 9260
( 9020
" 7790
* 4782
] 3579
[ 3577
' 2641
“ 666
” 506
/ 487
% 221
№ 219
> 62
< 56
& 51
+ 39
_ 37
= 36
} 10
# 10
$ 7
| 5
^ 4
@ 4
` 1
~ 1

Источники статистики:
Для английского языка взята готовая статистика, предоставлявшаяся с программой вычисления раскладок (о которой позже).
Для русского языка статистика вычислялась на основе ёфицированных текстов объёмом примерно 100 мегабайт. (о ёфикации также расскажу отдельно чуть позже).


Знаки препинания: точка и запятая

В двораке и дикторе они расположены в верхнем ряду, на нижнем слое (то бишь не нужно нажимать shift, для доступа к ним).
Это оказалось весьма удобным, особенно в дикторе, ибо там они смещены ближе к указательному и среднему пальцу левой руки, которые так или иначе сильнее мизинца и безымянного пальца. Плюс в русском языке запятая используется чаще.

Про запятую вообще на самом деле отдельный разговор. Я пытался ещё начиная с предыдущих раскладок хоть как-то повлиять на эту проблему. Даже самизнаетекто писал в ководстве по поводу трагедии запятой.

Но в новой раскладке я решил отойти от концепции расположения точки с запятой в левой части клавиатуры, сверху.
Теперь они распологаются на нижнем ряду, чётко посередине клавиатуры. Таким образом получается что точка нажимается правой рукой, а запятая левой.
Причина, по которой я так поступил, кроется в частотности употребления точки и запятой, по сравнению с буквами.
И если брать статистику по буквам и символам, и отбросить временно все данные по всем символам и цифрам, кроме точки с запятой, и сравнить их с буквами, то получится что точка и запятая находятся примерно на 22-м и 23м месте для английского языка, то бишь они используются реже большинства букв, но чаще чем все остальные символы.

Таким образом, расположение точки и запятой в самом нижнем (наименее приоритетном) ряду видится мне довольно рациональным.

Но то для английского языка. А что-же для русского?
Для знающих русский и английский язык людей не секрет что запятая в русском языке используется гораздо чаще, чем в английском, и в этом можно убедиться, взглянув на частотность: 16-е место для запятой и 23-е место для точки.

Выходит что для русского языка этот символ употребляется гораздо чаще, чем добрая половина букв. И выходит что запятую и точку для русского языка нужно располагать в верхнем ряду (ряду среднего приоритета). Но поступать так пока я не намерен, поскольку в рамках этого эксперимента одним из критериев я выбрал одинаковое расположение грамматических и прочих символов для обеих раскладок. Посему расположение точки и запятой будет одинаковым для обоих языков:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

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

Кстати говоря!!! Учитывая то что запятая используется в русском языке гораздо чаще, то получается что и в стандартном йцукене имело смысл ставить запятую в нижнем слое, вместо точки. А точку наоборот убрать под shift. Но создатели раскладки йцукен для компьютеров явно не руководствовались частотой использования точки и запятой при создании раскладки. А то ведь глядишь и «трагедии запятой» можно было избежать таким нехитрым образом.


Прочие знаки препинания

Располагая остальные знаки препинания я уже меньше руководствовался частотой их употребления. Ибо, если располагать к примеру вопросительный и восклицательный знаки согласно их частоте, или ещё хуже — заставить программу сделать это, то получится в итоге что восклицательный знак будет находиться где-нибудь рядом с местоположением буквы икс ('X') (в qwerty раскладке), а вопросительный где-нибудь на месте бывшей буквы пи ('P'). Произойдёт так, ибо программа исходит из критериев частотности, а не критериев похожести символов или их назначением в человеческих языках.

Посему, остальные символы я располагал как бог на душу положит исходя из критериев удобства, плюс сгруппировывал по их предназначению.

Так, вопросительный и восклицательный знаки я расположил на местах цифр 1 и 2 в стандартных qwerty и йцукен раскладках.

Двоеточие и точку с запятой я расположил на втором слое клавиш, на которых расположены точка и запятая. То бишь двоеточие находится на втором слое клавиши с точкой, а точка с запятой на втором слое клавиши с запятой.

С последним кстати можно немного поэкспериментировать, и сравнить частотности вопросительных и восклицательных знаков с частотностями двоеточия и точки с запятой, и поменять их местами.
Но, глядя на статистику, можно сделать вывод, что их употребление примерно одинаково. (Небольшое отличие правда содержит русский язык. Там частота употребления точки с запятой значительно ниже чем употребление двоеточия и вопросительного и восклицательного знаков. А частота употребления вопросительного знака наоборот значительно выше.)
Ещё можно найти одну причину для замены восклицательного и вопросительного знаков на точку с запятой и двоеточие. Заключается в том, что таким образом будет удобнее набирать смайлики :).

Оставшиеся грамматические знаки, такие как апостроф и двойные кавычки, располагаются на месте цифр 3 и 4 в стандартных раскладках. Но для русской раскладки также добавлены символы, отсутствующие в английской раскладке. А именно: французские кавычки-ёлочки (« »). Добавил их в раскладку, ибо по факту эти кавычки — стандарт для русского языка.

Однако отличия от стандартного йцукена и qwerty заключаются ещё в том, что в русской раскладке убран нумерологический знак (№), а в английскую добавлен знак параграфа (§) и знак евро (€).


Арифметические символы

Арифметические символы, такие как '=', '+', '-', '*', '/', '%' и такие как скобочки всех четырёх видов "( )", "[ ]", "{ }", "< >" сгруппированы вместе.

Сделано это опять-же ради удобства, ибо и так понятно что предназначение у них одинаковое, так почему-бы не сгруппировать их?

Арифметические символы (=, +, -, *, /, %) находятся на клавишах цифр 5 6 7 8 9 0 стандартных qwerty и йцукен раскладок.

Скобочки находятся по обе стороны клавиатуры, по краям. Так, открывающие скобки, такие как '(', '[', '{', '<' находятся по левую сторону клавиатуры, на самых крайних верхних клавишах, а закрывающие ')', ']', '}', '>' по правую сторону клавиатуры, на самых крайних правых клавишах.

Для русского языка нет исключений по поводу расположения арифметических символов, но есть исключения по поводу скобок.

Так, скобочки вида "[ ]", "{ }", "< >" отсутствуют в раскладке. И вместо квадратных скобок в раскладку добавлены французские кавычки-ёлочки, о которых упоминалось ранее.

В целом, по арифметическим символам всё.


Прочие символы

Прочие символы, такие как: '&', '|', '^' сгруппированы и размещены в правой части клавиатуры. Причина группировки: их употребление в популярных языках программирования в качестве логических операторов, и не только. Они вынесены на нижний (не требующий зажатия клавиши shift) слой. На верхний слой тех-же клавиш вынесены знаки '', '_', '`'.

Указанные последними символы, такие как '' и '_', имеют несколько иное расположение для русского языка. Так, обратный слеш находится на нижнем слое, а символ подчёркивания на верхнем. Причина такого отличия от английской раскладки — количество букв русского алфавита, и моё желание вывести логические символы только на нижний уровень. Хотя последнее можно было чуть чуть поменять местами, повесить знак '^' на верхний слой со знаком '|', и тогда можно было-бы сделать полную симметрию обеих раскладок, по части тех символов, какие используют обе из них.

Оставшиеся символы, такие как '@', '§', '$', '€', '#', '~' расположены по левую сторону клавиатуры, на клавишах, зеркально-симметричных предыдущим клавишам.

В целом, если собрать всю вышеозначенную информацию о символах воедино в качестве итоговой картинки, получится это:

Для английского языка:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Для русского языка:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка


Цифры

Чуть ранее в статье я упомянул что раньше я считал несколько неестественным расположение цифр на цифровом ряде в порядке, который используется в двораке для программистов, либо в классическом двораке. То бишь:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

С первого взгляда действительно кажется расположение цифр «мозговзрывающим». Но по факту, здесь прослеживается логика:
Зрительно разделите ряд пополам, и взгляните на обе половинки по отдельности. Вы увидите что справа сгруппированы все чётные цифры, а слева все нечётные.
Единственное что нарушает порядок их расположения — цифра 9, которая почему-то расположена в центре, на кнопке под указательный палец.

У меня есть теория на сей счёт, почему цифра 9 расположена именно там:
Дело в том, что клавиатуру дворак изобрели в 1936-м году, и когда машинистки записывали дату, то она непременно начиналась с 19XX.

Вторая догадка:
Я не собираюсь утверждать, но есть мнение что «хитрый психологический трюк» с ценниками употребляли ещё в прошлом веке. Имеется ввиду стоимость на товар, вида $99.
Хитрость заключается в том что видеть двухзначную цену на какой-либо бирке психологически более комфортно, нежели трёхзначную, посему и «хитрили» таким образом маркетологи.

Учитывая эти два факта, было логично расположить цифру 9 в наиболее приоритетном месте, ибо она действительно была одной из самых частоупотребляемых в те времена.

Всё вышесказанное на самом деле может быть полным бредом и неправдой, но честно говоря у меня нет никаких иных догадок по поводу того, почему цифру 9 разместили в столь приоритетном месте. Если у вас есть, пожалуйста поделитесь в комментариях.

Так или иначе, я понял логичность хода расположения цифр таким образом, и чисто ради интереса также проверил и статистику употребления чисел.
Результат под спойлером:

Частотность чисел

0: 1691
1: 945
2: 856
3: 418
4: 200
5: 585
6: 126
7: 52
8: 114
9: 58

Учитывая данную частотность, сразу понимаешь логичность расположения чисел, в порядке от сильных пальцев к более слабым.
Но цифру 9 я таки переместил в самый край ряда. Почему? Да потому-что на дворе давно 20XX года, да и с ценниками я не балуюсь. А иных причин располагать девятку на приоритетном месте я не вижу.

Посему, в своей новой раскладке я расположил числа так:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Было непривычно по началу (естественно), но по ходу пользования я привык, и сейчас не ощущаю абсолютно никакого дискомфорта в наборе чисел.
Наоборот даже это более удобно нежели стандартное расположение чисел по их возрастанию, ибо 0 и 1 действительно употребляются чаще всего, и нажимать их слабыми пальцами рук действительно менее удобно. Тут естественно могут пойти споры что мол: «Как же так!!! Я годами набирал числа так, как они представлены на qwerty и йцукен раскладках, и ничего!!! Не ощущаю никаких неудобств и дискомфорта!!!» На что я отвечу чуть позже, когда я заведу речь об удобстве и скорости использования стандартных и нестандартных раскладок / клавиатур.

Также есть мнение что цифры стоит набирать чисто на нампаде. Что-ж, по факту да, это действительно может быть удобнее, особенно в моих раскладках, где цифры спрятаны под shift. Но удивляйтесь или нет — никогда не любил нампад, и не пользовался им.


Вычисление собственных раскладок

Ну вот мы и подошли к самому животрепещущему вопросу касательно этого проекта — к вычислению нестандартной раскладки специально для этой клавиатуры.

Критерии вычисления раскладки примерно следующие:

  • Максимальная частотность. То бишь — наиболее частоупотребляемые символы находятся ближе к самым сильным пальцам.
  • Максимальное чередование рук. Дабы избежать необходимости 3 и более буквы подряд печатать одной рукой. В идеале — каждая следующая буква печатается другой рукой. В вычисленных раскладках удалось добиться 70%-ного чередования рук.
  • Максимальный балланс между руками. Идеал — 50% нагрузки на обе руки. В нынешних раскладках удалось добиться приблизительно именно этой цифры, с отклонениями в полпроцента.


Программа вычисления

Если браться за какие-либо вычисления, особенно если считать надо много, то самым логическим способом будет переложить эти вычисления на плечи компьютеров. Не зря же они ещё в прошлом назывались Электронными Вычислительными Машинами, верно?
Да и слово «компьютер» с английского переводится как «вычислитель».

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

Но тут же возникает и другое гениальное озарение, помимо осознания прямого назначения компьютеров:
Я-ж не единственный в мире программист!!! И наверняка в мире нашёлся хотя-бы один такой-же программист, кому в голову пришла примерно такая-же идея: заставить «вычислителя» вычислять оптимальные раскладки для клавиатуры.

Таких программистов несколько, и первым (из известных) был некто Питер Клауслер. Он-то и написал первую программу, с помощью которой и создал свою первую раскладку. И если вам интересно, то вот она:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Подробнее останавливаться на истории не будем, да и на раскладке самой тоже. Кто хочет — пусть попробует её в действии. А более детальную информацию об экспериментах Клауслера думаю вы без труда найдёте.

Отвечу только на вопрос, который вероятно уже будоражит ваши умы:
«Зачем вычислять идеальную раскладку, если её уже вычислили до нас?»
Ответ прост: у меня другие предпочтения в расположении символов. Да и руки я хотел-бы нагрузить равномерно, отдав им равномерное количество символов.
А в целом, я считаю что вычисленная раскладка будет примерно похожей на ту, что я вам показал. Почему? Статистика частотности букв, с которой работал Клауслер и с которой будем работать мы — примерно одинаковая.

Но данная глава посвящена не истории, и не чужим раскладкам (о них позже), она посвящена выборе программы для вычисления раскладок.
И программа эта — keyboard layout optimizer, написанная Майклом Диккенсом. (Michael Dickens: mathematicalmulticore.wordpress.com/ )

В целом о самой программе я говорить не буду. Небольшая программа, написанная на языке C, призвана вычислять идеальные раскладки для клавиатур. Блаблабла, и так далее. Перейдём лучше непосредственно к вычислению:


Английский язык — вычисление раскладки

Параметры:

Программа написана так, что вычисляет расположение букв и символов по количеству штрафов. Чем меньше штрафов есть на клавише, тем более вероятно что там будет располагаться более частоупотребляемая буква или символ.
Также там есть понятие как чередуемость рук, работа пальцев, перемещение рук, приоритетность рядов ну и проч.

Более подробно вы можете узнать в readme этой программы.

В целом, таблица штрафных очков для английского языка у меня выглядит так:

50 40 30 20 30    30 20 30 40 50
30 20 10  0 10    10  0 10 20 30
   60 50 40          40 50 60

Данная таблица создана чисто для букв, не затрагивая символы, ибо символы мы уже расположили так, как нам удобно.

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

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

Ну и нижний ряд, на котором будут располагаться самые редкие буквы. Включая точку и запятую, которые, как мы уже выяснили — находятся как-раз среди самых редких символов.

Ну и последнее, на что следует обратить внимание: увеличение штрафов идёт не только из-за приоритетности ряда, но и из-за удалённости от указательного пальца, который я считаю самым сильным (среди тех пальцев, что непосредственно печатают).

Кроме штрафов у программы есть куча других параметров, но в рамках этой статьи я их пропущу.

Лирическое отступление

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

Так или иначе, экспериментируя с этим методом, я понял что лучше сконцентрировать основную работу на среднем ряду, увеличив шансы попадания туда более частых букв через увеличение стоимости более низжих по приоритетам рядов.
Также, какя писал выше, я переместил точку сверху вниз, ибо смекнул что это один из самых нечастых символов. (что на самом деле не относится к русскому языку, где мы увидели что та-же запятая — в первой половине самых употребляемых символов, и это включая буквы)

Если кому интересно, по таким критериям я вычислял раньше:

40 30 20 10          10 20 30 40
30 20 10  0 10    10  0 10 20 30
   40 30 20 30    30 20 30 40

Результатом таких параметров стала английская раскладка, на которой я пишу сейчас (и которая скоро отойдёт в историю ибо пусть даже в принципе она не плоха, но таки я понял что уж лучше сделать так, чтобы руки как можно меньше перемещались по рядам, и решил сконцентрировать всю ОГНЕВУЮ МОЩЬ на среднем ряду. Также понял что точки с запятой лучше сместить вниз, о чём я уже неоднократно говорил.

А для русского я оставил модернизированный диктор, ибо программа, написанная Диккенсом, не предоставляла гибкости работы с unicode-символами, да и статистики ёфицированных текстов у меня в то время не было под рукой.

Непосредственно вычисление:

Итак!!! Базовые параметры вбиты, программа откомпилирована и запущена. Машина загудела, задымилась, и начала вычислять раскладку.
Уходим пить чай, и возвращаемся примерно через 6 часов. (По правде сказать на самом деле можно было так долго и не ждать, ибо параметры я вбил наиэлементарнейшие, и программа нашла идеальную раскладку меньше чем за 5 минут. Но я решил ей дать время «подумать», и отключил только когда был стопроцентно уверен что раскладка не поменяется.)

Итак, результат:

B F D L M    J U O P K
C S T N R    I A E H G
  X V W        Y Q Z

Полный результат

Hands: 49% 50%
Fingers: 5.0% 9.0% 14% 22% 0.00% 0.00% 20% 20% 7.0% 3.0%

 B  F  D  L  M    J  U  O  P  K
 C  S  T  N  R    I  A  E  H  G
    X  V  W          Y  Q   Z
 b  f  d  l  m    j  u  o  p  k
 c  s  t  n  r    i  a  e  h  g
    x  v  w          y  q   z
Fitness:       72987340
Distance:      57757290
Finger work:   0
Inward rolls:  6.66%
Outward rolls: 1.95%
Same hand:     30.02%
Same finger:   2.51%
Row change:    10.38%
Home jump:     0.66%
Ring jump:     1.63%
To center:     6.81%
To outside:    0.00%

Что-ж, раскладка готова. Как проверить её эффективность?
Не мудрствуя лукаво, я придумал такой способ:
Берём статистику букв, по которой работала программа:

Скрытый текст

  66596020 //это пробел
e 38971520
t 29466790
a 26035020
o 24106500
i 23572230
n 22356420
s 21332390
r 19201760
h 17015720
l 13065700
d 12335570
c 9523460
u 8926290
m 8124820
f 7010750
g 6586340
p 6255080
w 6099490
y 6010040
b 4921900
v 3396020
k 2363610
x 641980
j 459570
q 362340
z 283710

И делаем некое подобие «шкалы частотности». От частоты символа зависит положение на цветовом спектре, где более редкие буквы более «ультрафиолетовей» остальных:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

На основе неё делаем частотную схему:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Можно идти по другому пути, и сделать шкалу частотности по группам букв:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

На основе которой делаем другую схему:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

После создания наглядных схем сразу видем закономерности:

  • Самые частые буквы английского алфавита ('E', 'T') находятся на средних пальцах, хотя я их ожидал увидеть не иначе чем на указательных.
  • Усиление среднего ряда в принципе достигнуто, хотя я вижу забегания на верхний ряд таких букв как 'O' и 'L'. А они как мы видим — достаточно популярные буквы. Но менять их местами с 'S' и 'H' менее рационально, как мне кажется, хотя на счёт 'O' и 'H' я бы поспорил. В любом случае, после полевых испытаний уже будет ясно что к чему.
  • Ну и на нижнем ряду, как мы и ожидали, сконцентрированы самые непопулярные буквы.

В целом, по английской раскладке всё.


Русский язык — вычисление раскладки

Прежде чем говорить непосредственно о вычислении раскладки для русского языка, я хочу сделать важную ремарку:
В статистике символов использовались тексты, содержащие букву 'ё'. Для меня это важный критерий, ибо я считаю что букву 'ё' нужно употреблять ни смотря ни на что. Почему? Причина проста — я противник превращения русского языка в одно из подобий некоторых европейских языков, где разговорный язык и язык письменный — «две большие разницы», как говорят одесситы (или принято считать что они так говорят). И вместо того, чтобы учить один язык, мы учим два.
То бишь, иными словами — я ЗА то чтобы слова читались так, как они пишутся. Отсутствие буквы ё противоречит этому правилу.

Да, в русском языке так или иначе есть слова которые пишутся не так как читаются, например слово «что». Но в целом — ситуация значительно лучше чем в английском и немецком (к примеру) языках. Посему я стремлюсь сохранить эту тенденцию.

А то что знаменитый самизнаетекто писал что две точки сверху буквы ухудшают читабельность... Ну… Я даже не знаю как комментировать это… Это попросту бред.
Да, понимаю, что людям, всю жизнь читавшим текст без буквы ё будет первое время непривычно читать ёфицированный текст. Но это-же не изучение с нуля нового алфавита? И человек привыкнет, и после того когда 10 раз повстречает букву ё (условно говоря), на 11й будет читать уже без запинок.
Думаю эту статью можно использовать в качестве примера такого текста. И если вы прочли статью от начала и до сего момента, пожалуйста отпишитесь в комментариях по поводу запинаний от наличия в тексте буквы 'ё'.

В целом, суммарно использовано примерно 100 мегабайт ёфицированных текстов. Искренне надеюсь что этого было достаточно, чтобы просчитать достаточно прозрачную статистику.

Непосредственно вычисление:

Критерии штрафных очков для русского языка примерно похожи на критерии штрафных очков для английского языка:

60 50 40 30 20 30    30 20 30 40 50 60
40 30 20 10  0 10    10  0 10 20 30 40
80 70 60 50 40          40 50 60 70

Тут так-же использован принцип сильной середины, также использован принцип от указательного к мизинцу. Нижний ряд — самый слабый.

Результаты вычислений:

Ж Г Д П Р М    Ь У Я Ы Х Ю
Й В С Т Н Л    И О Е А К З
Щ Ц Ш Б Ч        Ъ Э Ё Ф 

Полный результат

Hands: 49% 50%
Fingers: 9.0% 9.0% 11% 21% 0.00% 0.00% 23% 10% 10% 7.0% 

Ж  Г  Д  П  Р  М    Ь  У  Я  Ы  Х  Ю
Й  В  С  Т  Н  Л    И  О  Е  А  К  З
Щ  Ц  Ш  Б  Ч          Ъ  Э  Ё  Ф  
ж  г  д  п  р  м    ь  у  я  ы  х  ю
й  в  с  т  н  л    и  о  е  а  к  з
щ  ц  ш  б  ч          ъ  э  ё  ф  

Fitness:       10147500
Distance:      8337690
Finger work:   71375
Inward rolls:  5.29%
Outward rolls: 2.13%
Same hand:     23.85%
Same finger:   1.28%
Row change:    8.48%
Home jump:     0.44%
Ring jump:     1.39%
To center:     4.92%
To outside:    0.00%

После того как мы вычислили раскладку, делаем всё как и в прошлый раз: берём статистику, по которым работала программа, и делаем из неё наглядные схемы частотностей:

Частотность букв

 	7521823 //это тоже пробел
о	4494892
а	3248635
е	3186253
и	2783308
н	2687370
т	2480068
с	2153053
л	1992066
р	1855584
в	1779347
к	1384333
м	1300210
д	1225529
у	1144930
п	1135757
я	849268
ы	774398
ь	763829
г	711041
з	690934
б	686311
ч	586511
й	463387
ж	414047
х	366672
ш	335618
ю	242049
ё	204997
ц	161017
щ	144430
э	139543
ф	72755
ъ	11251

«Частотный спектр»:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Частотная таблица:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Схема, основанная на «спектре частот»:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Схема, основанная на «группах частот»:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Что-ж я могу сказать глядя на эти схемы?
Сразу видно что принцип «сильной середины» тут действует на полную катушку. Также как и принцип слабого третьего ряда.
Самые частые буквы сгруппированы на правой руке, что однако не значит что руки будут печатать неравномерное количество символов.

Если программа не врёт, то руки на самом деле идеально сбаллансированы, и на каждую приходится ровно 50% всей работы.
А также можно судить что чередуемость рук лучше, по сравнению с английской раскладкой: 23% против 30%.
Да и пальцы тоже чаще чередуются.

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

Кстати!!! Что любопытно — параметр fitness заметно ниже чем в английской раскладке.

Напоследок следует ещё раз отметить что программе на группировку схожих символов плевать, и она их располагает согласно частотности. Именно поэтому буквы 'Ш' и 'Щ' находятся хоть и близко, но не рядом друг с другом.

Второй вариант раскладки:

Помните я что-то говорил про чатоту употребления запятой и точки в русском языке? Что запятая используется чаще чем половина букв? (Если конечно статистика не врёт.)
Так почему-бы не попробовать вычислить ещё одну раскладку, но где точка и запятая таки смещены в верхний ряд, где они и должны быть в русской раскладке согласно статистике.

Итак, параметры частот букв те-же самые что и в прошлый раз, посему выкладываю уже готовые раскладки.

Оговорю только параметры штрафов:

60 50 40 30 20          20 30 40 50 60
40 30 20 10  0 10    10  0 10 20 30 40
80 70 60 50 40 50    50 40 50 60 70

То бишь ничего примечательного. Две клавиши смещены вниз, их штравы увеличены на 20 (с 30 до 50-ти очков). Так как они теперь находятся на самом нижнем, наименее приоритетном ряду.

Результат вычисления:

Ж Г Д П Р        У Я Ы Х Ю
Ч В С Т Н Л    И О Е А К З
Щ Ц Ш Б М Й    Ъ Ь Э Ё Ф
Полный результат

Hands: 49% 50%
Fingers: 9.0% 9.0% 11% 21% 0.00% 0.00% 23% 10% 10% 7.0% 

Ж Г Д П Р        У Я Ы Х Ю
Ч В С Т Н Л    И О Е А К З
Щ Ц Ш Б М Й    Ъ Ь Э Ё Ф
ж г д п р        у я ы х ю
ч в с т н л    и о е а к з
щ ц ш б м й    ъ ь э ё ф

Fitness:       10438645
Distance:      8591540
Finger work:   120655
Inward rolls:  5.21%
Outward rolls: 2.19%
Same hand:     23.85%
Same finger:   1.17%
Row change:    8.16%
Home jump:     0.60%
Ring jump:     1.77%
To center:     4.39%
To outside:    0.00%

Схема, основанная на «спектре частот»:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Схема, основанная на «группах частот»:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Сразу бросается в глаза что варианты похожи друг на друга. Многие буквы находятся в том-же самом месте.
В целом вариант повторяет предыдущий, однако весьма интересное место для себя нашли буквы 'М и 'Ь'.

Заключение:

В принципе на этом с вычислением раскладок у меня всё. И похоже что касательно раскладки для русского языка, я предпочту остаться на первом варианте. То бишь пойду в ущерб частоты употребления запятой и точки, в угоду смежному расположению символов для обоих языков.


Финальное представление раскладок

Учитывая то, что мы вычислили и расположили все минимально-необходимые символы на наших раскладках, самое время представить окончательный вариант публике:

Раскладка для английского языка

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Раскладка для русского языка

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка


Горячие клавиши

Ни для кого не секрет что горячие клавиши весьма сильно облегчают работу, а также увеличивают производительность. Посему они должны быть удобными и расположенными в удобных местах.

control-слой

Все мы привыкли к стандартным горячим клавишам у стандартного qwerty на стандартной же клавиатуре. И в принципе, в подавляющем большинстве случаев расположение хоткеев на стандартной клавиатуре выбрано весьма удачно: большинство самых популярных из них набираются одной рукой.

Метод весьма удачный, а посему я заимствую его для своей клавиатуры.

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

Давайте ещё раз взглянем на расположение клавиш на моей новой, недавно-вычисленной раскладке:

Скрытый текст

B F D L M    J U O P K
C S T N R    I A E H G
  X V W        Y Q Z

И проанализируем местоположение горячих клавиш.
Сразу видно что самые популярные горячие клавиши, такие как undo(ctrl+z) и redo(ctrl+y) находятся в неудачном месте, и придётся задействовать две руки, чтобы активировать их.
В то-же время cut (ctrl+x), copy (ctrl+c) и paste (ctrl+v) находятся в наиболее удобном месте, близко к тому месту, где они находятся и в qwerty.

Касательно остальных наиболее популярных горячих клавиш, таких как save(ctrl+s) find(ctrl+f), dublicate(ctrl+d), open new tab(ctrl+t) и close tab(ctrl+w), то они находятся опять-же в наиболее удачном месте, в наиболее удачной половине клавиатуры.

В отличие от select all(ctrl+a), quit(ctrl+q), и прочих менее популярных горячих клавиш.

Что-ж, у меня есть в голове решение проблемы по поводу такого расброса хоткеев, и оно гениально по своей простоте:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Собственно так это решение выглядит «во плоти»:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Иной вариант:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Так как чуть выше я нахваливал расположение горячих клавиш в раскладке qwerty (Причём все к ним привыкли, я в том числе. И есть стопроцентная гарантия что они будут поддерживаться всеми приложениями), то вот вам qwerty вариант control-слоя горячих клавиш:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Всё круто, кроме одного момента: undo(ctrl+y) находится на правой половинке клавиатуры.

В принципе, по ходу работы с различными приложениями я понял простую истину на счёт хоткеев: не буквами едиными сыты приложения различного рода, и зачастую встречаются хоткеи а-ля ctrl+0, или ctrl+[.
Посему, мало довольствоваться расположениями одних лишь букв, в качестве хоткеев. И тут ещё нужно много думать, чтобы не превратить control слой в con«troll».


fn-слой

О ctrl слое поговорили, теперь поговорим о fn слое.
Для многих он ассоциируется только с кнопочками регулирования громкости, запуска веб-броузера и клиента почты, ну и с ещё парочкой полубесполезных функций.

У меня же, на счёт fn слоя есть ряд любопытных усовершенствований.

Для начала давайте вспомним мои слова про то, что если сместить клавиши-модификаторы к большому пальцу, то получится что нажимать их становится менее удобно. Есть решение этого вопроса:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
То бишь, я хочу сделать так, что при нажатии fn, такие кнопки как enter, space, backspace, delete и tab резко изменят своё назначение на ctrl, shift, ctrl+shift, alt+tab, alt+shift+tab.

А сейчас я поясню зачем нужна каждая из этих клавиш/сочетаний клавиш:

Клавиша ctrl в fn слое нужна для навигации. То бишь для перемещений в текстовом редакторе между словами, нажимая ctrl+<стрелочки>.
С той-же целью добавлены shift и ctrl+shift, дабы уже выделять текст при навигации.

Но касательно alt+tab и alt+shift+tab у меня сомнения. Во первых — зачем нужна отдельная клавиша в fn слое, если и так доступна клавиша alt в ряду большого пальца левой руки, а tab в ряду большого пальца правой руки?
Единственная причина, почему я пока-что их туда добавил: возможность использовать alt+tab, и alt+shift+tab совместно. и тут уже такая комбинация выигрывает у стандартных клавиатур: ибо в случае использования alt+tab как на стандарте, так и здесь мы используем два пальца (причём в стандарте мы используем безымянный и мизинец, что не очень удобно. А здесь используются два больших). А при нажимании alt+shift+tab на стандарте используется три пальца, против двух на нашей клавиатуре.

Далее: при нажатии fn+[alt+tab], fn превращается в alt, и работает так до тех пор, пока его не отпустят.

Есть иной вариант расположения клавиш shift, ctrl, ctrl+shift в fn слое, и он, вкупе со стрелочками и предыдущим вариантом выглядит вот так:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Этот вариант ещё хуже чем предыдущий. Почему? да потому-что мы перекинули shift, ctrl и прочие кнопки дабы облегчить жизнь мизинцу, так? А этот вариант обратно эти кнопки фигачит на свои прежние места, да ещё и в fn слой. Зачем тогда их было вообще оттуда смещать?

В общем и целом, решение (первое) довольно интересное, хоть и костыльное. А раз оно костыльное, значит оно не окончательное. Будем думать дальше.

В принципе вероятные решения этих проблем я уже описал выше в статье, когда обсуждал базовую раскладку. Попробую обдумать описанные там варианты.

Расширенный функционал fn слоя

Когда вы смотрели на представленные мной зарисовки клавиатуры, вы не заметили что не хватает некоторых клавиш по сравнению со стандартной клавиатурой?
Так вот, я их сместил в fn слой.

Зачем?

  • Для уменьшения количества кнопок и объёмов клавиатуры.
  • Для того, чтобы превратить клавиатуру в подобие vim-редактора, где не нужно смещать руки с их стартовых позиций, чтобы нажать клавишу pause/break, которая находится в другом конце клавиатуры.
  • Да и просто потому, что они редко используются. Весьма редко. Конкретно клавишей pause/break я пользуюсь только когда играю в StarCraft 2, не более того.

Теперь подробнее о каждой такой клавише:

  • f(n) ряд я сместил на третий ряд функционального слоя. Почему не нулевой? Да потому-что нулевой я решил использовать для включения раскладок клавиатуры (Именно включения, а не переключения. Раскажу об этом чуть позже).
  • Клавиши навигации по странице я разместил рядом со стрелочками.
  • Прочие функциональные клавиши, такие как пресловутый pause/break, print screen, и прочие размещены по центру клавиатуры, на указательных пальцах.
  • Также присутствуют стандартные для мультимедиа клавиатур кнопки, а-ля vol+, vol- и прочие.

Далее, раскладки клавиатуры я не переключаю, я их включаю.
То бишь как делают обычные пользователи: ctrl+shift (или чаще: alt+shift), и мы переключили язык, а следовательно и раскладку.
У меня-же раскладки активируются через ctrl+shift+(n). По одной простой причине: у меня она не одна, я работаю с несколькими раскладками: две самодельные, две стандартные, ну и ещё немецкая раскладка вкупе с раскладкой языка эсперанто время от времени становятся нужными.
Посему, я отдал раскладкам нулевой ряд fn слоя, и раскладки активируютя нажатием fn+(n).

Итак… Время показать как выглядит fn слой со всеми вышеописанными характеристиками:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка


Общие выводы

На самом деле, главная проблема клавиатуры, пока-что — кнопки под большие пальцы, над которыми предстоит пока поработать. И именно из-за этой проблемы у меня возникает неоптимальная навигация, и костыльный fn слой. В остальном же можно судить что в теории клавиатура достаточно оптимальна. А на практике ещё тестировать нужно.

Вопрос теперь заключается в том, как я буду решать проблему с рядом под большие пальцы, и когда я смогу собрать её, дабы протестировать в живую.


Мои общие размышления

Стандарт и нестандарт. Популярность и непопулярность

Я естественно думал на причину популярности стандартов, не смотря на все их недостатки, и непопулярность эргономичных вариантов, не смотря на все их достоинства.

Пришёл к таким умозаключениям:
Люди очень инертны, посему не стоит искать большого отклика на новые раскладки и новые клавиатуры.

Для того чтобы люди перешли на новые раскладки они должны захотеть это сделать, а так как текущие раскладки, и сами стандартные клавиатуры пока не представляют больших проблем большинству (имеется ввиду казуальных пользователей компьютеров, а не тех кто действительно много печатает и получает от этого RSI) ничего не изменится.

Плюс сами по себе эргономические клавиатуры и раскладки отпугивают людей. Клавиатуры отпугивают ценой и отсутствием массовости, а раскладки отпугивают тем, что большинство людей боится переучиваться на них, и/или не видят в этом смысла.

Пользователи эргономичных клавиатур в основном это те люди, которые поняли необходимость этого, из-за того что схватили RSI от использования, или просто постоянно страдали из-за неудобств стандартных клавиатур.

Остальным людям (которых кстати большинство), которые используют компьютер более казуально, печатают сотню строк в день в переписке в соц. сетях, глядя причём на клавиатуру, и печатая со скоростью 150 зн./мин. одной рукой и стандартных достаточно.

Иными словами — человеку не нужно задумываться, он и не задумывается.

А к эргономичным ещё привыкать нужно, переучиваться, и так далее.

В целом это и есть то, что заставляет казуальных пользователей компьютера продолжать пользоваться стандартными клавиатурами:

  • Нет ровно никакой необходимости в том, чтобы печатать на эргономичных клавиатурах. Ни той, что у тебя RSI в запястьях, ни той что тебе нужна сверхскорость, ни сверхудобство. То бишь: «Я печатаю кой-как, одной рукой глядя на клавиатуру 150 знаков, и мне норм. Зачем мне эти эргономичные клавиатуры, к ним ещё перепривыкать и переобучаться надо.»
  • Вторая причина кроется в цене. Сколько там Truly Ergonomic стоит? $500? Это примерно 15 000 рублей. То бишь: зачем себе покупать КЛАВИАТУРУ, за 15 000 рублей? Уж лучше видеокарту себе новую прикупить, к примеру, или ещё чего. А клава — вон, купил за 500 рублей клаву, там даже мультимедийные клавиши есть.
  • Ну и последняя: отсутствие массовости. То бишь эти клавиатуры не так распространены, как стандартные 101 кнопочные клавиатуры, которые все привыкли видеть всюду. А так, ты уверен что у тебя дома обычная клавиатура, в офисе на работе такая-же. И ты и не задумываешься о существовании иных клавиатур. Да и в целом, при виде эргономичных клавиатур обычные люди ведут себя так, будто увидели автомобиль с пропеллером. Слишком они инновационны и неординарны для них.

А вообще, если вам любопытно сколько людей печатают быстро, то вот вам любопытная статистика: stat.klavogonki.ru/
Выходит так, что большинство печатает со скоростью 200 знаков в минуту. То бишь большинству современных пользователей мегаклавы не нужны. И то это статистика тех людей, кто зарегистрирован на клавогонках. То бишь тех людей кто поставил себе цель — печатать лучше (в слепую/печатать на мегаскоростях/учавствовать в соревнованиях). А тех кому это не надо несомненно больше. И бьюсь об заклад что если учитывать в статистике и тех и тех людей, то среднестатистическая скорость на душу населения неуклонно пойдёт вниз.


Пару слов о переобучении

Многие ошибочно считают что изучение новой раскладки с нуля это всё-равно что учиться заново ходить. То бишь если ты потратил 2 года на получение скорости в 300 (к примеру), то тебе придётся снова потратить те-же 2 года чтобы достич старых результатов на новых раскладках.

Это не так. Рассуждаю так на основе своего опыта.
Так или иначе, когда я начал задумываться об уходе со стандарта, моя скорость была примерно 200/180 (рус/анг).
И перешёл я на диктор/дворак.

Переобучение заняло у меня меньше недели, о чём я писал в статье и в комментариях.

После переобучения, мне не пришлось заново набирать свою предыдущую скорость в 200 знаков в минуту. Скорость моя не упала. Я долго печатал в тренажёре, чтобы убедиться в этом.

Это ещё не всё.

После, как я уже говорил, я задумался о вычислении своих раскладок.
Вычислил тогда только для английского, ибо у меня не было статистики русского языка с использованием буквы ё, да и программа не поддерживала юникод.

Скорость печати для меня тогда была примерно 240/200.

Те-же самые результаты: я выучил новую раскладку дня за три, скорость восстановилась до скорости предыдущей раскладки также довольно быстро.

Вообще, если вам любопытно, то вот моя история переобучения раскладок:
йцукен → машинопись → dictor → dictor_modified
qwerty → dvorak → dvorak_modified → zymn (вычисленная раскладка)

Сейчас у меня скорость 400/350, и я готовлюсь перейти на новые раскладки. Чтож. Делаем ставки дамы и господа за сколько дней я их выучу, и сколько времени мне потребуется для того чтобы снова печатать на 400/350. Я предполагаю: меньше месяца, как и во всех моих прошлых попытках.

Кстати о раскладках. Давайте попробуем адаптировать их под стандартные клавиатуры, что из этого получится?


Адаптация раскладок под стандартные клавиатуры

Английская раскладка:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Русская раскладка:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Вердикт:

Печатабельно. Но только если у вас клавиатура имеет 102 клавиши и только вертикальный Enter. Никак не иначе. Посему для стандартных клавиатур эти раскладки предназначены слабо. Что и не удивительно — разрабатывались изначально они под особую клавиатуру с особыми параметрами.

Но на самом деле для меня нет проблем вычислить раскладки и для стандартных клавиатур в отдельности, но я не буду этим заниматься в рамках этой статьи. Да и нужно ли? Под стандартные такое разнообразие раскладок что аж выбирай не хочу.


Кстати об альтернативных раскладках

Если вы внезапно захотели себе эргономичную раскладку, то:

Для английской выбирайте Colemak. Почему? Потому-что она близка по расположению клавиш qwerty, что позволит вам быстро переучиться (в течении пары дней, возможно даже одного). Ну и в целом с ней не всё так плохо как со стандартом.
Есть даже тесты, подтверждающие что Colemak пусть немного, но лучше Dvorak. Последнее утверждать или опровергать не намерен. Да и дворак по моему личному мнению убожество из убожеств, посему я даже не расстроюсь что раскладка похожая на стандарт его внезапно угробит тем, что она лучше.

Я сам на Colemak'е не печатал, посему свой вердикт делать не буду, но если любопытно, могу дать вам вердикт одного из существующих пользователей Colemak:

я вот на колемаке набираю, не очень удобно кажеся
процент ошибочности очень высок, а все хвалят )
беготня частая по основному ряду, с загрузкой слабых пальцев — не самый лучший вариант, по-видимому

А вот для русской всё не так просто на самом деле.
Я хотел порекомендовать диктора, ибо сам на нём печатаю долгое время. И в целом, пусть он наследует недостатки дворака, у него не всё так плохо. Но в то-же время там кардинально другое расположение знаков препинания. Если эта проблема для вас не проблема, то диктор для вас.

Но есть и другие варианты!!!
Помните в статье я указывал на раскладку придуманную Клауслером? Если нет то я напомню:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

И вкупе с этой раскладкой давайте я вам покажу другую, которую придумал Зубачёв:

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Так выглядят раскладки в полной версии

Клауслер:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Зубачёв:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Не находите параллелей? Я нахожу — раскладки весьма похожи. Так почему бы их не использовать вместе?
И если хотите использовать их — пожалуйста:
www.dropbox.com/s/9r1dgtx9f604zci/Klausler%20Zubachev.zip

Правда эти инсталлеры только под Windows, но под Linux их тоже можно сделать.

Собственно на этом мои рекомендации закончены.


Адаптация стандартных раскладок под мою клавиатуру

Раз уж пошла такая пьянка с адаптацией вычисленной раскладки под стандартную клавиатуру, то давайте ещё попробуем адаптировать стандартные раскладки под нестандартную клавиатуру:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка
Делать вердикт я предоставляю право вам.


Пару слов об эффективности нестандартных раскладок. Скорость и удобство набора

Насколько эффективны стандартные раскладки? Об этом идут жаркие споры с незапамятных времён.
Я не буду рассуждать о том насколько вы эффективно будете печатать если вы перейдёте на нестандартные раскладки. И без моих рассуждений интернет и так полон ими, и вы без труда найдёте целые форумы посвещённые этому вопросу.

Но я буду рассуждать о несколько иной вещи: А нужно ли это?
Вспомним мой пример: на йцукене и qwerty я печатал со скоростью примерно 200 символов, так?
На двораке и дикторе примерно с 300.

Можно ли сказать что переход на нестандартные раскладки мне помог набрать скорость?
И да и нет.

Начну с ответа «нет»:
Я на самом деле убеждён, на своём личном примере, да и на примере других людей, что мало зависит скорость от раскладки. Я абсолютно серьёзно.
Да, возможно в скорости я выйграл перейдя на нестандартные раскладки, но в целом, скорости в 400 (моей текущей скорости) я мог достигнуть и на стандартных раскладках.
Есть люди, как пример мой друг и соратник ibnteo, которые не парясь печатают быстрее меня на йцукен и на его фонетическом аналоге jcuken.

Да и просто, прочтите статью дорогого нашего хабрапользователя halo, где он рассуждает о раскладках, поиске альтернатив «фыве», и почему ЙЦУКЕН останется популярным.

Да и также приведу цитату моего друга, который рассуждал о скорости:

Другое дело, что все рекорды — они обусловлены не раскладкой, а волей, терпением, талантом, поэтому по рекордам различным о раскладках судить тоже нельзя.

Да и на самом деле не смотря на неэффективность стандартных раскладок на них спокойно можно выбивать рекорды.
Причина чрезвычайно проста — человек привыкает и адаптируется ко всему. Посему и к неэффективности стандартных клавиатур и раскладок можно привыкнуть, и потом уже не замечать неудобств.

Что-ж, выходит что переход на нестандартные раскладки нафиг никому не нужен? И я проделал такую тонну работы зазря?

Нет на самом деле, и тут я начинаю отвечать на ответ «да», на вопрос который я ставил выше:

Ответ «да», на поставленный выше вопрос:
На самом деле, не ради скорости я лично начинал эту эпопею с клавиатурой и раскладками, и не ради покорения рекордов.
Мне просто было неудобно.

А точнее мне было…

  • Неудобно то, что символы расположены в раскладках в разных местах.
  • Неудобно то, что символы эти были раскинуты «абы-как», без какой-либо группировки по их назначению.
  • Неудобно то, что руки были неравномерно нагружены.
  • Неудобно то, что мизинцы и большие пальцы были нагружены несоответственно их физиологии.
  • Ну и в конце концов мне было неудобно то, что буквы были расположены не согласно их частоте употребления.

Эти то недостатки я и пытался исправить экспериментируя с раскладками и созданием клавиатуры.
То бишь, лично для меня, переход на нестандарт характерен только из-за одной причины: удобство, а не скорость.

Но думаю вам не нужно говорить что если для вас раскладка более удобна, то это значит что → символы находятся в более удобных для вас местах → вы меньше ошибаетесь при их наборе → меньше тратится время на поиски символа и исправлении ошибок → выше скорость набора энного количества символов в минуту, ибо меньше времени тратите на исправления и поиск.

То бишь таки смысл есть говорить что скорость станет выше при переходе на нестандартные раскладки.

Но в то-же время есть смысл говорить что можно и к стандартным раскладкам привыкнуть настолько, что не путаться в расположении букв и символов вообще.


Как популяризовать нестандартные клавиатуры и нестандартные раскладки?

Сразу начну с того что я считаю что нужно это делать не со стороны разработчиков, а со стороны дистрибьюторов.

Ибо гляньте сколько уже разработано нестандартных клавиатур? Их уже чуть ли не сотни. Но что-то не спешат они становиться «мейнстримом». И причины этого я уже говорил выше.

То бишь сколько клавиатуры не разрабатывай — популярнее от этого они не станут. Популярности можно достичь только распространением. А как распространять клавиатуры? Правильно — продавать их. И продажи эти должны быть максимально доступными, в идеале — в каждом компьютерном магазине.

Всем думаю это понятно и все всё понимают. Но тем не менее я решил напомнить это.

Ещё один момент — как покупают клавиатуру обычные пользователи? Они зачастую приходят в магазин без конкретной цели, и чаще всего выбирают клавиатуру «по цвету и фактуре», нежели по характеристикам и т.д.
Реже, гора-а-здо реже попадаются люди, которые из года в год, покупают одну и ту-же модель клавиатуры.

Так что в целом, чтобы популяризовать подобные клавиатуры, нужно понять простые вещи:

  • Многие люди и не задумываются о том что есть подобные клавиатуры. Нужно дать им об этом знать, положив на полку магазина парочку подобных клавиатур.
  • Клавиатуры должны быть доступнее, и не стоить 15 000 рублей.
  • Клавиатуры должны быть пусть эргономичными, но не излишне инновационными, чтобы не пугать простого потребителя. Имеются в виду quasi кнопки к примеру, или вмонтированный в клавиатуру трекбол. Самые первые модели должны быть максимально простыми. А потом уже, когда добились более-менее популярности, можно уже делать «сумасшедшие нововведения».

В общем и целом, у меня такая моя стратегия на счёт популизации нестандартных клавиатур и нестандартных раскладок: есть у меня цель создать простую, но эргономичную клавиатуру стоимостью $10-15, или около того, и заполонить ими рынок.
Клавиатура эта будет скорее всего плёночная, ибо механические клавиатуры стоят невероятно дорого. И главная причина дороговизны — свитчеры.

Плёночные кстати потому и заменили механические в прошлом, ибо их дешевле производить в массовом порядке.
В единичном экземпляре таки пока дешевле производить механические.

Именно это и послужило причиной популярности плёночных клавиатур над механическими. А не то что они лучше по каким-либо характеристикам.

В целом, про механические клавиатуры вы можете узнать в статье «Механические клавиатуры».


Будущие планы

В общем и целом суть моих планов думаю вам ясна:

  • Собрать клавиатуру.
  • Протестировать её.
  • Сделать бизнесплан по созданию производства нестандартных клавиатур и запуск компании на кикстартере.
  • Всеми правдами и неправдами начинать производство и популяризацию подобных устройств ввода информации.

Звучит естественно просто на словах как всегда, а на деле мы уже поняли что нам тут предстоит неимоверная по объёмам работа ещё. Так что это совершенно иная история…

И напоследок хотелось бы поблагодарить Ibnteo, Suenot, Steve Key, Lexx, flyer2001 и Павла Титова за общую и идейную поддержку.
А также Майкла Диккенса за разработку программы вычисления и поддержку в процессе её использования.

За сим всё, спасибо что были со мной. Искренне надеюсь что моя статья-диссертация достаточно легко читалась для такого объёма информации. До следующего раза.

Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка


Бонус

Как будто уже существующего объёма статьи мало, я добавляю к нему бонусную главу. Речь пойдёт о геймпаде, точнее кейпаде.
Выглядит он так:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

За примерами подобных кейпадов далеко ходить не надо.

Иной пример подразумевает замену кнопок под большой палец тамбпадом:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

Причины создания такого кейпада: я играю в старкрафт. Не профессионально — в лоулигах, но мне всегда было любопытно создать не только клавиатуру для печати, но и подобие кейпада и для игр.

Использование данного агрегата подразумевает прежде всего StarCraft 2, и его преднастройку горячих клавиш GRID, но ничто не мешает его использовать и для других игр.

Все существующие модели подобных клавиатур меня не устраивали: то слишком мало кнопок, то неудобное их расположение.
Единственные более-менее подходящие модели это A4Tech X7-G100, или Razer Orbweaver.

В целом можно обойтись и той клавиатурой что я представил выше, либо обычной клавиатурой, но мне нравится экспериментировать.

Количество кнопок конечно жуть, но в целом, дотягиваться до них можно будет без проблем, если делать конечно форму клавиатуры «чашечкой», как это сделано в кинезисе, и как хочу это сделать я:
Клавиатура Ant keyboard. Часть 1 — общий дизайн и разработка

За сим точно всё, всем удачи и спасибо за внимание.

Автор: Nylithia

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js