#Раскладка Ильи Шепрута

#О чём эта статья

Это статья о моей раскладке и всём что с ней связано.

Для вас эта статья может быть полезна по следующим причинам:

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

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

#Вводная информация

#2Термины 🛠

Раскладка — способ организации клавиш на клавиатуре: положение букв, стрелок, F-клавиш, модификаторов, макросов итд.

СК — стандартная клавиатура, или набор клише, которым следуют производители почти всех клавиатур. 99% клавиатур, продаваемых у вас в магазине являются СК, и возможно вы никогда вживую не видели клавиатуру, которая не является СК. На всех ноутбуках стоит СК. Далее будет считаться что частью СК также является и стандартная раскладка — набор клише по размещению определённых клавиш.

Смещение рядов aka горизонтальный стаггер — горизонтальное смещение следующей строки клавиш на клавиатуре относительно предыдущей. Является одним из базовых клише СК.

Десятипал — сокращение для фразы: метод слепой десятипальцевой печати на клавиатуре™.

Программируемая клавиатура — такая клавиатура, внутрь которой можно поместить нестандартную раскладку.

Правильная клавиатура — клавиатура, которая адекватна для десятипала; или можно сказать, что правильная клавиатура не следует клише СК. Измеримые критерии правильной клавиатуры будут даны далее.

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

Препинак — сокращение от «знак препинания». Здесь, для краткости, будет считаться, что к препинакам относится любой символ, который можно напечатать на клавиатуре, но который не является буквой или цифрой, например: '"+-*/^@#&|$~ являются препинаками.

Слой — абстракция в раскладке, которая позволяет при нажатии определённой клавиши иметь клавиши, отличные от текущих. Например клавиши Fn и Shift активируют слои:

  • Зажатие Fn активирует слой, на котором в определённых местах есть клавиши управления звуком, музыкой и прочим.
  • Зажатие Shift позволяет вместо цифр набирать препинаки, а вместо букв большие буквы.

Слоефикатор — клавиша, которая активирует слой. Образовано от слой + модификатор.

зн/мин — сокращение для фразы «знаков в минуту». Используется для обозначения скорости печати.

Неизвестная необходимость — предмет или концепция, которая обладает следующими свойствами:

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

У меня в раскладке очень много вещей являются неизвестной необходимостью.

#2Что за Moonlander

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

Я его называю не совсем по транскрипции «мунляндер», потому что люблю коверкать слова.

Официальный сайт.

Моя клавиатура на данный момент выглядит так:

×1
jpg

#2Связь между клавиатурой и раскладкой

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

Кажется, как будто клавиатура — это очень тупая вещь, и она не должна содержать у себя вообще никакого вида процессора, а отдавать полностью всю информацию на компьютер, и получать тоже всё от компьютера (чтобы, например, подсветку нарисовать). Но это не так, и внутрь клавиатуры можно и нужно засунуть много чего интересного.

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

Возможности настолько велики, что кто-то даже сделал тетрис на клавиатуре!

Благодаря программируемости клавиатуры, стандартная раскладка СК может быть полностью переосмыслена, и воплощена в совершенно в другом, более удобном виде. Этим переосмыслением я и занимался с самого начала.

QMK — одна из библиотек на языке программирования Си, для написания прошивки клавиатуры. Данная библиотека на данный момент является лучшей библиотекой, которую поддерживают практически все программируемые клавиатуры. Главное её свойство для данной статьи — можно писать собственные расширения на Си, без погружения в низкоуровневые детали протокола или сканирования матрицы.

#2«Правильная» клавиатура

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

  • Не обладает горизонтальным стаггером вида \\\\, и является симметричной.
  • Обладает как минимум тремя клавишами для каждого большого пальца.
  • Является программируемой, чтобы была возможность поместить все клавиши как можно ближе к пальцам, через слои, не раздувая клавиатуру до огромных размеров, и минимизируя движения кистей.

Все эти пункты подробно и будут рассмотрены далее.

Я предпочитаю такой своего рода «субъективный» термин вместо термина эргономичная клавиатура, потому что эргономика не обязана содержать в себе описанные пункты. А эти пункты по моему мнению важнее эргономики. Плюс, существуют просто ортолинейные клавиатуры, типо Planck, которые являются правильными, но не эргономичными. Вот как выглядит Planck:

×1
jpg

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

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

#Отказ от СК

📖 Принцип
Я не делаю свою раскладку такой, чтобы потом было удобнее работать на СК.

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

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

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

И это побудило меня полностью переосмыслить всю раскладку СК от начала и до конца, и сделать свой стандарт.

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

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

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

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

#Что такое слой

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

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

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

×2.9
png

То что активируется и называется слоём. При этом Fn называется слоефикатором.

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

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

Слой можно включить двумя способами:

  • Чтобы он работал при зажатии клавиши — по аналогии с Shift. Далее этот вид слоефикатора будет обозначаться как MO слоефикатор, потому что так он записывается в QMK.
  • Чтобы он включался и выключался как тумблер по нажатию определённой клавиши — по аналогии с Caps Lock. Аналогично он будет обозначаться как TG.

Страница документации QMK про слои.

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

Аналогично, переключение языка в какой-то степени переключение слоя по TG.

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

Но мне не нравится сочетание «3-й уровень», и в статье о нём не говорится можно ли туда поставить стрелочки или F-клавиши. Воспользуюсь моим пессимизмом по поводу клавиатур, и предположу, что нельзя. А со слоями можно любую клавишу поместить в слой. Также в статье говорится что слоефикатор должен ставиться на модификатор, но не говорится есть ли чистый слоефикатор, который не даёт примеси Shift, Alt, Ctrl или Win. Поэтому концепция слоя куда более абстрактная и чистая.

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

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

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

#Про слепую десятипальцевую печать

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

📖 Принцип
Моя раскладка проектируется с учётом того что её пользователь владеет десятипалом.

Итак, слепая десятипальцевая печать на клавиатуре™ — это особая техника печати, при которой:

  • Пальцы стоят на домашней позиции ФЫВА ОЛДЖ или ASDF JKL;, при этом на большинстве клавиатур для указательных есть рисочки на клавишах F и J, чтобы проще было целиться вслепую.
  • Используется 9-10 пальцев обеих рук (и мизинцы тоже).
  • У каждого пальца есть строго свои зоны, и каждый палец имеет право нажимать только клавиши из своих зон. Это называется статические зоны. Когда каждый палец нажимает какую придётся клавишу — это называется динамические зоны.
  • Печать происходит без подсматривания на клавиатуру, ведь все клавиши выучены на уровне рефлексов. Отсюда и слово «слепая».
  • Это не тоже самое, что просто «печатать вслепую», ведь обычно печать вслепую не подразумевает статические зоны.

Также иногда к десятипалу относят «правило Shift'ов» и «правило пробелов», но я считаю эти правила бесполезными и вредными, поэтому не отношу сюда. Далее эта тема будет раскрыта.

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

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

Согласно моей внутренней статистике большинство людей:

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

#2Зоны

Если погуглить и почитать литературу, то везде вам скажут что вот так выглядят зоны для десятипала на СК:

×2
png

Цветом обозначается какой палец нажимает какую клавишу:

  • Белый — не специфицировано, и обычно эту клавишу нажимает любой палец, иногда зряче.
  • Розовый, Фиолетовый — указательный.
  • Зелёный — средний.
  • Синий — безымянный.
  • Жёлтый — мизинец.
  • Оранжевый — большой палец.

Давайте взглянем на них в более чистом виде:

×1.8
png

Можно заметить, что левой руке должно быть неудобно. Некоторые люди это замечают сразу, и делают костыли в виде таких зон:

×2
png

Которые в чистом виде выглядят так:

×2.1
png

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

Пример людей на клавогонках, с необычными зонами: _VR_, Alkhor, Переборыч.

Существуют ещё большие костыли, которые не только делают другие зоны, но ещё и другую постановку — ЫВАМ ТОЛД. Данная постановка значительно переделывает раскладку ЙЦУКЕН, и ещё делает положение рук немного более эргономичным. Вот как она выглядит:

×2
png

Вот ЫВАМ ТОЛД — уже странная концепция, и я бы не стал её советовать, тут на свой страх и риск.

❌ Неадекватность СК для десятипала
По зонами видно почему СК неадекватна. Происходит это именно из-за горизонтального стаггера, который направлен в одну сторону, и находится на клавиатуре из-за печатных машинок. Обозначить этот стаггер можно как и стандартные зоны: \\\\.

Более подробно узнать про тему горизонтального стаггера можно в статье: Генетические недостатки стандартной клавиатуры.

Также стаггер \\\\ можно очень хорошо увидеть на этой фотографии, которая взята отсюда:

×1.5
jpg

Но этот стаггер не точно такой же как и на СК. Давайте сравним насколько смещается каждый новый ряд относительно предыдущего на СК:

×1.5
png

Видно, что первое смещение равно 1/2 клавиши, а вот уже второе 1/4 клавиши, а затем снова 1/2. Такое странное изменение смещения приходит к нам из-за особенностей печатных машинок, и хуже варианта с постоянным смещением 1/4. Далее это будет раскрыто в истории.

Можно сказать что правильным и адекватным стаггером будет |||| или //\\.

Пример стаггера //\\ с постоянным смещением в 1/4:

×1
jpg

Также можно сделать //\\, но с адекватным неравномерным смещением рядов, например: 0, 0, 1/4, как на клавиатуре Сагарис:

×3.2
jpg

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

×2.3
png

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

#2Смещение кисти

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

Давайте взглянем а как вообще у нас располагаются клавиши на клавиатуре относительно домашней позиции. Я беру следующую иллюстрацию из статьи Клавиатуры и дизайн.

×1.5
png

Зелёным обозначена домашняя позиция, светло-зелёным расстояние в 1 клавишу от домашней позиции, оранжевым расстояние в 2 клавиши итд.

❌ Неадекватность СК для десятипала
Частые и полезные клавиши размещаются далеко, из-за чего приходится часто смещать кисть с домашней позиции.

Возьмём, например, Backspace. Он находится настолько далеко, что даже не помещается в самые дальние клавиши для правого мизинца. И чем его нажимать? Да чем хочешь! Кажется что к нему ближе всего мизинец, но его проще и удобнее нажимать безымянным пальцем. Кисть всё-равно смещать с домашней позиции. А раз она будет смещаться, то потом она должна вернуться обратно чтобы нажать следующие клавиши. А вот это уже представляет проблемы, особенно на скорости. Возвратить кисть обратно не так-то легко, плюс если делать это быстро, и при этом ещё хотеть нажать какую-то клавишу, то высока вероятность промахнуться. И снова придётся смещать кисть и снова нажимать Backspace. Замкнуный круг :)

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

×2
png
×1
jpg

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

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

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

А такие клавиши как Backspace, Shift, Enter можно без всяких слоёв разместить поближе просто использовав большой палец.

#2Большой палец

Это удивительно, но в СК большой палец не используется ни для чего, кроме пробела. Большой палец — один из самых подвижных пальцев. Да на телефонах люди печатают очень много текста одним или двумя большими пальцами. И такой мощный палец обойдён стороной.

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

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

#2Скорость и сомнения

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

Например, я наблюдал много примеров школьников, которые без всякого обучения десятипала приходили на клавогонки и быстро достигали самых высоких скоростей 800-900 зн/мин, печатая динамикой. Ещё больше я наблюдал примеров тех, кто быстро достигал 500-700 зн/мин.

При этом самый быстрый печатальщик на планете — Шон Врона, печатает по динамическим зонам, и достигает на английском языке около 1200 зн/мин. Тоже самое относится и к альтернативным раскладкам. Объективного практического преимущества у них нет.

👀 Обратите внимание
Но настоящие преимущество есть у стенографической машины.

А что тем временем десятипал? У меня ушло больше года, чтобы достичь скорости 500 зн/мин. И я при этом очень много тренировался, и начал в 17 лет. Сейчас моя максимальная скорость на клавогонках — 700 зн/мин.

Так что если ваша цель — скорость, то придётся ресёрчить дальше, всё не так просто.

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

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

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

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

Далее будет раскрыто в каких ещё местах СК неадекватна для десятипала, и как эту проблему можно решить на правильной клавиатуре.

#История

#2Доисторические времена, предпосылки

Изначально я печатал на клавиатуре также, как и печатают все:

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

Что является набором по динамическим зонам с элементами слепоты.

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

  • Сначала Денис Борисов выпускает видео о том как он проводит свой день, и там говорит что научился десятипалу чтобы проще и быстрее печатать статьи.
  • Затем Константин Кадавр между делом, в рандомном месте, упоминает что считает тех, кто печатает за 300 зн/мин уже сверхлюдьми.
  • И наконец видео от Sorax'а о том «Как освоить слепой набор?».
×1
jpg

Это как в стакан наливают воду, и вот они наливали, и после одного момента она вылилась.

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

Ближе к концу 11 класса школы (2016 год) я начал копать о том как стартануть в этой теме.

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

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

👀 Обратите внимание
То есть я делал это для себя, а получилось для всех.

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

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

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

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

#2Начало кастомизации, WinAPI

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

Сейчас я понимаю, что эта клавиатура не такая уж и классная, и самое главное — неправильная. Хотя статье стоит отдать должное, она очень глубоко во мне посеяла эту идею, и вообще идеи о том, что можно сделать, имея программируемую клавиатуру.

Возвращаясь к теме, я решил прежде чем научиться печатать, сделать себе такие же стрелки, чтобы вместо Caps Lock'а у меня была какая-то такая магическая клавиша, при зажатии которой другие клавиши работают по-другом (как мы уже знаем, это называется слой). Для начала я попытался сделать такое через AutoHotKey, но когда я это сделал, стрелки работали слишком медленно, и этим невозможно было пользоваться. Это даже вылилось в тему на CyberForum, на которую мне никто не ответил. Вот эта тема, там же находится исходный скрипт: Как добиться использования стрелок на буквенной части клавиатуры?. В те времена я не знал такого термина как «слой», поэтому и не гуглилось ничего разумного.

