Самодельная Механическая «Эргономическая» Клавиатура
О чём это?
В этой статье я рассказываю про две клавиатуры, которые я собрал и использую ежедневно. Также описываю раскладку прошитую в эти клавиатуры, идеи и принципы определившие эту раскладку.
Я работаю за комьютером уже долго. Писать, то есть печатать, приходится довольно много. Несколько лет назад пальцы и руки начали болеть, достаточно, чтобы начать искать облегчения. Ежедневно бинтовать пальцы и использовать обезболивающие — не выход. Решение нашлось в создании клавиатуры и её расладки, при использовании которых руки движутся более-менее естественно и не травмируются так сильно, как раньше.
Выбор дизайна клавиатуры
Я перебрал много вариантов:
Начал с разделения рук — к основному лаптопу добавил внешнюю клавиатуру. IBM, а затем Lenovo, делают внешние устройства из тех же клавиш. Так что дополнить мои ThinkPad’ы выносной клавой было достаточно легко. Я распологал лаптоп справа, внешнюю клаву — слева, а дополнительный монитор посередине. Получилось уменьшить изгиб кистей, особенно левого запястья.
Оставалась проблема с суставами указательно пальца и правым запястьем. Пальцы ударялись при быстрой печати. Правая рука изгибалась, чтобы достать до кнопок курсора и блока редактирования.
Следующий шаг был переключение на раскладку Space-FN. Я использовал (и до сих пор использую) приложение TouchCursor. Оно превращает пробел в переключатель слоя — и все обычные кнопки в этом слое можно переопределить.
Например, я сделал так, чтобы ряд цифр становился F-1…F12, а курсор был на E/SDF, I/JKL. Page Up/Down — на T/G и Y/H. Home/End — на R/W и U/O, а BackSpace становится Delete.
С таким дополнительным слоем стало удобно использовать любую клавиатуру, не только привычную мне ThinkPad, но и любой другой лаптоп. Стало достаточно иметь стандартный блок QWERTY и игнорировать изыски и «улучшения» от производителей лаптов и клавиатур. Настройки Space-FN стали основой всех моих следующих раскладок.
Для Space-FN я пробовал настроить AHK, но не смог использовать эту программу из-за несовместимости с некоторыми другими программами через Remote Desktop, поэтому я так и остался с TouchCursor.
Оставалась проблема с усилием нажатия на кнопки и некоторый дискомфорт из-за наклонных колонок.
Я начал перебирать механические клавиатуры, начал с 60% от разных производителей. Они уже были приятнее на ощупь — переключатели Cherry MX Blue/Brown уже не давали такого «пробоя» до крайнего нижнего положения, но угол между руками был уже не такой удобный после двуч отдельных клавиатур упомянутых выше.
Пришла очередь раздельных: Mistel Barocco, потом Ergodox EZ. Mistel не имел возможности гибкой настройки. Эргодокс оказался просто слишком большим — избыточные кнопки привели к тому, что я пытался использовать их все. Так же в нём кнопки для большого пальца расположены далеко, очень неудобно тянуться до них.
Теперь я решился попробовать собрать раздельную клавиатуру. В интернете нашёл статью как собрать клавиатуру из двух половинок с 4 рядами и 6 колонками и всего лишь одним контроллером Teensy. Корпус напечатал в библиотеке из файлов, прилагаемых к статье. Спаять внутренности было достаточно просто. С прошивкой тоже было не так сложно — она была на основе QMK Planck, статья рассказывала об отличиях.
Тут уже я смог повторить раскладку близкую к Space-FN, что я уже использовал довольно долго. Добавилась возмножность создать слои включаемые большими пальцами левой и правой рук, и код Planck уже имел всё, что нужно для этого, оставалось только изменить слои.
Получилось очень неплохо, я стал пользоваться этой клавиатурой постоянно.
Собрал ещё одну — Let’s Split, благо части к ней достаточно дешёвы, а сборка еще проще — всё собирается на печатной плате.
https://www.thingiverse.com/thing:3325796з b жто
На этом раскладка уже была сформирована полностью — и остаётся практически неизменной до сих пор.
Оставалась некоторая неловкость при нажатии Lower/Raise (которые я поместил на нижний ряд во внутренний угол), так что это было близко, но ещё не окончательное решение моих проблем. Все дальнейшие поиски были направлены на форму клавиатуры и используемые кнопки.
В это время я увидел описание клавиатуры Dactyl разработанной Matt Adereth, и решил попробовать построить её. У этой клавиатуры достаточто сложный корпус, 3D принтер в библиотеке не мог его уже напечатать за день, пришлось раскошелиться на покупку своего.
Пока принтер ехал ко мне, Tom Short опубликовал свою разработку — Dactyl-Manuform, сочетание Dactyl’а и Manuform (автор — Jeff Gran).
Этот вариант мне понравился своей относительной простотой (я тупо не смог нормально напечатать оригинальный Dactyl) и я начал эксперименты — 5×6, 4×6, разные углы наклона, разные возвышения между уровнями колонок.
https://www.thingiverse.com/thing:3622519
Использовал разные переключатели — Cherry MX, Gateron, Matias. Самыми удобными сначала показались Gateron Clear, они самые мягкие из стандартных, потом стал менять в них пружины. Вместо 35 г — 15–20 грамм, стало гораздо легче, боль в крайних фалангах практически ушла. Потом открыл Matias — у них ощущения нажатия ещё приятнее, точка срабатывания выше, встроенные демпферы. С облегчёнными до 12–15 грамм пружинами они приблизились к идеалу — как у клавиатур старых моделей ThinkPad x61 и x200, но с увеличенным ходом после срабатывания.
Внутренности оставались теми же — схема от Let’s Split, по одному контроллеру ProMicro в каждой половинке, ЮСБ кабель подключается к любой из них, половинки соединяются обычным аудио кабелем.
За год я перебрал с десяток разных вариантов, остановился на довольно высоком угле наклона слева-направо. Такое положение блока QWERTY-клавиш было повторено во всех клавиатур, что я использовал в течение более двух с половиной лет. Со временем я уменьшил количество кнопок под большими пальцами с шести до двух, лишние кнопки оказались практически не используемыми.
https://www.thingiverse.com/thing:4220567
Такое расположение кнопок имело отложенный отрицательный эффект. Указательные пальцы ложатся на кнопки под большим углом, то есть двигаются практически вертикально, а оси кнопок — под углом где-то в 40 градусов от вертикали. Получалось, что на второй сустав пальца прилагалась изгибающая сила, небольшая из-за облегчённых пружин, но достаточная, чтобы усталось накопилась и пальцы стали снова болеть.
Решение нашлось в создании собственной модели клавиатуры, в которой бы кнопки смотрели вертикально вверх.
Клавиатура «Ступеньки»
https://www.thingiverse.com/thing:4828205as
У этой клавиатуры все кнопки расположены на горизонтальных «полочках», которые разнесены по высоте. Кнопки под большими пальцами — выше всех. Колонки — сдвинуты относительно друг друга. Всё сделано так, чтобы пальцам приходилось двигаться как можно меньше от «домашнего» ряда.
Очень похоже на оригинальный Dactyl, только все кнопки смотрят вертикально вверх.
Клавиатура для ноутбука
Отдельная вопрос — удобная клавиатура для лаптопа. Dactyl-подобная просто не очень удобна для переноски, она ещё и слишком высока, загораживает экран.
Я попробовал добиться того же удобства для «плоской» клавиатуры путём сдвига колонок, чтобы пальцы двигались примерно так же, как с Dactyl. Получилось достаточно похоже. Вместо высоких кнопок Matias я взял Kailh Choc.
Самое заметное отличие от распространённых моделей (Iris, Lily58, Gergo, etc.) — это расположение внутренних стоблцов (TGB, YHN) кнопок. Другие авторы распологают их сильно ниже, так, что строка выглядит одной дугой. Я же нахожу это очень неудобным, мои указательней пальцы не могут так сгибаться, кисть начинает болеть достаточно быстро. То есть в статике Iris/Lily58/etc.кажутся вполне логичными, но в динамике, при печати, указательный палец легче разогнуть, и несколько вытянуть, чем поджать в сторону подушечки большого пальца.
Поэтому я подвинул эти колонки вверх, и ряды моих клавиш выглядят больше как «Vv» (я специально использовал отдельные буквы V, получается шесть точек.)
Так же я добавил нижний четвертый ряд, как у Dactyl-Manuform, использую их для модификаторов — Win, Alt, Menu (см. ниже в описании раскладок).
Сама клавиатура крепится на застёжке-липучке к платформе, что закрывает ноутбук. Это просто пластина с гребнями с нижней стороны. Гребни встают между рядами клавиш и не дают ей нажимать на кнопки. Резиновые ножки по периметру не дают ей скользить.
https://www.thingiverse.com/thing:4840523
В этой клавиатуре получилось всё хорошо, за исключением кнопок под большими пальцами. Их приходилось нажимать кончиками пальцев, что не очень удобно, я предпочитаю вторую фалангу ближе ко второму суставу.
Следующая (и на данные момент окончательная) версия была цельная клавиатура с приподнятыми кнопками:
https://www.thingiverse.com/thing:5164769
Раскладка клавиш
Основные идеи/принципы использованные в раскладке
Хотелось бы избежать переучиванию слепому набору, сохранить использование привычных комбинаций кнопок.
Как можно ближе к обычной QWERTY, включая Esc, Tab, Backspace, модификаторы Shift, Control, Alt, Menu.
Минимум движения пальцев, желательно не более одной позиции вверх/вниз/в сторону.
Удобство навигации — стрелки. курсор. мышка.
Навигация — желательно управлять курсором одной рукой.
Наличие и удобство пользования F-клавишами, с сохранием привычных комбинаций (например, в FAR.)
Удобство в русской раскладке ЙЦУКЕН.
Симметричные модификаторы — чтобы одна рука использовалась для нажатия/удержания модификатора (Control, Shift, Alt, Raise/Lower), а другая — для собственно кнопки.
Например, для нажания Ctrl+A — правый мизинец зажимает Ctrl, левый мизинец нажимает «А». Тоже самое с заглавными буквамии — для «Ш» левый большой палец держит Shift, а правый средний палец нажимает «ш».
Избегать использования одной руки для нажатия модификатора и букв.
Минимум кнопок для больших пальцев — они обычно используются только для простых действий, не такие подвижные/развитые, как указательные или даже мизинцы.
Движения больших пальцев — не сгибание, а «удар»/удержание боком.
Сгибание этих пальцев — не точное движение, плохо сочетающееся с нажатием кнопок другими пальцами (это скорее требование к физическому расположению кнопок, пусть будет здесь для полноты картины).
Эти принципы определили структуру слоёв раскладки, и саму конфигурацию клавиатуры с 44 кнопками.
Описание слоёв
https://bit.ly/3jXpsGj
Слой А: Основной слой, QWERTY/ЙЦУКЕН
Работает по умолчанию, когда никакой из переключателей слоёв не удерживается.
Shift нажимается большими пальцами, а остальные модификаторы — как на обычных клавиатурах:
Control — либо мизинцем, либо ребром ладони (на некоторых моих клавиатурах так удобнее).
Alt — средними пальцами
Win, Menu — безымянными пальцами
Tab, Esc — левым мизинцем
Backspace, Enter — правами мизинцем
Слой Б: Навигация и редактирование — курсор на правой половине, мышка на левой.
Работает, когда удерживается Raise (на картинке помечена как CursRt, кнопка в левом нижнем углу на правой половине, нажимается большим пальцем.)
Достаточно удобно — правый большой палец опускается на Raise/CursRt, а указательный, средний и безымянный находятся над стрелками влево, вверх/вниз, вправо. Также указательный легко достает Y и H для Page Up, Page Down. А на нижнем ряду — кнопки мыши, левая, средняя и правая. U и O — Homeи End. Backspace превращается в Delete.
Левая же рука управляет мышкой, используется для модификаторов — Ctrl, Shift, Alt, Win.
Она же может нажать Tab, который в этом слое работает как Enter.
Слой В: Навигация и редактирование — курсор на левой половине, мышка на правой.
Работает, когда удерживается Lower (на картинке помечена как CursLt, кнопка в левом нижнем углу на левой половине, нажимается левым большим пальцем)
Слой почти полностью зеркальный Слой Б, с небольшими отличиями.
Слой Г: Цифры и F-клавиши.
Работает, когда Raise и Lower (CursRt, CursLt) обе удерживаются большими пальцами обеих рук.
Верхний ряд — цифры, второй ряд и ZX — F-клавиши.
Большая часть остальных кнопок сохраняют функции как на основном слое А.
Слой Д: Расширенная правая часть обычной клавиатуры.
Используется для ввода символов ()[]`'', а в русской раскладке — ЁЭХЪ/, т.е. тех кнопок, что не вошли в матрицу 3×10.
Работает, когда Tab (на картинке помечена ExtraRight, самая левая колонка левой половины, средний ряд) удерживается левым мизинцем.
С учётом порядка слоёв можно быть в одном из слоёв Б, В или Г и при этом включать слой Д. Например, набирать цифры в слое Г, и не поднимая больших пальцев с Raise/Lower, нажать Tab (ExtraRight) левым мизинцем, чтобы правыми средним или безымянным пальцами ввести круглые или квадратные скобки).
Заключение
Я постарался описать клавиатуры и их раскладку, которые я использую.
Они меня вполне устраивают, но, ни в коей мере не претендуют на универсальность.