👨‍💻 Лайфхак
Сейчас для решения этой проблемы я могу посоветовать программу Enhanced Keyboard, которая, к сожалению, работает только на винде. Ещё есть Karabiner-Elements для MacOS.

А в те времена единственный вариант что у меня остался — использовать WinAPI, с которым я уже значительно поигрался, чтобы рисовать окошки и делать простенькие программы. С помощью него я решил сделать перехват всех клавиш, и соответственно их изменение. Назвал я такую программу ModBind, где Mod обозначает клавишу для включения слоя, а «Bind» обозначает «забиндить» (слово взято из CS 1.6).

Исходники этой программы лежат здесь: modbind (хотя они никому не нужны, пусть лежат для истории).

Моя раскладка после завершения этой программы выглядела следующим образом:

×1
png

Как видно, здесь появилось намного больше, чем просто стрелки в слое. Здесь я:

  • Назначил Shift на левый Alt. Из-за этого мне пришлось переучиваться нажимать пробел с левой руки на правую.
    • Тут нужно сказать что на самом деле для тамба Alt довольно далёк, и неудобно выгибать так палец. Да, неудобно, но терпимо, и это намного лучше, чем нажимать Shift мизинцами.
  • Сделал стрелки плоскими. Потому что где-то слышал, что в каком-то vim'е стрелки сделаны подобным образом.
  • Добавил отдельную клавишу для запятой.
  • Перетащил Backspace на место Caps Lock.
  • Выделил отдельную клавишу для переключения языка.
  • Enter поближе.

Все эти идеи до сих пор со мной, более подробно и с широкими объяснениями я их рассмотрю далее.

👀 Обратите внимание
Здесь в английском находится раскладка «Дворак для программистов», и её главной особенностью является то, что основные символы для программирования нажимаются без Shift'а, а цифры нажимаются с Shift'ом. Также цифры расположены в нестандартном порядке, а полезные в программировании препинаки расположены максимально близко (а не на мизинце, как на СК 😑).

👨‍💻 Лайфхак
Если вы хотите себе препинаки как в раскладке «Дворак для программистов», то не обязательно ставить именно эту раскладку, и переучиваться под новое положение букв. Можно сделать себе раскладку «qwerty для программистов» в специальных программах, и свести переобучение к минимуму, получив максимум результата. Если вы программист, то это сделает вашу жизнь значительно лучше.

Затем, когда я сделал эту идеальную раскладку, я наконец начал обучаться десятипалу через тренажёр VerseQ. После него я перешёл на Клавогонки, и катал с такой модификацией раскладки долгое время под аккаунтом optozorax. Там же можно более подробно прочитать про эту раскладку.

Видно, что я отказался от СК и начал переосмысливать её ещё в самом начале.

#2Начало обучения десятипалу

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

И хочется покритиковать тренажёры «Соло на Клавиатуре», «Стамина», и словари «ва ол» на Клавогонках. Там от вас требуют печатать сначала сто раз букву А, затем сто раз букву О, и так все буквы потихоньку. Я считаю такой подход тупостью, и нужно сразу печатать реальные сочетания, запоминать все буквы сразу, и в реальной обстановке. Ничего в этом сложного нету. Плюс в тренажёре «Соло на Клавиатуре» к печатающему предъявляются очень высокие требования в плане безошибочности, поэтому некоторые люди забрасывают обучение десятипалу вообще. В VerseQ нету такого большого количества стресса.

👨‍💻 Лайфхак
А сейчас для старта печати советую klava.org, он бесплатный, и там есть много функций.

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

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

×1.4
jpg
×1.4
jpg

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

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

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

×1.4
jpg

С этой штукой захотел посмотреть на клавиатуру — смотришь, и ничего не видишь. Profit 👍.

Но потом и эта штука оказалась неудобной из-за необходимости её надевать, снимать.

👨‍💻 Лайфхак
Затем в голову пришла гениальная мысль, что подсматривание на клавиатуру не будет иметь смысла, если надписи на клавиатуре не будут иметь смысла, поэтому я вытащил все клавиши и расставил их в рандомном порядке. Это наиболее дешёвый и действенный метод борьбы с подглядыванием. Его можно увидеть на картинке ниже.

В итоге мой воркфлоу по печати выглядел как-то так:

×1.4
jpg

👨‍💻 Лайфхак
Распечатать свою раскладку и повесить рядом с монитором — удобно! Лучше искать нужный символ на бумажке и соответственно лучше запоминать раскладку, чем расслаблять мозг и давать компьютеру подсказывать где находится следующий символ.

А после достижения 150-200 зн/мин в этом тренажёре советую вам уйти на клавогонки, начать читать форум, и смотреть как развивались другие люди. 300 зн/мин дадутся легко. А уже дальше могут начаться проблемы.

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

❌ Неадекватность СК
Ну она же кривая!

Клавиатура кривая. И моя любимая на тот момент UHK тоже оказывается кривая! Поэтому я погуглил и узнал об ErgoDox EZ, и пометил себе в голове обязательно купить эту клавиатуру, когда у меня появятся деньги.

#2Первая слим клавиатура

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

Но почему-то на клавогонках все писали что лучшая клавиатура для быстрой печати — слим-клавиатура. То есть такая, у которой плоские клавиши, ножничный механизм. И это писали даже лучшие из лучших. Особенно это актуально для русской раскладки ЙЦУКЕН, где очень много букв нажимаются указательными пальцами, и чтобы это быстрее печатать десятипалом, нужно использовать скольжение. А такое удобно только на плоской клаве. Это стало сильным ударом для меня, и поводом проверить это на истинность.

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

Поэтому я купил дешёвую слим-клавиатуру Rapoo E9070. Первое время было неприятно и неудобно, я частенько промахивался из-за отсутствия хоть какого-то разделения между клавишами, но на 400 зн/мин я уже на уровне рефлексов знаю где какая клавиша, поэтому быстро привык. Вам могу посоветовать слим-клавиатуры, где между клавишами есть хоть какое-то расстояние, с ним приятней.

×1
jpg

И вот когда я привык к ней и начал печатать быстро, я понял что всё это было правдой. Плоская клавиатура действительно удобна именно для быстрого десятипала.

Вот так я из хейтера плоских клав превратился в их любителя.

#2Покупка ErgoDox EZ

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

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

Когда я был студентом 2-го курса, и у меня появилась стипендия и маленькие заработки на написании работ в универе другим людям, я смог себе купить б/у ErgoDox EZ.

×1.1
jpg

19 февраля 2018 получил ErgoDox. Только в этот момент узнал что, оказывается, существует визуальный конфигуратор и прошивка написана на Си. До этого я покупал эргодокс только из-за его физического расположения кнопок, и из-за того, что на нём есть много клавиш для большого пальца.

20 дней спустя запрограммировал следующую раскладку и прошил её в клавиатуру:

×1
png

Картинку нарисовал в фотошопе :D.

Уже тогда эта раскладка работала без всяких драйверов, и настройки софта, и единственное, что ей было нужно — это чтобы на компе были самые обычные раскладки QWERTY и ЙЦУКЕН.

Когда я наконец сделал эту раскладку, можно было возвращаться на клавогонки, и бить рекорды.

#2Привыкание к прямым рядам

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

На привыкание к прямым рядам (орто) у меня ушло две недели. Частенько не попадал, но в итоге привык, и затем понял что на прямых рядах я даже совершаю меньше ошибок, за счёт того что удобнее печатать. Явный пример: существует 12 упражнение Хруста, которое выглядит следующим образом:

Упражнение 12
по-любому облюбовать облюбовал любовь любой любая любви полюбив любое любимое любимая любой Любляна любая любой любви любимый любойы

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

И это при том, что упражнение в основном на правую руку, для которой СК вроде как предоставляет удобное смещение рядов. Вспоминаем как выглядит смещение рядов на СК:

×1.5
png

И тут видно, что для части где нахдоятся буквы Ю и Б смещение рядов 1/2 клавиши. Из чего делаем вывод что меня тормозило и запутывало именно смещение 1/2. Не уверен, было бы мне так же сложно набирать, будь там смещение 1/4, но вот про 1/2 я могу сказать точно, что оно неудобно.

❌ Неадекватность СК для десятипала
Странное изменение смещения рядов и вообще смещение 1/2.

#2Привыкание к высоким клавишам

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

👀 Обратите внимание
Прямые ряды не главная проблема при переходе!

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

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

(Конечно, есть низкопрофильные свитчи, но там надо паять, а я тратить время на обучение паянию не собираюсь.)

#2Продолжение истории с Ergodox EZ

Итак, через 4 дня после введения этой раскладки я побил свой рекорд и в обычном режиме на Клавогонках сделал 559 зн/мин. А потом сделал и 570.

Затем через 15 дней я реализовал залипающий Shift — это такой Shift, который при обычном зажатии работает как обычный, а при единоразовом нажатии и отпускании автоматически применится к следующей клавише.

А уже через месяц, 20 апреля 2018 я пришёл в чат @klavaorgwork, где находятся люди, также, как и я, увлечённые созданием раскладок и клавиатур. В частности там был Волька ibnteo — он одним из первых в русскоязычном сообществе создал правильную клавиатуру — Кошкоклаву.

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

Она выглядела именно так:

×1.4
png

#2Перестановка букв

Я всегда понимал, что ЙЦУКЕН — не предел мечтаний, и на нём не очень удобно печатать, и всегда предпринимал попытки создать Идеальную Скоростную Раскладку, но это не очень получалось.

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

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

Вдохновившись его примером, я решился тоже немного переставить буквы. А именно, я поменял местами Щ⬌Н, Ш⬌Т. Такая перестановка должна была ввести в игру самое частое двубуквенное сочетание: ТО в виде удобного и быстрого переката. Да и в целом увеличить число перекатов.

Это было 9 мая 2018 года. Спустя 2 дня удалось добиться скорости 400. Спустя 8 дней от перестановки — скорость 500. Спустя три недели от перестановки — старая скорость восстановлена.

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

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

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

По ощущениям печатать с ТО на перекате было шикарно, мой потенциал скорости увеличился.

Где-то в сентябре я продолжил перестановки, и сделал К⬌Е и М⬌И, а затем Ф⬌К и Ы⬌М. То есть украл ещё две буквы с указательных, и поближе подвинул частые гласные. Количество перекатов у меня стало ещё больше.

Для этой перестановки я уже не помню как долго переучивался, но вроде было не так сложно, потому что это не такие частотные буквы как Н и Т.

Тут я не учитываю всякие редкие буквы типо Х, Ъ, ибо они переставлялись много.

#2Двоения

Примерно где-то в это время, через год очень активного пользования, у меня в клавиатуре начались двоения наиболее частых букв: Р, В, Backspace. Виной тому думаю б/у'шность изначальной клавиатуры и плохое качество свитчей Gateron Clear. К сожалению у меня не получилось выпять двоящие свитчи и поменять местами их с менее редкими клавишами.

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

К сожалению в моей версии клавиатуры ещё не было Hot-Swap'а.

И где-то в этот момент я начал подумывать о том чтобы купить новую клавиатуру, где будет Hot-Swap.

#2Heatmap

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

Более подробно это можно прочитать под хэштэгом #heatmap в чатике в телеграме: @klavaorgwork, либо в ридмишке проекта klavarog/heatmap. Благодаря этой возможности делать printf внутри клавиатуры можно не только замерять статистику нажатий, но и проводить дебаг.

Чтобы данная возможность работала, необходимо всего-лишь вставить одну строку кода в код своей раскладки.

Также я сделал что-то типо слабого консольного TypingStatistics на основе этого:

×1
jpg

В итоге, пройдя извилистый путь, 13 августа 2019 закончил делать программу и всю сопутствующую машинерию, и опубликовал результат в репозитории klavarog/heatmap.

Затем я поставил эту программу в автозапуск, чтобы она собирала статистику пока я работаю. Начиная с какого-то момента я перестал это делать, так что статистика есть только старая, без новой. Думаю надо бы переписать этот проект на Rust, и сделать его так, чтобы можно было и для СК замерять всю аналогичную статистику.

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

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

#2Кладенец

7 сентября 2019 проходил Moscow Maker Faire, где Волька вместе с Suenot'ом представляли свои клавиатуры. Так как мне в тот момент повезло находится в Москве, я решил не упускать такой шанс и пришёл наконец встретиться вживую. Заодно потыкался в тогдашнюю Волькину новую клавиатуру Кладенец:

×1
jpg

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

Затем я пришёл к мысли, что хочу попробовать научиться печатать на Кладенце. И 15 сентября Волька подарил мне самый первый экземпляр, и я начал учиться:

×2
jpg

Очень подробно обо всём процессе обучения, мыслях и информации можно почитать в канале в телеграме @kladenets_zorax.

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

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

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

Через 15 дней, 30 сентября 2019 на Кладенце достиг скорости 100 зн/мин в обычном режиме на клавогонках, одной рукой!

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

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

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

×3.5
png
×3.3
png

Ещё я придумал аккордовую клавиатуру, которая состоит из 5 клавиш, но при этом реализует полноценный нумпад — Нумкорд:

×2.8
png

И ещё придумал визуализацию аккордов:

×1.7
png

В итоге я достиг скорости почти 300 зн/мин в словаре «Соточка» на Кладенце одной рукой, и сейчас уже на нём печатаю очень редко.

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

#2Покупка Moonlander

В июле 2020 года через неофициальные источники, ещё до официального объявления, я узнал что ZSA выпустили эту новую клавиаутуру. Почитав и подумав, я решил заказать. Клавиатура была намного лучше Ergodox и я наконец смог избавиться от проблемы двоения клавиш.

Мне повезло: я стал одним из первых, и 3 сентября 🍁 2020 года клавиатура была уже у меня. Это стало вдохновением чтобы взять и переделать всю мою раскладку с учётом кучи идей, и переучиться на неё.

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

#2Набор скорости

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

Все рекорды можно более подробно посмотреть в моих аккаунтах на клавогонках: optozorax, ergozorax, у меня статистика открытая.

ДатаΔtРекордКомментарий
~июнь 201600Начал обучаться слепой печати в VerseQ
27 июня 2016~месяц139Пришёл на клавогонки
10 июля 201613 дней282-
10 июля 20160 дней303-
8 августа 201629 дней406-
19 апреля 20178 месяцев, 11 дней508-
17 февраля 20189 месяцев, 29 дней566Последний рекорд на слим-клавиатуре
19 февраля 20182 дня-Получил эргодокс
3 марта 201812 дней462Первый рекорд на эргодоксе
5 марта 20183 дня570Побил рекорд на слиме
31 июля 20184 месяца, 26 дней604-
31 июля 20181 год, 3 месяца, 12 дней604В этой строчке разница времени считается от рекорда 508
7 января 20201 год, 5 месяцев, 7 дней718-
3 сентября 20207 месяцев, 27 дней-Получил Moonlander

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

Для понимания такой скорости печати относительно чего-то другого я делал такие замеры:

Вид деятельностиСкоростьНа ком проверено
Чтение1800Я и мой друг
Разговор размеренным темпом без пауз1200Я и мой друг
Написание текста ручкой160Я
Написание текста на смартфоне с сенсорным экраном, стандартным размером, без Т9 и без свайпа150Я

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

#Скорость

То что я быстро печатаю, и совершенствую свой навык — это тоже важная часть раскладки и вообще моего ощущения клавиатуры. Напоминаю, что на русском мой рекорд 718 зн/мин. Если учитывать рекорды из словаря Тексты 0-1 сложность, то 755 зн/мин. Поэтому здесь я расскажу плюсы и свойства скорости.

#2Не зависит от клавиатуры или раскладки

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

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

#2Это приятно и удобно

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

Скорость ощущается таким же важным фактором в удобстве работы с клавиатурой, как прямые ряды, или вся моя раскладка. Хотя, она не настолько важна: я бы смог прожить без скорости, но вот без своей раскладки — нет.

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

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

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

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

#2Когда приходится печатать медленно

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

Также я не могу быстро рефакторить текст на телефоне.

Аналогично дискомфортно я себя ощущаю во время написания чего-то на бумаге ручкой. Поэтому всякие сочинения для всяких литератур я в первую очередь писал на компьютере, а лишь затем переносил в тетрадку (вот бред!). И это было ещё до того как я научился десятипалу. Видимо тогда, на динамике, у меня была скорость около 200-300 зн/мин, а это уже в 1.5-2 раза отличается от скорости на бумажке.

#2Путь получения скорости тоже приятен

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

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

#2Скорость и безошибочность

Чем больше скорость печати, тем проще не совершать опечатки. Это хорошо заметно в клавогонках: когда я печатал под 400-500, у меня было 2-3% опечаток. Когда же я начал печатать 600-700, то процент моих опечаток стал около 1.5%.

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

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

#2Смещение кистей

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

Они смеющатся не настолько сильно, как смещается кисть при нажатии Backspace на СК. У меня кисти смещаются намного ближе.

Это можно рассмотреть на примере сочетания СЫЙ на ЙЦУКЕН, которое отрабатывается в 10 упражнении Хруста. Это сочетание можно нажать перекатом, тремя пальцами. Но нажимать это очень неудобно ввиду стаггера СК, которое ещё дополняется сложным направлением. Поэтому обычно это сочетание на СК нажимается побуквенно, или по две буквы.

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

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

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

#2Автоматизм

Для тех кто не знает как работает скорость, объясняю: я не сверх-человек, который обладает сверх-рефлексами, сверх-вниманием и вообще чем-то особенным, скорость работает не так. Скорость работает за счёт того что мозг обучается быстрее совершать наиболее частые движения за счёт автоматизма.

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

Тоже самое с печатью. Что интересно, количество усилий, требуемое для печати, всегда одно и то же. Когда я печатаю на скорости 700, я прикладываю то же самое число усилий, которое я прикладывал, когда печатал 500, со средней 400. И я прикладываю то же самое число усилий, которое прикладывал, когда печатал со скоростью 300, со средней в 250.

Набор скорости — это больше про то как обучить мозг моторному навыку, а не про собственно печать.

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

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

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

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

Что интересно, эти два принципа также применимы к мышцам.

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

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

Именно поэтому десятипал более близок к истине, чем динамические зоны.

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

#2Большие сообщения

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

#2Скорость и слои

Мне кажется что нельзя быстро печатать, когда что-то, от чего зависит скорость, у тебя находится в слое. Например, Shift, Ъ в слое, или Ctrl+Backspace. Мне кажется тут всё дело в простоте развития автоматизма.

Возьмём в качестве примера Ctrl+Backspace. Раньше он у меня находился в слое, который нажимался левым мизинцем, а сама клавиша была на правом указательном.

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

  • То я держал слой дольше положенного, и лишние клавиши нажимались в слое, а не без него
  • То я наоборот не нажимал слоефикатор раньше времени, и вместо Ctrl+Backspace нажималась буква.

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

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

#Про Moonlander

#2Форма клавиатуры

#3Наличие цифрового ряда

Для начала цифровой ряд — это верхний ряд на СК, в котором находятся цифры, и препинаки при зажатии Shift'а.

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

×1.5
jpg

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

Люди говорят, что до цифрового ряда им далеко тянуться, а препинаки и числа в слое находятся очень близко. Хотя, например, вроде как, для среднего пальца цифровой ряд находится в шаговой доступности, без смещения кисти.

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

×2.4
png
Эта раскладка на KLE

Вот даже есть видео про этот подход:

Я же в свою очередь, очень не люблю нажимать клавишу Shift на скорости, соответственно мне и не будут нравиться нажатия слоефикатора.

Хотя, наверное, тем, кто уходит с СК, и никогда не пробовал Дворак для программистов, без разницы будут символы в слое или с зажатым Shift'ом. Для них же все символы набирались с Shift'ом, а тут то же самое, только Shift другой, а символы ближе.

А я, как человек, привыкший к символам без Shift'а на Двораке для программистов, уже не могу отказаться от этого удобства. Плюс мне кажется, что на скорости пользоваться цифрорядом намного проще.

👀 Обратите внимание
Я использую цифроряд скорее не для цифр, а больше для препинаков.

Так что если найдётся программист со скоростью >600 зн/мин, который не обладает цифрорядом, то мне будет очень интересно послушать его мнение.

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

📖 Принцип
Я предпочитаю клавиатуры с цифровым рядом.

#3Два столбца для мизинца, три для указательного

Когда люди смотрят на правильную клавиатуру, они видят что она не стандартная, а значит не понимают как стандартная раскладка может поместиться в эту клавиатуру. Очень яркий пример — люди хотят получить третий столбец для мизинца, чтобы якобы вместились клавиши ЭХЪ и Enter. То есть, например, моя клава с третим столбцом для мизинца выглядела бы следующим образом:

×2.4
png

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

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

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

×2.3
png

📖 Принцип
Мизинцу нужно максимум 2 столбца, а указательному можно и 3.

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

#3Хороший тамб-кластер

×1
jpg

🛠 Термин
Тамб — большой палец. Калька с английского thumb. Используется это слово, потому что оно короче «большой палец». 4 символа vs 13.

🛠 Термин
Тамб-кластер — это область клавиатуры, которая нажимается тамбом.

📖 Принцип
Я выбираю клавиатуру, которая имеет как минимум 3 клавиши на каждый тамб. На мунляндере у меня 6 клавиш на каждый тамб.

❌ Неадекватность СК для десятипала
Отсутствие тамб-кластера.

В мунляндере он хорош по нескольким причинам:

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

#3Внешние тамбы

Вспоминаем ту же Corne:

×1.5
jpg

Или давайте посмотри на другую популярную клавиатуру Lily58:

×2.2
jpg

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

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

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

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

#2Сравнение с Ergodox EZ

×2.8
jpg

Сравнивать буду с последней моделью Ergodox EZ.

Плюсы:
  • Тоньше в 2 раза.
  • Флэш-памяти 256КБ вместо 32КБ.
  • Процессор на архитектуре ARM вместо AVR.
  • Подсветка работает у всех клавиш.
  • Тамб-кластер получше. В эргодоксе он просто копипаста с Kinesis Advantage, и на нём есть клавиши, которые тамбом особо и не нажмёшь.
  • На каждой половинке всего одна нога для настройки высоты вместо трёх.
  • Есть чехол для переноски.
  • Wrist Rest'ы складываются под клавиатуру и занимают очень мало места.
  • USB-C.
  • Все кейкапы не из тамб-кластера имеют размеры 1×1. Благодаря этому удобно покупать другие кейкапы. В эргодоксе же зачем-то много кейкапов размера 1.5, и 4 кейкапа размера 2, из-за чего не так просто подобрать набор.
Минусы:
  • Цена.
  • Невозможность выбрать: пустые кейкапы, заказ вообще без кейкапов, или без свитчей.
  • Ограниченный выбор свитчей при заказе, нету Cherry MX Silent Red RGB.
  • Если вместо треугольной клавиши поставить что-то другое, то будет не очень красиво выглядеть.
  • #2Удобство транспортировки

    Кидаю респект компании ZSA за то как они отнеслись к комплектации и вообще проектировке мунляндера. Если посмотреть на официальный сайт, то видно, что в комплекте идёт чехол, а подставки под руки сгибаются под клавиатуру.

    Также огромнейший плюс мунляндера — у него всего 2 ножки. В отличие от эргодокса, у которого 6 ножек. И если вы переносите эргодокс, то вам надо настраивать все 6 ножек, синхронизировать их с собой, чтобы клава не шаталась. Этим невозможно пользоваться. А на мунляндере ножку поставил и всё. Далее остаётся только поставить тамб-кластер в соотетствии с ножкой, и готово, клава идеально стоит.

    И ещё одна приятная мелочь — на проводах установлена липкая лента, при помощи которой можно скручивать и фиксировать длину провода.

    Посмотреть как настраивается мунляндер можно в этом видео:

    Хоть мунляндер и огромный, но благодаря тому как он сделан, он крайне удобен в транспортировке. И да, так как я хожу работать в офис, мне всегда приходится его таскать с собой, на работу и обратно домой. Меня это устраивает, и я не собираюсь покупать вторую клавиатуру.

    #Мои физические настройки

    Клавиатуру можно модифицировать не только программистически, но ещё и физически. И в этой секции расскажу как раз о своих физических настройках.

    #2Прозрачные пустые кейкапы

    ×2.3
    jpg
    ×1.6
    jpg

    📖 Принцип
    На правильной клавиатуре должны быть пустые кейкапы.

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

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

    📖 Принцип
    На моей клавиатуре не должен печатать никто, кроме меня.

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

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

    А кейкапы у меня именно прозрачные, чтобы подсветку лучше было видно. И действительно лучше видно! Купил самые дешёвые, на алишке, по 70р за 10 штук. Есть какие-то дорогие из америки, но мне пока и так норм.

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

    Ссылка на aliexpress: прозрачные кейкапы.

    #2Подсветка

    #3В общем

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

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

    #3Подсветка слоя

    ×1
    jpg

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

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

    ×1
    jpg

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

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

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

    Источник

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

    💡 Идея
    Можно вставить один RGB светодиод и оргстекло, и сделать всё так, чтобы этот один светодиод освещал всё дно клавиатуры. Тогда он будет виден даже боковым зрением.

    #3Подсветка зон

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

    ×1
    jpg

    #3Тепловая карта

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

    Источник

    #3Объяснение на основе подсветки

    Также ещё есть видео, где при помощи подсветки я объясняю как у меня работают некоторые клавиши, связанные с Shift'ом:

    #2Звуки

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

    В частности у меня стоят звуки на:

    • Переключение языка.
    • Нажатие клавиши выключения программы в консоли, и скриншота.
    • Включение слоя в режиме TG.
    • Нажатие клавиши для смены метода переключения языка.

    Почти все эти звуки можно увидеть здесь:

    Источник

    А ещё по дефолту есть звук при включении:

    Источник

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

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

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

    Источник

    #2Переключатели, их смазка

    Изначально я купил клавиатуру с переключателями: Cherry MX Brown RGB. Они довольно шумные, и по ощущениям я не почувствовал никакой особой тактильности, особенно когда печатаю на скорости. Плюс мне тактильность и не нужна, ибо я предпочитаю плоские клавы.

    Благо в этой клавиатуре есть Hot-Swap!

    🛠 Термин
    Среди клавиатур, Hot-Swap означает, что переключатели можно заменить без перепайки:

    ×1
    jpg

    Поэтому я сразу зашёл на алишку и заказал переключатели Cherry MX Silent Red RGB. Я взял 100 штук, сразу с запасом, и это обошлось мне в 5к рублей.

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

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

    Также дополнительно я заказал смазку и так называемый Film — штуку, которая ставится между половинками свитча, чтобы свитч был тише. Ещё купил инструмент для разборки свитча за 700р.

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

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

    Источник

    А вот здесь я вставил парочку смазанных свитчей в клаву:

    Источник

    Печать текста на полностью смазанных сайлент редах:

    Источник

    Так что если вас интересует тишина при наборе на клавиатуре, то первое что вы должны сделать — это купить смазку и смазать. Готовьтесь что это будет долго.

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

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

    ×1
    jpg

    Ссылки на всё что я покупал:

    #Раскладка

    #2Зоны

    ×2.3
    png

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

    Здесь цветами показаны зоны — какой палец какую клавишу должен нажимать согласно десятипалу. Тёмным цветом показаны клавиши домашней позиции, то есть где пальцы находятся по умолчанию.

    Видно, что больше всего клавиш сначала у указательного, затем мизинца, затем большого пальца.

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

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

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

    Так как я печатаю десятипалом, то у меня каждый палец нажимает строго те зоны, что ему предназначены.

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

    #2Общие принципы проектировки раскладки

    #3Левая рука и мышь

    📖 Принцип
    Те вещи, которые вероятнее всего пригодятся при использовании мыши, должны лежать на левой руке.

    Так как у меня клавиатура разделена на две половинки, то у меня есть чёткое разделение что на левой руке, а что на правой.

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

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

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

    Далее каждая отдельная клавиша, которая должна будет лежать на левой руке будет рассмотрена отдельно.

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

    #3Декомпозиция

    Чтобы объяснить этот пункт, возьмём в качестве примера клавишу Ctrl. У меня на клавиатуре она чаще всего используется в виде Ctrl+Стрелочки, и в виде хоткеев, которые расположены на основном слое и в других слоях. Также эта клавиша используется сама по себе для выделения мышью.

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

    Это воровство использований и вынесение их отдельно я и называю декомпозицией. Если бы я не совершил эту декомпозицию, то моя раскладка не сильно бы отличалась от СК, и мне бы пришлось размещать Ctrl и прочие модификаторы в максимально удобном месте, так как он очень частый.

    За счёт такой декомпозиции я могу делать раскладку значительно более удобной для себя, экономя при этом самые лакомые места.

    #3Мыслетопливо

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

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

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

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

    Например, давайте сравним хоткей Alt+Tab и безусловное переключение в окна. Особенность Alt+Tab такова, что он хранит в стэке последние использованные программы, поэтому когда ты хочешь переключиться в браузер, тебе надо помнить какие программы ты открывал до этого. И, конечно, помнить это невозможно, и у тебя постоянно совершаются ошибки что ты перешёл не в ту программу. Ещё одной проблемой является то, что при нажатии Alt+Tab, нужно смотреть на экран, и смотреть какую ты программу выбираешь чтобы переключиться (ибо невозможно помнить что ты там посещал, чтобы нажать сразу Alt+Tab Tab Tab).

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

    Если сравнивать Alt+Tab с безусловным переходом, то Alt+Tab потребляет очень много мыслетоплива, а ещё во время своего использования требует смотреть на экран, думать что тебе надо, вспоминать иконку, парсить иконку итд.

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

    Поэтому я отказался от Alt+Tab полностью в пользу безусловного перехода. Хоткеи для него будут показаны на фиолетовом слое.

    И по этой же причине я считаю правила шифтов и пробелов неудачными.

    #3Логика дороже трёх процентов

    📖 Принцип
    Если стоит выбор между двумя решениями, положительные характеристики одного из которых обоснованы логичной идеей, а другое обосновано подсчётом статистики, и увеличивает какие-то характеристики на 3%, то я предпочту выбрать то что обосновано логическим принципом.

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

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

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

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

    #3У каждого своя раскладка

    📖 Принцип
    В области правильных клавиатур не может быть понятия «стандартная раскладка», каждый должен делать свою раскладку сам.

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

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

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

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

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

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

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

    #3Оверинжиниринг

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

    При проектировании раскладки есть соблазн создать сразу идеальную раскладку, всё продумать, и заставить себя пользоваться какими-то функциями.

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

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

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

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

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

    #3Нелюбовь к модификаторам

    📖 Принцип
    Вместо того чтобы помещать модификаторы Ctrl, Win, Alt в удобные места, я стараюсь помещать в удобные места слоефикаторы, которые будут включать слои, где уже будут находиться нажатые хоткеи с этими модификаторами.

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

    Знаете, на правильных клавиатурах, люди обычно размещают модификаторы на больших пальцах, и даже могут дублировать их на оба больших пальца, чтобы им удобно было зажимать хоткеи в своих любимых IDE.

    Мне эта идея не нравится по двум причинам:

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

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

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

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

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

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

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

    💡 Идея
    Этого принципа невозможно придерживаться сразу. Постоянно будут возникать какие-то новые хоткеи, которые надо вносить в раскладку. Чтобы автоматизировать этот процесс, можно написать программу, которая будет отслеживать все нажатия модификаторов, и записывать наиболее хоткеи в файл. Можно взять за основу то, на чём построена моя программа heatmap.

    #3Долой правые модификаторы

    📖 Принцип
    Долой правые модификаторы!

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

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

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

    ❌ Неадекватность СК
    Правые модификаторы.

    #2Про слои

    #3Обозначения слоя

    ×1
    png

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

    • Слоефикаторы с цветным кругом работают через MO.
    • А слоефикаторы с цветным квадратом работают через TG.
    • Если три раза нажать слоефикатор с кругом, то слой активируется в режиме TG.

    📖 Принцип
    Слой должен активироваться в режиме TG при тройном нажатии обычного слоефикатора MO. Это нужно для экономии места и мыслетоплива, чтобы не размещать отдельную клавишу для перманентного включения слоя где-то в другом месте.

    #3Выключение слоя

    ×2.3
    png

    📖 Принцип
    Выключение слоя должно быть на месте клавиши Esc.

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

    При помощи этой кнопки у меня выключается слой, если сейчас он был включён в формате TG.

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

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

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

    У меня по такому принципу сделаны все слои, кроме Game и языковых слоёв, потому что там нужен обычный Esc.

    #3Каждому слое — своя картинка

    Если вы взглянете на СК, где нанесены надписи на русском языке, то не зная клавиатуры, довольно сложно понять что на каком языке, и что при зажатом Shift'е нажимается.

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

    Пример, раскладка Коряги:

    ×1.5
    png

    Конечно, такие картинки раскладки крайне компактны, и напечатать их легко. Но мне такие картинки не нравятся совсем, потому что:

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

    Особенно этот подход становится неприменим, когда у тебя надо подписать комментарий к символу, или у тебя очень много слоёв. Именно поэтому я придерживаюсь философии:

    📖 Принцип
    Каждому слое — своя картинка.

    При этом, по идее, клавиши с зажатым Shift'ом и являются по сути отдельным слоем, но они отличаются только символом длиной 1, так что Shift'овый слой можно размещать вместе со всеми остальными. Он не будет так сильно шумить. У меня на картинках то что нажимается при зажатом Shift'е показано серым цветом в правом нижнем углу клавиши. Вы можете заметить, что некоторые хоткеи при зажатом Shift'е нажимаются в другие хоткеи — а это уже моя хитрость, я отслеживаю Shift и на этих клавишах отменяю его, чтобы хоткей нажался корректно.

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

    #3Слоефикаторы на большом пальце

    ×2.3
    png

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

    📖 Принцип
    Основные слоефикаторы должны быть на большом пальце.

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

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

    👀 Обратите внимание
    Надо думать о сочетаемости Shift и слоефикатора стрелок. Они либо должны быть на разных больших пальцах, либо на аккорде на одном большом пальце, либо на большом пальце и мизинце.

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

    Потом идёт фиолетовый слоефикатор — для включения слоя управления окнами.

    И ещё зелёный модификатор для управления браузером и с медиа-клавишами.

    Обо всех этих слоях будет сказано подробно далее.

    Раньше у меня красный и зелёный слоефикаторы находились на левом мизинце, в дальнем столбце, по историческим причинам, потому что на СК я сделал раскладку, где клавиша Mod была не левом мизинце.

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

    Также красный слоефикатор на левом мизинце хорошо сочетается с Shift'ом на левом тамбе, и стрелками на правой руке.

    #3Переключение языка

    ×2.3
    png

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

    Во время использования СК и динамического набора я переключал язык по Ctrl+Shift, так как сидел на винде. И было очень неприятно, когда у тебя это сочетание не прожимается и ns gbitim rfre.-nj ytgjyzny. abuy./ Jcj,tyyj ,jkmyj 'nj joeoftncz? rjulf ns yt cvjnhbim yf 'rhfy? f cvjnhbim njkmrj yf rkfdbfnehe? b nfrjq yfgbcfk njyye ntrcnf? f gjnjv cvjnhbim? b e nt,z dtcm ntrcn d такой белиберде. Благо существуют сервисы наподобие swopper. Надеюсь что вы знали об этом, и не переписывали эту тонну текста?...

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

    📖 Принцип
    Переключение языка должно быть на одной кнопке.

    ❌ Неадекватность СК
    Для всяких бесполезных Pause Break, Scroll Lock отдельные клавиши есть, а для переключения языка нету.

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

    • При нажатии некоторой клавиши 1, кнопка для переключения языка будет посылать Caps Lock
    • Для некоторой клавиши 2 будет Alt+Shift.
    • И так далее аналогично для Ctrl+Shift, Win+Space.

    У меня такие кнопки находятся в слое «на случай ядерной войны».

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

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

    • Переключает слой.
    • Отправлят хоткей для переключения языка.

    💡 Идея
    Другой вариант того, что можно сделать с языками — это сделать две отдельные клавиши ENG и РУС, которые безусловно переключают текущий язык на английский и русский соотетственно. Если сейчас стоит русский язык, то клавиша РУС ничего не сделает. И при таких клавишах можно даже не помнить какой сейчас язык в системе, ты просто каждый раз перед тем как печатать текст, нажимаешь клавишу языка, на котором будешь печатать, и не тратишь мыслетопливо на хранение языка в голове.

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

    Идея взята с клавиатуры Вольки — Кошки.

    #4Рассинхрон

    ×2.3
    png

    Также рядом с кнопкой переключения слоя есть хоткей Lang Sync. Он посылает сочетания для переключения языка в компьютер, но не переключает слои в клавиатуре.

    Данная клавиша нужна для устранения явления рассинхрона.

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

    ✨ Это красиво
    Клавиша для отправки хоткея переключения языка нажимается аккордом с клавишей полноценного переключения языка.

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

    Ещё одно сожаление — это текущий язык нельзя узнать внутри клавиатуры. Тоже снова придётся устанавливать какой-то софт, чтобы через костыли (а именно индикатор Scroll Lock) можно было его узнавать.

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

    Более подробно об этом всём можно почитать в lang_shift.

    Конечно, в большинстве случаев, клавиатура может автоматически менять язык у себя внутри, при нажатии Lang.

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

    #2Основной слой

    Итак, самый сложный и самый основной слой:

    ×2.3
    png

    Немного про цвета сейчас и в будущем:

    • Красный — те клавиши на обычной клавиатуре что не являются ни буквами, ни препинаками. Иными словами функциональные/управляющие клавиши.
    • Жёлтый — препинаки.
    • Синий — макросы, которые нажимают какой-то хоткей.
    • Зелёный — слоефикаторы.
    • Ярко-зелёный — модификаторы.
    • Фиолетовый — клавиши, которые оказывают эффект только на клавиатуру. Например: подсветка.
    • Белый — английские буквы.
    • Светло-голубой — русские буквы.
    • Серый — управление мышью.

    #3Аккорды

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

    🛠 Термин
    Аккорд — это почти одновременное нажатие нескольких клавиш, при этом порядок нажатия неважен. Более подробно на вики: Аккорд.

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

    Куда более сложные аккорды находятся на тамб-кластере, и тут нужно отдельное объяснение в виде картинки:

    ×2.3
    png
    Эта раскладка на KLE

    Клавиши обозначаются числами 1, 2, 3, 4, а аккорды обозначаются как сумма этих чисел. В целом, если посмотреть на картинку, логику расстановки аккордов можно понять — они находятся между всеми нажимаемыми клавишами.

    К аккордам я пришёл после Кладенца.

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

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

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

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

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

    📖 Принцип
    Аккорды должны быть только на нажатие нескльких клавиш одним пальцем, чтобы избежать синхронизационных проблем.

    По этой же причине я не использую такую фичу QMK, под названием Mod-Tap, потому что она как раз требует замедления и синхронизации пальцев.

    Плюс, так как QMK слаб в плане аккордов, мне пришлось написать собственную библиотеку для их реализации. Об этом подробнее смотрите в репозитории combo.

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

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

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

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

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

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

    💡 Идея
    Либо есть другой вариант — чтобы свитчи стали выпускать намного более мелкими, например 30% от их текущего размера — тогда можно будет разместить очень много маленьких клавиш, которые имеют площадь той части подушечки пальца, которым мы касаемся клавиатуры. И благодаря этому можно вместо аккордов тупо разместить много клавиш между текущими клавишами. Кстати, это тоже невероятное поле для исследований. На той площади, на которой сейчас размещаются эти огроменные клавиши, можно разместить очень много маленьких клавиш, с биграммами или автозаменами. Интересно будет посмотреть насколько увеличится скорость человека, печатающего на таких клавишах.

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

    💡 Идея
    Либо есть вариант сделать клавиши как с размерами 1x0.8 или 0.8x0.8 от текущих, потому что наши пальцы нажимают на клавишу не кругом, а эллипсом, и этот эллипс имеет примерно такие пропорции. С такими клавишами, цифроряд будет очень близко, и отпадёт необходимоть его убирать в клавиатурах типо Corne, Planck. Ведь при создании таких клавиатур как Corne, руководствуются логикой типо цифроряд далеко, и лучше все его клавиши засунуть в слой.

    Я когда-то делал даже концепт такой идеальной клавиатуры для себя:

    ×1
    png

    Видно, что тут высота клавиш составляет 80% от оригинальной, и все клавиши для мизинца — маленькие, потому что мизинец сам по себе маленький.

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

    #3Shift-кластер

    #4Shift

    ×2.3
    png

    Это очень важный пункт. И это ещё одна жирнющая причина почему СК неадекватна для десятипала.

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

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

    ×1
    png

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

    1. Всегда нажимать Shift левым мизинцем, нажимая безымянным заблокированные клавиши.
      • Это плохо тем, что надо отучиваться от своей простой жизни, в которой безымянный палец нажимает всего 4 клавиши, и обучать в определённых ситуациях нажимать ещё плюс несколько клавиш. При этом вся рука смещается, и попадать в новые места становится сложнее.
    2. Использовать правый Shift только когда надо написать большие буквы, находящиеся в области левого мизинца.
      • Это плохо тем, что правый Shift используется очень редко, и будет бесить обучаться нажимать правый Shift только для некоторых случаев. А плюс из-за их редкости могут частенько случаться ошибки. В общем одна нервотрёпка.
    3. Научиться полностью соблюдать правило Shift'ов — нажимать Shift только той рукой, которая противоположна руке большой буквы, которая сейчас будет нажиматься.
      • Ну этот пункт просто живодёрский. Если он и даёт скорость или безошибочность, то её прирост колеблется в области 3%. А вот мыслетоплива и нервов он потребляет значительно больше.

    А теперь если мы поставим Shift на большой палец, то у нас никакие буквы не блокируются, и у нас ещё появляется такая фича, что мы можем НАБИРАТЬ КАПСОМ БЕЗ ИСПОЛЬЗОВАНИЯ КНОПКИ CAPS LOCK.

    👀 Обратите внимание
    Положение Shift'а надо синхронизировать с положением пробела — они должны быть на разных руках, чтобы было удобно набирать капсом.

    ❌ Неадекватность СК для десятипала
    Shift'а два, они на мизинцах, а не на большом пальце.

    📖 Принцип
    Shift должен быть один и на большом пальце левой руки.

    Я кстати никогда не понимал этой кнопки Caps Lock. Если надо напечатать одно слово большими буквами, то включать и выключать эту кнопку — это очень сложно ведь с точки зрения выработки привычки. Особенно когда ты быстро печатаешь. Лично я всю свою жизнь для написания капса использовал Shift, и никогда Caps Lock. Так что это ещё одна причина выкинуть эту клавишу из клавиатуры, и сделать себе жизнь ещё проще, сократив число режимов (плюс, иногда она случайно нажимается, и прям бесит).

    ❌ Неадекватность СК для десятипала
    Caps Lock не нужен, и на месте его могла бы размещаться более полезная клавиша, например Backspace.

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

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

    Далее в заголовке говорится что Shift должен быть один, потому что а зачем нужен второй, если одного на большом пальце достаточно? Плюс, это тема следущего пункта.

    #4Once Shift

    ×2.3
    png

    На картинке можно увидеть Once Shift, который нажимается аккордом. Данный Shift является одновременно: залипающим и одиночным.

    ✨ Это красиво
    Once Shift нажимается как аккорд с обычным Shift'ом.

    🛠 Термин
    Залипающая клавиша — это такая клавиша, которая при зажатии её с другими клавишами работает как обычный модификатор/слоефикатор, а при единичном её нажатии и отпускании, применяется к одной следующей клавише.

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

    Залипающий Shift — это очень удобная вещь, позволяет считать Shift буквой, а не модификатором. Отсюда и соотетствующие бонусы по удобству набора.

    Но это не совсем правда, и залипающий Shift от буквы отличает то, что если при зажатии держать Shift слишком долго, он применится сразу к нескольким клавишам: «ПРивет». Это синхронизационная проблема. Поэтому необходимо сделать так, чтобы даже если Shift держится на протяжении всего слова, он применялся только к первой букве. Это и есть свойство одиночности.

    Теперь Once Shift считается полноценной буквой, и может набираться таким же образом. И он полностью избавлен от синхронизационных проблем.

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

    Плюс, такой Shift может быть удобен при наборе camelCase, PascalCase имён идентификаторов.

    Обычный же Shift у меня совершенно обычный, без всяких залипаний и одиночности. Он нужен чтобы набирать КАПСОМ, выделять вещи мышкой.

    Некоторые люди делают залипающий неодиночный Shift на месте обычного Shift'а, и это становится проблемой в следующих случаях:

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

    📖 Принцип
    Я использую отдельную клавишу для одиночного залипающего Shift'а для набора текста, и чтобы она не пересекалась с обычным Shift'ом.

    🛋️ История
    Изначально, как только я купил эргодокс, я сделал залипающий Shift. Но к одиночному залипающему Shift'у пришёл только в 2020 году, когда начал с нуля программировать раскладку для мунляндера.

    👨‍💻 Лайфхак
    Такую штуку можно реализовать без программируемой клавиатуры на QMK, через софт AHK, но я не знаю как, спрашивайте в чатике.

    #3Backspace-кластер

    ×2.3
    png

    ✨ Это красиво
    Все удаляющие клавиши располагаются близко друг с другом и на аккордах от Backspace.

    #4Backspace

    ×2.3
    png

    📖 Принцип
    Backspace должен быть близко. У меня он на большом пальце.

    Backspace очень частая клавиша. К сожалению корректная статистика утеряна, но я могу гарантировать, что у меня он находится в ТОП-10.

    Как я уже говорил, десятипалу не нравится, когда вы смещаете руку далеко от домашней позиции. Поэтому вредно ставить такую частую клавишу как Backspace так далеко от домашней позиции, как это делается на СК.

    Я поставил Backspace на большой палец левой руки. Но с тем же успехом его можно поставить на место Caps Lock, что я и сделал в своей первой раскладке на СК.

    #4Delete

    ×2.3
    png

    📖 Принцип
    Delete должен быть на левой руке.

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

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

    🛋️ История
    Раньше, на эргодоксе, у меня Delete и Ctrl+A лежали рядом, без аккордов.

    И из-за этого однажды на работе я случайно удалил все файлы в папке на гугл-диске к которому мне дали доступ. А я хотел нажать Ctrl+A и все их скачать.

    Попытки восстановить:

    • Кнопка «отмена» на всплывшем уведомлении об удалении упала с ошибкой.
    • Корзина пустая.
    • Поддержка гугла не смогла ничего восстановить.

    Уроки, которые я из этого извлёк:

    • Не ставить рядом кнопки Ctrl+A и Delete
    • При шэринге ссылки не давайте права на редактирования тому, кому они не нужны
    • Не пользуйтесь гугл-диском!!!
    • Лучше не работать когда ты спал 4 часа

    #4Ctrl+Backspace

    ×2.3
    png

    📖 Принцип
    У меня есть отдельная клавиша для Ctrl+Backspace.

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

    Ctrl+Backspace иногда удобнее обычного Backspace, потому что часто ошибка в слове происходит не в последнем символе, а в середине. И стирать Backspace'ом три символа — уже долго, ибо нажатие одной и той же клавиши три раза долго само по себе. А потом ещё надо прочитать что ты написал, понять где ошибка, как исправить, и всё это на скорости. Да это дико медленно! И потребляет кучу мыслетоплива. И как бы парадоксально это не звучало, чаще всего быстрее стереть всё слово, и напечатать заново. На стирание слова тратится одно нажатие, а печатается заново очень быстро, ибо тренировка печати 99% времени занимает именно быстрый набор слов.

    Видно, что при быстром наборе Ctrl+Backspace хорошо экономит мыслетопливо по сравнению с обычным Backspace.

    Главное чтобы нажатие Ctrl+Backspace было настолько просто, как и нажатие одной клавиши. В данном случае у меня он стоит на аккорде-двукнопии. И благодаря этому нету синхронизационных проблем, потому что с частыми клавишами проблемы синхронизации очень болезненны. Плюс я уже объяснял на примере этой клавиши какие у меня были проблемы, когда эта клавиша была в слое.

    #3Хоткеи

    #4Копипаста

    ×2.3
    png

    📖 Принцип
    Отдельные клавиши для копипасты и выделения всего.

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

    Сейчас почти во всех программах копипаста спокойно работает на Ctrl+C/V. Но некоторые особо одарённые программы (терминал, emacs) на эти хоткеи делают что-то совсем другое, и это неприятно. Благо возможно настроить. Я пользуюсь только терминалом, поэтому настроил его: в нём можно переназначить копипасту на Ctrl+C/V, перенеся убийство программы на другое сочетание. Я выбрал Ctrl+J. Здесь написано как это можно сделать. (Но особо одарённого докера это не берёт.)

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

    Также, можно заметить, что у меня при зажатом Shift'е на копипасте добавляется Ctrl+A + ..., что означает, что при зажатом Shift'е, и при нажатии на хоткей Ctrl+C, сначала перед ним делается Ctrl+A, а затем нажимается собственно сам Ctrl+C. Это позволяет мне за два нажатия выделить весь текст и скопировать его. Аналогично с Ctrl+A + Ctrl+V, и Ctrl+A + Ctrl+X. И копирование всего и вставка вместо всего — невероятно частые вещи, особенно когда из одного маленького поля копируешь в другое маленькое поле.

    ✨ Это красиво
    У меня Ctrl+X находится на аккорде между Ctrl+C и Ctrl+V.

    #4Ctrl+Z

    ×2.3
    png

    Esc и Ctrl+Z выполняют похожие функции — отмена.

    ✨ Это красиво
    Благодаря чему мне кажется что очень красиво разместить Ctrl+Z симметрично Esc.

    📖 Принцип
    Ctrl+Z должен располагаться симметрично Esc.

    Также при зажатом Shift'е у меня на месте Ctrl+Z нажимается хоткей «повторить отменённое действие» — Ctrl+Y. Очень удобно, когда нажал слишком много отмены.

    #4Ctrl+S

    ×2.3
    png

    Это может показаться диким, но данное сочетание занимало 1.5% всех моих нажатий на клавиатуре. Видимо я очень нервный, раз так часто сохраняю файл. Чтобы успокоить свои нервы, я решил вынести её на основной слой.

    Плюс в последнее время она мне пригождается в расширении Rust Enhanced. Когда я сохраняю файл, запускается проверка кода компилятором, и прямо в Sublime Text 3 выводятся ошибки. Мне кажется это намного удобнее, чем когда ошибки подчёркиваются и раздражают во время написания кода в IDE.

    #4Скриншот

    ×2.3
    png

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

    Согласно моему внутреннему ощущению, можно прмерно сказать что в 95% случаев нужен именно скриншот области, в 4.9% скриншот окна, и в 0.1% скриншот всего экрана. Именно поэтому у меня в основном слое лежит клавиша для скриншота области. И по этой причине у меня клавиша Print Screen присутствует только на слое на случай ядерной войны, то есть для этих 0.1% случаев.

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

    📖 Принцип
    На левой руке и в удобном месте должна быть клавиша для скриншота области.

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

    На Windows я использую стандартное сочетания для снятия области — Win + Shift + S. На Linux я скачал программу flameshot, и поставил туда хоткей, который вызывает команду flameshot gui.

    #4Остальные хоткеи

    ×2.3
    png

    Тут особо ничего интересного нету. Рассказываю просто чтобы было понятно.

    • Ctrl+J убивает текущую программу в консоли.
    • Ctrl+/ в Sublime Text 3 комментирует выделенный участок кода.
    • Ctrl+D используется в Sublime Text 3 для создания множественного курсора из текущего выделения.
    • Win+L блокирует компьютер. Обычно используется в офисе во время ухода на обед.
    • Klavogonki NEXT переходит в следующий заезд на клавогонках. Данная клавиша просто нажимает: Tab Tab Ctrl + →.

    #3Препинаки

    #4Пробел

    ×2.3
    png

    У меня пробел обозначается как .

    По поводу того на какой руке должен находиться пробел — я не знаю, на правой вроде как норм. Раньше я нажимал пробел левым большим пальцем — потому что играл в игры, но затем при создании своей первой раскладки для СК переучился нажимать его правой, чтобы не было коллизий с Shift'ом, который на тогда был на левом Alt. И это сохранилось до сих пор, также это позволяет НАБИРАТЬ КАПСОМ С ЗАЖАТЫМ SHIFT'ОМ И С ПРОБЕЛОМ. Для игр у меня есть отдельный слой, где пробел находится на левой руке.

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

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

    И эта грубейшая ошибка СК приводит людей к тому, что с большим пальцем делать особо нечего. Поэтому они придумали ещё одно живодёрское правило — правило пробелов. Оно по аналогии с правилом Shift'ов заставляет тебя нажимать пробел противоположной рукой от последней нажатой клавиши. Соответственно к нему применима аналогичная критика правила Shift'ов.

    Кстати, так как некоторые не печатают пробел двумя пальцами, то для них десятипал на СК формально нельзя называть 10-пальцевым методом.

    ×1.3
    png

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

    Но на самом деле это не так страшно, и все скоростные наборщики нажимают пробел одним пальцем, и всем норм. Я, как наборщик со скоростью 700, полностью их поддерживаю. Пробел не представляет никаких проблем. Большой палец силён.

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

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

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

    📖 Принцип
    Пробел должен быть один.

    #4Запятая

    ×2.3
    png

    На стандартной раскладке ЙЦУКЕН запятая нажимается как Shift + ., и это очень больно. Запятая в тексте встречается очень часто, чаще некоторых букв, и каждый раз нажимать Shift, и встревать в проблемы синхронизации — плохо. Поэтому я считаю, что запятая должна нажиматься без Shift'а, наравне с точкой. Кстати именно так сделано в раскладке Русская Машинопись.

    📖 Принцип
    Запятая должна нажиматься без Shift'а, как и точка.

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

    📖 Принцип
    По простоте нажатия должна быть сначала запятая с пробелом, затем без пробела. Допускается запятую без пробела поместить даже на нажатие Shift + ,, так как это будет нажиматься очень редко.

    #4Точка

    ×2.3
    png

    Клавиша . + ⎵ + nextshift произносится как точка с пробелом с автошифтом. При её нажатии посылается сначала точка, затем пробел, а затем в клавиатуре записывается информация, что к следующей клавише нужно применить Shift (автошифт). Это нужно для печати текстов на естественном языке, где чаще всего точка ведёт себя именно так. Особенно это приятно ощущается на клавогонках, когда ты нажимаешь одну клавишу, а она делает эти три действия. Это реально ускоряет.

    📖 Принцип
    Для быстрой печати у меня есть клавиша, которая нажимает точку с пробелом и автошифтом.

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

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

    ✨ Это красиво
    Клавиша . + ⎵ + nextshift(точка с пробелом с автошифтом) нажимается как аккорд точки и пробела.

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

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

    📖 Принцип
    Базовые текстовые препинаки должны быть в одинаковых позициях для русского и английского языков.

    #4Остальные препинаки

    ×2.3
    png

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

    Тут важно отметить, что препинаки в цифроряде нажимаются без Shift'а, и числа — с Shift'ом. Это сделано потому что препинаки в программировании и тексте всё-таки встречаются намного чаще, чем числа, а нажатие Shift'а создаёт неудобства, так что лучше их минимизировать.

    Раскладка, которая для русского языка просто выносит все препинаки в цифроряд без нажатия Shift'а, а числа делает с нажатым Shift'ом называется Русская машинопись. То же самое делает раскладка Programmer Dvorak для английского языка и раскладки Дворака.

    🛋️ История
    До перехода на мунляндер, у меня препинаки были различны как для русского, так и для английского языков. Я, конечно, старался расположить всякие !?* на одинаковых местах, но этого было недостаточно, чтобы не спотыкаться каждый раз об другие препинаки. Особенно мне не хватало символа ` в русском языке, чтобы использовать его в Markdown. А переключение языка неприятно, хоть и на одну клавишу.

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

    📖 Принцип
    Все препинаки должны нажиматься из любого языка.

    ✨ Это красиво
    Особенно хочу здесь отметить символ _ (положение на левом мизинце), который нажимается без Shift'а, и который симметричен -. Такая симметрия очень красива, и я его невероятно часто использую для набора snake_case идентификаторов в программировании.

    Также у меня не стоит Shift'ового варианта на _ и на -, чтобы можно было набирать: SCREAMING_SNAKE_CASE и КАПС ЛОК С ДЕФИСОМ — ЭТО ХОРОШО не отпуская Shift'а.

    📖 Принцип
    _ должен быть отделён от -, и обе клавиши должны нажиматься без Shift'а, и на себе не иметь других вещей, которые нажимаются с Shift'ом.

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

    Также важно заметить, что из-за отсутствия таба, Shift'а и Caps Lock весь второй столбец у мизинца становится свободным. Куда я разместил ещё препинаков. Про Shift и Caps Lock понятно, а Tab я утащил в слой, и об этом будет сказано при рассмотрении красного слоя.

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

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

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

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

    #4Цифры

    ×2.3
    png

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

    Когда я поставил эту раскладку, я принял такие цифры, и переучился под них. Не так это сложно, так что норм.

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

    Также очень важной фичей такого расположения цифр становится то, что самые частые цифры: 0, 1, 2, 9 находятся на указательных пальцах. И вот это реально удобно! Знаете, нажимать 1 и 0 мизинцами в самых далёких местах — такое себе удовольствие.

    Так что я оставил такие же цифры, как в раскладке Programmer Dvorak, и для русского тоже. Пользуюсь до сих пор, и пока не вижу причин переучиваться.

    📖 Принцип
    Цифры нажимаются с зажатым Shift'ом. Важно, чтобы самые частые цифры нажимались более сильными пальцами, а не мизинцами.

    💡 Идея
    \1 Есть ещё вариант создать отдельный слой для цифр — и расположить их как в нумпаде, или лучше чем в нумпаде, например, вот так:

    ×2.3
    png

    Про различные виды расположения цифр можно почитать на нашей вики.

    #2Языки

    У меня прямо в клавиатуре прошиты нестандартные раскладки для русского и английского языков.

    #3Фонетическая раскладка

    🛠 Термин
    Фонетическая раскладка — это такая раскладка, которая стремится расположить все буквы одного языка так, чтобы они были созвучны буквам другого. Например, существует английская раскладка JCUKEN — фонетическая от стандартной русской ЙЦУКЕН.

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

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

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

    #3Кастомные раскладки и модификаторы

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

    • На русском при зажатии модификатора клавиатура не такая же как на английском.
    • Человек привык нажимать все хоткеи на qwerty, но у него стоит кастомная английская раскладка.

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

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

    🖥 Техническая сторона
    Это уже решено в моём модуле lang_shift.

    #3Английский язык

    ×2.3
    png

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

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

    Так как точку и запятую я унёс на большой палец, у меня освободилось место в верхнем ряду у левой руки. Туда я передвинул клавиши Y и X под более удобные положения. Ещё у меня осталось 4 свободных местах, в одно из которых я засунул большую букву I, чтобы минимизировать нажатия Shift'а. А в другие свободные места засунул клавиши, которые делают из букв такие штуки: àáâã, которые пригодились мне один раз при катании итальянского на клавогонках. Хотел бы я туда поместить препинаки для программирования, но нельзя, ибо они должны быть одинаковы для русского и для английского, чтобы не спотыкаться об них. А на этих местах стоят вполне себе важные клавиши на русском языке, так что убрать их из русского нельзя.

    На английском я сейчас печатаю с максимальной скоростью около 550 зн/мин.

    По поводу самой раскладки дворака не знаю что сказать. Я особо английский не катал на скорость, и с этой точки зрения оценить его не могу. Также я не могу сравнивать его с QWERTY, ибо на QWERTY я печатал только динамикой, а это совсем другое.

    Насколько мне известно, раскладка дворака оптимизировалась чтобы максимизировать чередования, но по моим ощущениям, в двораке очень много перекатов, и это подтверждается реальными подсчётами, в нём их даже больше чем в ЙЦУКЕН, но меньше, чем в QWERTY. Пруф в таблице.

    #3Русский язык

    ×2.3
    png

    А вот этот язык я очень сильно катал на скорость, и мне есть что сказать.

    ❌ Неадекватность СК для десятипала
    Стандартная раскладка ЙЦУКЕН неверна для десятипала. Она плоха тем, что у неё самые частые клавиши расположены на указательных пальцах, согласно стандартным десятипалым зонам. А когда очень много букв набираются всего двумя пальцами — это очевидно замедление, так как остальные пальцы простаивают, хотя могли бы заниматься полезной работой.

    🛠 Термин
    ПНОП — последовательные нажатия одним пальцем.

    Очевидно, что когда один палец нажимает много клавиш последовательно, то он замедляет весь процесс. А в ЙЦУКЕН очень много ПНОП'ов на указательных.

    В какой-то момент я осознал что является ключом к скорости — ⭐Перекаты⭐.

    В TypingStatistics перекаты можно увидеть следующим образом:

    ×1
    jpg

    Когда чередования и ПНОП'ы выглядят вот так:

    ×1
    jpg

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

    Поэтому я начал с малого — переставил местами 2 буквы на ЙЦУКЕН. Я уже рассказывал про свои перестановки букв, напоминаю что они все старались максимизировать число перекатов.

    Сейчас я имею ЙЦУКЕН с небольшими модификациями, которые максимизируют перекаты, и на этом я достиг максимальной скорости 718 зн/мин на клавогонках. В специализированном словаре, который состоит исключительно из перекатных слов я достиг скорости 821 зн/мин.

    #4Ё

    ×2.3
    png

    У меня под эту букву выделена отдельная удобная клавиша. И я всегда пишу Ё, когда она присутствует. Отношусь я к этой букве так не по личным причинам, а по глобальным. Есть слова, у которых от наличия Ё меняется смысл: всё и все, и парсить этот смысл из контекста не очень приятно, а иногда и невозможно. Ё обязательно нужно писать, потому что иначе для слов еж, черный надо писать транскрипцию, которая говорит что там написано йож и чорный соответственно. А я не хочу, чтобы русский превращался в очередной английский с этими транскрипциями. Я как раз английский и ненавижу за транскрипции, и считаю что Прекрасный Глобальный Искусственный Язык Будущего 🇦🇶 обязан писаться также, как и произносится.

    📖 Принцип
    Я всегда пишу Ё.

    И поэтому с буквой Ё существует только два последовательных варианта:

    • Отказаться от неё полностью и писать йож, чорный, всьо.
    • Писать Ё там, где она произносится.

    Ещё у меня есть ощущение что в 21 веке люди так невзлюбили букву Ё, потому что кто-то подумал, что лучше ей будет располагаться в очень далёком месте, чтобы до неё было лень тянуться. Мне кажется, если бы Ё располагалась где-то в удобном месте, то на порядок больше людей использовали бы её, и она бы не попала в статус официально не обязательной буквы.

    ❌ Неадекватность СК
    Утащили Ё далеко!

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

    #4Ъ

    ×2.3
    png

    Этой букве тоже досталось много, ещё одна далёкая буква на мизинце, но хотя бы не официально не обязательная.

    Клавиатура Jian уважает эту букву настолько, что даже имеет в для неё специальный отросток в виде третьего столбца для мизинца:

    ×2.8
    jpg

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

    Обычно Ъ засовывают в слой. Но делать это не очень удобно по нескольким причинам:

    • Если надо набрать большой Ъ, то надо зажимать две клавиши! А если слоефикатор находится на той же руке, что и Shift, то это практически невозможно.
    • Если решать проблему двух слоефикаторов тем, что делать две кнопки в слое: маленький ъ и большой Ъ, то это вообще некрасиво, неудобно и несимметрично всем остальным буквам.
    • Если Ъ находится в слое, к которому имеет доступ английский язык, то это не очень красиво.
    • Нажать слоефикатор во время набора слова — очень медленно, как и нажать Shift во время набора слова. Вот цифры в слое, или большая буква в начале слова — это другое дело, но не в середине. Так что это невероятная проблема синхронизации.

    У меня же Ъ находится в аккорде, и легко нажимается с Shift'ом, не создаёт проблем синхронизации, и на практике я из-за него не замедляюсь.

    📖 Принцип
    Я не размещаю ни одну букву в слое из-за проблемы синхронизации. Даже самую редкую Ъ нельзя в слой. Зато можно в аккорд-двукнопие.

    #2Красный слой

    ×2.3
    png

    Красный слой — это слой для всего самого полезного, что не поместилось на основной.

    Сначала рассмотрим мелочёвку:

    • Tab и Shift+Tab я разместил в слое, потому что хотел сэкономить место на основном слое, чтобы там поместились все препинаки. Да и в целом хотелось чего-то нового.
    • Также ещё у меня лежит отдельный макрос для набора turbofish из раста. Очень часто пригождается.
    • Иногда пригождается макрос для набора #[]
    • Отдельная клавиша Ctrl+Enter чтобы удобно было отправлять сообщения во мессенджерах, ибо я люблю нажимать Enter для написания нового абзаца, и вообще писать большие сообщения в мессенджерах.
    • На левой руке на втором столбце мизинцев и указательных у меня лежат хоткеи для упрощения жизни в Sublime Text 3.

    #3F-клавиши

    ×2.3
    png

    Почему-то некоторые люди считают, что им нужна правильная клавиатура не только с цифрорядом, но ещё и с рядом для F-клавиш. С вероятностью 99% вам это не нужно. Отдельный ряд для F-клавиш не нужен, если можно их положить в самый ближайший слой на цифроряд. Если боитесь за хоткеи, то можно сделать отдельный слой с хоткеями на эти клавиши. Всё просто.

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

    📖 Принцип
    F-клавиши хорошо ложатся в слой на место цифр.

    #3Скобочки

    ×2.3
    png

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

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

    📖 Принцип
    Новые скобочки я всегда набираю парой.

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

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

    📖 Принцип
    Скобочки должны располагаться так, их пару было удобно нажимать перекатом от края к центру.

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

    Также к сожалению я испытываю проблему синхронизации со скобочками. Часто бывает так, что я хочу набрать скобочку, затем какой-то символ, и не успеваю отпустить слоефикатор, и у меня нажиматся F-клавиша, либо клавиша перемещения. Особенно неудобно, когда случайно нажимается Pg Up/Pg Down. Поэтому я не очень люблю символы в слое, и советую помещать символы только в тот слой, где набираются другие символы.

    📖 Принцип
    Символы не должны быть в слое из-за проблем синхронизации.

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

    #3Стрелки

    ×2.3
    png

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

    ❌ Неадекватность СК для десятипала
    Далёкие стрелки, и по умолчанию их нету на домашней позиции.

    #4Home, End

    🛋️ История
    Изначально, я вообще не знал что это за клавиши такие: Home, End, и никогда их не использовал. Но затем, в 7 классе школы, у нас началось программирование, и наш учитель, во время того как мы пишем код, ходил и смотрел как мы это делаем. Когда он замечал, что люди для передвижения до конца строки используют стрелки, он говорил им обязательно нажимать End. И так он заставлял нас использовать эти кнопки, и ещё Home, Delete.

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

    Получается, что Home и End были для меня неизвестной необходимостью.

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

    📖 Принцип
    Home и End должны использоваться.

    #4Статистика

    Статистику я собирал со своей клавиатуры при помощи klavarog/heatmap, ссылка на статистику: https://t.me/klavaorgwork/154628.

    Частотность красного слоя: 17.04%.

    Клавиша включения красного слоя: 4.5%

    NamePercent
    Space8.13%
    Русская маленькая 'о'4.80%
    MO(4)4.50%

    Видно, что клавиша включения красного слоя занимает 4.5% от всех нажатий, и находится на третьем месте. Чаще нажимается только русская О и пробел. При этом, нужно отметить, что если зажимается клавиша включения красного слоя, то в этот момент может быть нажато много стрелок (Down + Down + ...). То есть включение красного слоя равносильно перемещению руки на стрелки, если бы стрелки были не в слое, а где-то далеко, как на СК.

    Частотность стрелок: 58.92% * 17.04% = 10.03%

    NamePercent
    Down20.83%
    Up18.51%
    Left10.73%
    Right8.85%
    Σ58.92%

    Частотность других клавиш для перемещения: 9.98% * 17.04% = 1.7%

    NamePercent
    End5.50%
    Home3.84%
    Page Up0.33%
    Page Down0.31%
    Σ9.98%

    Частотность стрелок с контролом: 14.78% * 17.04% = 2.52%

    NamePercent
    Ctrl+Left7.43%
    Ctrl+Right7.18%
    Ctrl+Up0.09%
    Ctrl+Down0.08%
    Σ14.78%

    Итого все клавиши для перемещения составляют 14.25% от всех нажатий на клавиатуре.

    #4Почему стрелки должны быть в слое

    Существует несколько способов куда можно поставить стрелки:

    1. В слой
    2. Раскидать их на разные руки на основной слой
    3. Положить их вместе в определённое место, куда рука обязательно будет смещаться с домашней позици.

    Пример для пункта 2:

    ×2.3
    png

    Пример для пункта 3:

    ×2.3
    png

    Раскладка Оптима:

    ×2.1
    png
    ×2.9
    png

    Начнём с рассмотрения, почему 2 пункт является не очень хорошим:

    • Стрелок много, и их особо некуда ставить, кроме как на мизинцы или на большие пальцы. При этом нужно учесть, что очень часто используются Стрелки + Shift, и Стрелки + Ctrl. И иногда бывают Стрелки + Shift + Ctrl.
    • Целых 1.7% нажатий составляют другие виды управления клавиатурой, которые всё-равно придётся засунуть в слой.

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

    • передвинуться на две строки выше
    • выделить с помощью стрелок текст
    • скопировать его
    • передвинуться на две строки вниз
    • вставить
    • передвинуться вбок
    • стереть
    • написать новый текст
    • готово.

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

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

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

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

    Для такого случая можно сделать две вещи:

    1. Чтобы стрелки были на левой руке, и где-то на левой руке был слоефикатор, чтобы их активировать
    2. Чтобы были дубликаты стрелок, которые созданы специального для этого случая
    3. Чтобы был слой специально для просмотра фильмов, где на левой руке будут и стрелки, и синхронизация субтитров, и настройка звука, и всё что хочешь.

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

    📖 Принцип
    Должен быть слоефикатор на левой руке, позволяющий нажимать стрелки одной рукой. Это нужно для мыши и перемотки фильмов/видео.

    📖 Принцип
    Стрелки должны быть в слое.

    #4Форма стрелок

    Итак, в основном существует два лагеря стрелок в слое. Первый лагерь — стандартные стрелки в форме перевёрнутой буквы T:

    ×1
    png

    Второй же лагерь использует плоские стрелки, формата 4×1.

    ×1
    png

    ✨ Это красиво
    Второй вариант красив своей симметричностью по отношению к нижнему и верхнему ряду.

    Видно, что второй вариант хорош во всём:

    • Home, Pg Up, Pg Down, End можно разместить симметрично стрелкам снизу.
    • Снизу от стрелок появляется место для стрелок с зажатым Ctrl'ом.

    Обоими этими свойствами не обладает первый вариант. Но первый вариант является знакомым, правда он знаком только расположением стрелок, но не всех остальных клавиш.

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

    Для тех кто не знал — если нажимать стрелки с контролом, то они перемещаются по словам. Стрелки с зажатым контролом во втором варианте это ещё один пример неизвестной необходимости.

    Можно возразить: зачем нужны стрелки с зажатым Ctrl'ом, если, собственно, можно зажать Ctrl? Тут возникает две проблемы:

    • А если сейчас выделяется текст, то чем нажимать Ctrl? Если уже зажат слоефикатор и зажат Shift. Тогда надо выносить кого-то на мизинец, либо нажимать это аккордом. И ещё надо находить для Ctrl удобное место.
    • А если нужно передвинуться всего несколько раз по словам, а потом по одному символу? Тогда надо отжимать и нажимать снова Ctrl. А как известно, необходимость зажимать клавишу на определённый промежуток времени сильно тормозит и чревато ошибками синхронизации.

    А когда имеется отдельные клавиши с уже зажатым Ctrl'ом, то чтобы их нажать единственное что нужно сделать — это просто нажать пониже. Всё. И таким образом можно невероятно быстро передвигаться по словам и по символам одновременно. Особенно это становится актуально при длинных именах в программировании. Или при редактировании текста проще 3 раза нажать влево с Ctrl'ом, чем 20 раз просто стрелкой влево, или чем зажимать стрелку влево, и высчитывать момент когда она разгонится и остановится.

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

    📖 Принцип
    Должны быть отдельные стрелки с зажатым контролом.

    Если хочется, то можно ещё сверху, на цифроряде разместить Ctrl+Home, Ctrl+End. Ctrl+Pg Up, Ctrl+Pg Down тоже можно, но это настолько частая комбинация, что мы о ней поговорим на зелёном слое.

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

    #4Стрелки с повтором

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

    Но даже если реализовать такую функцию прямо сейчас, то она не будет работать при зажатии такой клавиши: то есть при зажатии она сможет работать как обычная стрелка, медленно передвигаться, по одному символу в единицу времени, а не в 5 за единицу времени. А обычный QMK слаб для таких фич. Поэтому надо сделать фичу которую давно делал Волька в Кошкоклаве — собственный повтор внутри клавиатуры, а не на стороне ОС. Пока такое только в планах.

    #4Мизинец для стрелок

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

    Существуют стрелки в vim'е, которые не используют мизинец:

    ×2.3
    png

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

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

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

    Мизинцы могут быть сильными, нужно лишь немного практики. Я тоже сначала думал, что эти пальцы неспособны ничего нажимать.

    📖 Принцип
    Поэтому у меня стрелки полностью на домашней позиции, и мизинец в стрелках используется.

    #4Порядок стрелок

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

    • ←↓↑→
    • ←↑↓→
    • ←↑→↓
    • ←→↓↑
    • итд.

    Среди них нету какого-то особого различия, тут уже каждый выбирает по своему вкусу. Я же выбрал ←↑↓→ для правой руки, и у меня есть пара логических принципов, которым я обосновываю этот выбор.

    📖 Принцип
    Я считаю что кнопка вверх должна быть на среднем пальце.

    Эта стрелка должна быть именно на нём, так как он очень привык к этой кнопке во времена WASD, или во времена стрелок на СК.

    📖 Принцип
    У меня перемещение вбок располагается по краям, а перемещение вверх-вниз в центре.

    Просто потому что перемещение вбок как-то интуитивней, когда оно по бокам.

    #4Стрелки на левой руке, вместо правой

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

    ×2.3
    png

    🛋️ История
    До покупки мунляндера я больше 4 лет печатал со стрелками на правой руке, и тут я переместил их на левую руку, наверное мне было сложно переучиваться? Первое время да, у меня эти стрелки на подкорке уже лежали, а тут они неожиданно разместились на левую руку. Но в целом привык довольно быстро. Это тоже проще переучивания на перестановку букв.

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

    📖 Принцип
    У меня стрелки на левой руке.

    #2Зелёный слой

    ×2.3
    png

    Этот слой содержит всё что не поместилось в красном, и всё ещё может быть полезно.

    По мелочёвке:

    • Кнопка RESET — после её нажатия клавиатура входит в режим, при котором можно залить новую прошивку. Нажать эту клавишу удобнее, чем искать иголочку и тыкать её в маленькую дырочку, как это обычно делается на других устройствах.
    • Ctrl+1, Ctrl+2 — переместиться в первую группу вкладок или на вторую в Sublime Text 3.
    • Ctrl+Shift+P — в Sublime Text 3 и VSCode частая комбинация для чего-то полезного.
    • Alt+Pritn Screen — клавиша для снятия скриншота окна.

    #3Звук

    ×2.3
    png

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

    📖 Принцип
    Клавиши управления звуком должны быть на левой руке.

    #3Хоткеи для браузера

    ×2.3
    png

    Так получилось, что не только браузер имеет вкладки, но ещё и текстовые редакторы, терминалы, и много чего ещё. Поэтому хоткеи для управления вкладками могут быть актуальны среди множества программ. Данный набор хоткеев как раз и позволяет управлять вкладками независимо для множества программ. Причём для тех программ, где какие-то хоткеи работают не так, я настраиваю чтобы они работали именно так. Например, в Sublime Text 3 я сделал, чтобы Ctrl+T открывало новую вкладку.

    Список хоткеев:

    • Ctrl+W — закрыть текущую вкладку.
    • Ctrl+T — открыть новую вкладку.
    • Ctrl+Shift+T — восстановить предыдущую.
    • F5 — перезагрузить страницу.
    • Ctrl+F5 — перезагрузить страницу с очисткой кэша.
    • F6, Ctrl+C — перейти в адресную строку и скопировать адрес. Так как ссылки копируются постоянно, то это очень удобная вещь.

    Про хоткеи для перемещения по вкладкам вправо-влево хочется остановиться поподробнее. Есть хоткеи Ctrl+Tab и Ctrl+Shift+Tab, которые обычно переключает на вкладку вправо и влево соответственно. Но некоторые, особо одарённые программы, считают что эти хоткеи должны переключать вкладки в порядке их недавнего использования! Порядок недавнего использования это настолько же отвратительная и сложная в использовании вещь как Alt+Tab, так что от него надо отказываться, и уходить на безусловное перемещение по вкладкам.

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

    🛋️ История
    В своей первой раскладке для эргодокса, на зелёном слое у меня были кнопки для безусловного перемещения в 1, 2, 3, 4, 5 вкладку через Ctrl+Цифра, я их разместил, подумав что буду пользоваться, но в итоге так никогда и не воспользовался. И в новых итерациях их удалил. Это к слову о том, что не надо оверинжинирить.

    Однажды я обнаружил, что везде работают хоткеи Ctrl+Pg Up и Ctrl+Pg Down для перемещения по вкладкам влево и вправо соответственно, поэтому советую всем использовать именно их вместо Ctrl+Tab и Ctrl+Shift+Tab.

    📖 Принцип
    На отдельный слой должны быть хоткеи для управления вкладками.

    #3Управление мышью

    ×2.3
    png

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

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

    ✨ Это красиво
    Плоские стрелки божественны.

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

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

    Ещё для симметрии с клавишами на 1 пиксель есть клавиши на 10 пикселей.

    К сожалению клавиши для 1 и 10 пикселей не очень юзабельны, потому что нету фичи автоповтора, которую я описывал в секции про 5 стрелок. Если бы такая фича была, то эти клавиши были бы реально удобны.

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

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

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

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

    #2Фиолетовый слой

    ×2.3
    png

    Как я уже рассказывал, я отказался от Alt+Tab из-за слишком сильного потребления мыслетоплива и постоянных ошибок. И я перешёл на безусловный переход. В этом слое находятся как раз клавиши для него.

    📖 Принцип
    Alt+Tab не должен использоваться. Должен быть отдельный слой для клавиш, которые безусловно переключают в наиболее частые программы.

    🛠 Термин
    Безусловный переход в окно — это когда я нажимаю хоткей для включения Sublime, и независимо от истории посещения окон, у меня открывается Sublime.

    На Windows такое возможно сделать, если в панели программ расположить закреплённые программы в определённом порядке. Тогда нажатие Win+1 будет включать первую программу в этом списке и так далее. На Ubuntu та же самая история.

    ×1
    jpg

    Но на Linux я предпочитаю использовать для безусловного перехода программу jumpapp. Более подробно можно об этом почитать в dots#gnome.

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

    📖 Принцип
    Слой с безусловным переходом в программы должен быть на левой руке.

    Также я добавил хоткеи для:

    • Закрытия окна
    • Перехода на папку вверх в проводнике (Alt + Up)
    • Переименования выделенного файла (F2)
    • Безусловного перемещения на воркспейсы 1, 2, 3. Хотя сейчас понимаю, что этими сочетания я не пользуюсь, и их можно убрать.

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

    #3Как я не осилил i3

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

    Я давно слышал об этой программе и мне советовали попробовать. Как-то раз я решил перейти на этот i3, установил себе линукс рядом с виндой, поставил его туда, настроил идеальную раскладку для i3, и начал пользоваться. Вот такую раскладку я тогда спроектировал:

    ×2.6
    png
    Эта раскладка на KLE

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

    А потом оказалось, что я совсем не люблю, когда окно телеги разворачивается на весь экран, или вообще на половину экрана. Я люблю когда телега висит в виде мелкого окошка, где-то посреди экрана.

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

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

    В итоге я переустановил линукс с этим тайловым менеджером и поставил Pop!_OS с графическим управлением. Всё-таки этот i3 не для меня, винда меня испортила.

    И тут видно, что принцип про то что не надо делать оверинжиниринг раскладки работает во всей красе.

    👀 Обратите внимание
    Эта история говорит о том, что если заставить себя адаптироваться к слишком большому числу изменений, то в итоге всё придёт к тому, что ты это бросишь.

    Поэтому, если вы собираетесь себе покупать правильную клавиатуру, то нужно начинать с малого. Сначала нужно научиться десятипалу на СК. Затем можно попробовать на СК ремапнуть пару клавиш, поставить Shift под большой палец на месте Alt, Backspace на место Caps Lock. А затем купить правильную клавиатуру и там потихоньку модифицировать раскладку.

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

    #2Жёлтый слой

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

    ✨ Это красиво
    Зацените как я использовал эмодзи и символы чтобы обозначить различные виды анимации подсветки.

    ×2.3
    png

    #2Слой для игр

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

    📖 Принцип
    Игры не должны влиять на мою раскладку, и моя раскладка не должна влиять на игры. Чтобы разделить эти два мира, я создаю отдельный слой для игр, имитирующий СК, и добавляющий свои удобства.

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

    Советую вам на все такие особые случаи создавать свои слои.

    ×2.3
    png

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

    #2Слой на случай ядерной войны

    ×2.3
    png

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

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

    А именно здесь находится:

    • Весь нумпад и его клавиши. Потому что некоторые программы работают исключительно на цифрах нумпада, и с точки зрения ОС цифры и стрелки на нумпаде отличаются от обычных цифр и стрелок.
    • Все модификаторы, даже правые.
    • Всякие бесполезные Scroll Lock, Caps Lock, Pause Break, Insert, Menu.
    • Print Screen для 0.1% случаев когда необходимо сфотографировать весь экран.
    • Клавиши, которые задают каким хоткеем сейчас будет переключаться язык. Пожалуй это — единственные активно используемые клавиши в этом слое, ибо иногда я пользуюсь виндой, и клавиатуре надо об этом сказать.

    📖 Принцип
    Вообще паттерн такого слоя «на случай ядерной войны» — это удобный паттерн, и его можно иметь независимо от клавиатуры или типа личности. Туда удобно сбрасывать весь мусор.

    #Технические детали

    #2Как я сделал эту раскладку

    Компания ZSA хороша тем, что она делает продукт не только для программистов, поэтому у них есть официальный визуальный конфигуратор раскладок для всех их клавиатур. В этом конфигураторе можно использовать множество фич QMK, можно там же печатать на тренажёре, и можно смотреть на другие раскладки. Называется этот конфигуратор Oryx. Вот как он выглядит:

    ×2.3
    png

    Кстати, посмотрите на раскладку. Это стандартная раскладка, которую они ставят в клавы, и мне больно на неё смотреть!!! Shift на мизинцах; на больших пальцах всякая фигня типа Tab, Enter; а стрелки находятся на большом пальце; дубликаты Backspace. АААААААААААААААААААААА!!! Вот поэтому никогда нельзя доверять предустановленным раскладкам на правильных клавиатурах, и вообще думать о них нельзя, надо сразу делать свою.

    📖 Принцип
    Не доверяй предустановленной раскладке.

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

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

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

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

    #2Изображения

    Так как у меня раскладка представляется в виде кода, то я не могу всё время читать код, чтобы вспомнить что и где нажимается, нужно где-то держать визуальную версию того что я запрограммировал. И для этого отлично подходит сайт Keyboard Layout Editor. Но этот сайт делает немного некрасивые картинки, и имеет парочку багов, поэтому я взял его исходный код и немного модифицировал под себя. Результат этой модификации лежит по адресу: kle.klava.org. Чем именно моя модификация отличается от оригинала можно почитать на вики.

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

    Для её использования сначала нужно открыть консоль (Ctrl+Shift+K), и ввести следующую команду, заменив ИМЯ на имя файла:

    :screenshot ИМЯ --selector '#keyboard-bg' --dpr 3
    
    • --dpr 3 означает во сколько раз нужно увеличить картинку при создании скриншота, то есть в итоге этой команды получится картинка, которая имеет разрешение в 3 раза больше, чем то что сейчас находится на экране.
    • --selector '#keyboard-bg' — это возможность указывать какую именно часть страницы надо заскриншотить. Тут я выбираю самую важную часть, где нарисована раскладка.

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

    Снимать таким образом огромные скриншоты — это сказка.

    #2Содержание

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

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

    #2Код

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

    Напоминаю, что прошивка написана для библиотеки QMK.

    Благодаря этому я выделил три модуля, которые может переиспользовать любой в своей клавиатуре:

    • arbitrary_keycode — для нажатия произвольного кейкода. Является зависимостью для combo.
    • combo — модуль для задания аккордов, является намного более сильным, чем стандартные аккорды в QMK.
    • lang_shift — модуль для задания альтернативных русской и английской раскладки, без модификации на стороне ОС.

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

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

    Файл keymap.c мне очень нравится, так как там практически всё задано через массивы, а не через код.

    #2Как в клавиатуру засунуть свою буквенную и препинаковую раскладку

    Например, существует раскладка Дворак и Диктор, и хочется их засунуть в клавиатуру. В этом случае есть два пути:

    • Сделать так, чтобы клавиатура работала на любом компьтере со стандартными раскладками, без всякой настройки софта (так сделал я).
    • Главное чтобы работало максимально удобно на своём компе, количество настройки софта не важно.

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

    А второй пункт хорош тем, что для него особых знаний не нужно, и раскладку для клавиатуры можно делать в визуальном редакторе, например: EasyAVR. А затем сделать софтварную раскладку через MSKLC, например. Ещё этот подход хорош тем, что можно засунуть всякие экзотические символы типо ёлочек или тире в раскладку без нажатия AltGr. Таким подходом пользуются Kanazei и Steve Key. Более подробно можно спросить у них в чате.

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

    #2Как прошить

    Если вы попробуете скачать исходный код вашей раскладки, сделанной на Oryx, то она будет работать только с форком QMK от ZSA. Конечно, можно использовать обычный QMK, но там вроде чего-то не хватает. Поэтому первым делом надо скачать этот форк (команды ниже не работают для винды).

    git clone https://github.com/zsa/qmk_firmware zsa_qmk
    cd zsa_qmk
    ./util/qmk_install.sh
    git submodule init
    git submodule update
    

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

    ln -s /home/optozorax/my/moonlander ~/zsa_qmk/keyboards/moonlander/keymaps/optozorax
    

    Чтобы прошить, нужно внутри этого форка вызвать такую команду:

    make moonlander:optozorax:flash
    

    #2Настройка ОС чтобы моя клавиатура работала

    Я отрывками говорил как именно я настраиваю ОС, чтобы моя раскладка адекватно работала в ней.

    Критичное:

    • В ОС должны быть стандартные раскладки для русского и английского языков: ЙЦУКЕН и QWERTY соответственно. Они должны переключаться одним из предусмотренных заранее способов.

    Менее критичное:

    • Должны быть настроены клавиши Win+12345678 для включения определённых программм.
    • Основной редактор текста — Sublime Text 3.
    • В терминале копипаст должен быть на Ctrl+C, Ctrl+V, а завершение программы на Ctrl+J.
    • На Linux должен быть установлен flameshot, и настроен хоткей для запуска скриншота области.

    Совсем некритичное:

    • Должна поддерживаться Compose клавиша, и она настроена на Right Alt.
    • Прочие настройки программ, описанные в репозитории dots.

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

    #Завершение

    #2Выводы из истории

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

    • Убедить человека в чём-то не так просто.
    • Печать на клавиатуре полезнее, масштабируемей, быстрей и удобнее записей на бумажке.
    • Крутую раскладку можно сделать даже на СК.
    • Учиться десятипалу сложно.
    • Лучший способ избавиться от подглядываний — переставить клавиши.
    • Лучший способ не нажимать клавиши не из своих зон — использовать правильную клавиатуру.
    • Скорость надо набирать на Клавогонках.
    • Слим-клавиатуры удобны для быстрого набора.
    • Всегда можно наскрести деньги на правильную клавиатуру.
    • Привыкать к прямым рядам легко.
    • Привыкать к высоким клавишам сложно.
    • На клавиатуре с прямыми рядами через 2 недели можно побить свой рекорд.
    • Буквенную раскладку можно собирать постепенно.
    • Аккорды не так страшны, как кажется.

    #2Скорость

    • Не зависит от клавиатуры.
    • Скорость приятней любых свитчей.
    • Скорость раскрепощает мысль.
    • Тренироваться ради набора скорости тоже приятно.
    • С увеличением скорости растёт и безошибочность.
    • Печатать быстро без смещения кистей нельзя.
    • Скорость = автоматизм.
    • Скорость и слои не друзья.

    #2Простота переучивания

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

    В этом списке чем ниже, тем сложнее. Всё на основании моего личного опыта.

    • Переучиться на Ъ в аккорде.
    • Переучиться на другое положение F-клавиш и прочих несимвольных клавиш.
    • Переучиться на прямые ряды после СК.
    • Переучиться на стрелки на левой руке, когда они были на правой.
    • Переучиться на другое положение препинаков.
    • Переучиться на высокие клавиши после слим-клавиатуры.
    • Переучиться после перестановки пары букв.
    • Переучиться на новую буквенную раскладку.
    • Научиться печатать на Кладенце.

    #2Зачем нужна подсветка

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

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

    #2Принципы

    📖 Принцип
    • Отказываюсь от СК.
    • Пользователь раскладки владеет десятипалом.
    • Предпочитаю клавиатуры с цифрорядом.
    • Предпочитаю клавиатуру, где как минимум 3 клавиши на каждый тамб.
    • Предпочитаю клавиатуру, которая больше использует внешние тамбы, чем внутренние.
    • Кейкапы должны быть без надписей.
    • На моей клавиатуре печатаю только я.
    • На клавиатуре должна быть возможность сообщить о текущем слое.
    • Я выделяю зоны цветом.
    • Стараюсь размещать на левой руке как можно больше удобных для использования вместе с мышью вещей.
    • Стараюсь делать раскладку такой, чтобы она потребляла как можно меньше мыслетоплива.
    • Логика дороже трёх процентов.
    • У каждого своя раскладка.
    • Не надо оверинжинирить.
    • Долой модификаторы.
    • Долой правые модификаторы особенно.
    • Слой должен активироваться в режиме TG при нажатии обычного слоефикатора три раза.
    • Выключение слоя должно быть на месте клавиши Esc.
    • Основные слоефикаторы должны быть на большом пальце.
    • Отдельная клавиша для переключения языка.
    • Я использую аккорды с двукнопиями.
    • Аккорды должны быть только на нажатие нескльких клавиш одним пальцем.
    • Shift должен быть один и на большом пальце.
    • Отдельная клавиша для залипающего одиночного Shift'а.
    • Backspace должен быть близко.
    • Delete должен быть на левой руке.
    • Отдельная клавиша для Ctrl+Backspace.
    • Отдельные клавиши для копипасты и выделения всего.
    • Ctrl+Z должен быть симметрично Esc.
    • На левой руке и в удобном месте должна быть клавиша для скриншота области.
    • Пробел должен быть один.
    • Запятая должна нажиматься без Shift'а.
    • В первую очередь должна быть запятая с пробелом, а потом обычная запятая.
    • Базовые текстовые препинаки должны быть в одинаковых позициях для русского и английского языков.
    • Все препинаки должны нажиматься из любого языка.
    • _ должен быть отделён от -, и обе клавиши должны нажиматься без Shift'а, и на себе не иметь других вещей, которые нажимаются с Shift'ом.
    • Цифры нажимаются с зажатым Shift'ом. Важно, чтобы самые частые цифры нажимались более сильными пальцами, а не мизинцами.
    • Я всегда пишу Ё.
    • Я не размещаю ни одну букву в слой.
    • F-клавиши в слое на месте цифр.
    • Новые скобочки я всегда набираю парой.
    • Символы не должны быть в слое из-за проблем синхронизации.
    • Home и End должны использоваться.
    • На слое со стрелками не должны использоваться клавиши для копипасты для чего-то другого, они должны остаться собой.
    • Должен быть слоефикатор на левой руке, позволяющий нажимать стрелки одной рукой.
    • Стрелки должны быть в слое.
    • Должны быть отдельные стрелки с зажатым контролом.
    • Стрелки полностью на домашней позиции, и мизинец в стрелках используется.
    • Кнопка вверх должна быть на среднем пальце.
    • У меня перемещение вбок располагается по краям, а перемещение вверх-вниз в центре.
    • У меня стрелки на левой руке.
    • Клавиши управления звуком должны быть на левой руке.
    • Должны быть хоткеи для управления вкладками.
    • Клавиши для управления мышью должны быть на левой руке.
    • Alt+Tab не должен использоваться. Должен быть отдельный слой для клавиш, которые безусловно переключают в наиболее частые программы.
    • Слой с безусловным переходом в программы должен быть на левой руке.
    • Отдельный слой для игр.
    • Слой на случай ядерной войны.
    • Не доверяй предустановленной раскладке.
    • Картинки раскладки лучше снимать в разрешении повыше, чем на мониторе.

    #2Неадекватность СК

    ❌ Неадекватность СК
    • Неиспользование слоёв.
    • Стандартные зоны болезненны для левой руки.
    • Неравномерное смещение рядов.
    • Много далёких клавиш.
    • Неиспользование большого пальца.
    • Кривая.
    • Правые модификаторы.
    • Нету кнопки для переключения языка.
    • Shift'ы на мизинцах, и их два. А должен быть один на большом пальце.
    • Caps Lock не нужен.
    • Backspace очень далеко.
    • Пробел слишком большой.
    • ЙЦУКЕН сделан так, что большинство клавиш нажимают указательные.
    • Утащили Ё далеко!
    • Далёкие стрелки, по умолчанию их нету на домашней позиции.

    #2Цифроряд

    Зачем он нужен:

    • Я туда размещаю препинаки, не цифры! Препинаки нажимаются без Shift'а, а цифры с Shift'ом.
    • За счёт его наличия минимизируются проблемы синхронизации из-за использования слоёв.

    #Благодарность

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

    Если у тебя есть критика или предложения по данной статье, то можешь отписаться в секции комментариев где она опубликована (я буду их все читать), или стукнуться ко мне в личку в телеграме: @optozorax.

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

    #Сообщество

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

    У нас есть сервер в дискорде.

    Также у нас развивается вики: klava.wiki. Там есть ссылки на другие раскладки и другие статьи от нашего сообщества.