Приветствую, друзья и коллеги. Сразу оговорюсь, что данная статья не претендует ни на что, в ней я всего лишь собрал свой небольшой опыт, которым хочу поделиться с вами.
Мне было интересно чем «клавиатура для программистов» помогает программистам делать их работу. У меня были сомнения по поводу сразу нескольких аспектов. Надежности. Стабильности. Удобства. Эстетического удовольствия от использования. Надеюсь я сумел подробно описать свой опыт и кому‑то он покажется полезным.
Так же стоит оговориться, что речь пойдет исключительно про «эргономичные» сплит клавиатуры. Это те, которые с изгибом под кисти рук и разделенные на две половинки, хотя многие аспекты касаются и обычных плоских самосборок.
Я не паял примерно десять лет и идея собрать какой‑то гаджет пришла спонтанно. Мы делали довольно крупный проект, моя задача была писать бекенд на Rust, что на расте я делал впервые и довольно сильно уставал. Так что задумавшись над способами релаксации решил немного помахать паяльником.
Чтобы не перегружаться еще больше, изучением углубленных мануалов, решил купить готовый набор компонентов и плат. Здесь на Хабре про них уже писали. Пайка и сборка отняла около трех дней. Работал по вечерам и в выходные. Сейчас сборка уже окончена и результатом я доволен, но на работу эту клавиатуру я не возьму. И работать на ней не собираюсь.
В общем, суть того о чем я хотел бы написать, заключена в названии. И чтобы в процессе не оторвать коту хвост, перейду сразу к минусам:
1) Корпус напечатанный на 3D принтере выглядит плохо. Слои видны чем их не полируй, при монтаже остатки поддержки мешаются и постоянно приходится их убирать. Даже когда ты уверен, что идеально очистил заготовку, плата обязательно упрется в какой-нибудь торчащий усик. По началу медитативный процесс начинает раздражать.
2) Относительно простые в изготовлении платы стоят дорого. Их легко испортить. В результате то, что должно было стать конструктором для школьников превратилось в хобби для «богатых программистов». Наверное поэтому, в IT сообществах так активно продвигают эту идею совместно с сопутствующим товарами.
3) Удобство написания кода на такой клавиатуре я бы вынес в отдельную статью, так много всего необходимо сделать, чтобы ваша поделка начала давать хоть какое‑то преимущество над обычной клавой за 300 рублей. В программах для настройки этих клавиатур масса функций, которые вы так же бесплатно можете получить для любой‑другой клавиатуры, просто накатив дополнительный софт. Запись макросов, слои, переназначение клавиш все это вы можете получить без вложений. Да, настройки будут хранится не в памяти самой клавиатуры. И да, хранение настроек в памяти клавиатуры, актуально если вы носите клаву с работы домой, что конечно же никто делать не будет. Отсюда вывод, нет никакой разницы где хранятся настройки. Это напротив может быть неудобно, если вы подключаете устройство попеременно к Mac и Win или даете попользоваться компьютером своей девушке, бабушке, кошке...
4) Хлипкость конструкции. Чем бы вы не напечатали корпус, он все равно не даст достаточной жесткости. Вдобавок ко всему, в сборе клавиатуры довольно легкие и даже силиконовые ножки с AliExpress, намертво липнущие к столу не сильно исправляют ситуацию. Клавиатура будет улетать на другой край стола при малейшем неловком движении.
Корпус изгибается и деформируется, приходится колхозить проставки, чтобы компенсировать кривизну. Наверное потому ребята с BastardKeyboard используют стальные пластины, закрывающие дно их клавиатур. Таким образом решается вопрос кривизны и легкости, но встает новый вопрос: где найти производство на котором лазером порежут нержавейку и не сдерут за это восемь шкур. Из самых адекватных предложений, я получил цену в районе 8к. рублей.
Тут владельцы 3D принтеров могут возразить, указав на то, что существует масса материалов, в том числе достаточно жестких. Но мне пока не удалось найти материал который хотя бы как‑то приблизился по качеству к производственному литью.
4) Эргономика сильно преувеличена, а для кого‑то и вовсе имеет обратный этому понятию эффект. Все потому, что суть open source эргономичных клавиатур была в том, чтобы мы создавали индивидуальные проекты. Ваша осанка, рост, вес, длина пальцев и их кривизна, все в конечном итоге имеет значение для воссоздания эргономики. В реальности, все печатают один и тот же 3D макет.
А чтобы рассчитать ваши параметры необходимо создавать несколько базовых макетов, примерять их вживую и шлифуя неровности строить собственный макет в 3D редакторе.
5) Выпадающий шарик трекбола. Казалось бы, минус касающийся только конкретных типов клавиатур, но это показывает принцип по которому строятся проекты. И принцип этот нам хорошо известен, он называется «и так сойдет». Придерживаясь его, мы получим одинаковое качество для всех стадий реализации проекта. Досадные мелкие недостатки вы заметите в разводке плат, в качестве соединений, в пространстве для монтажа и т. д.
Результатом вашей работы станет поделка не сильно превосходящая по качеству китайские аналоги. А если это ваш первый проект или вы не брались за паяльник лет десять, как я, то скорее всего качество будет даже хуже.
6) Программная составляющая отличная но не совершенная. Не хватает переключения подсветки зависимости от слоя, например. И если ваш родной язык не C++, придется довольствоваться стандартным набором функций, коих очень много, но все еще не достаточно, чтобы создавать действительно уникальные, индивидуальные устройства.
Обилие программных функций полностью компенсировано их однотипностью. Например, на моей клавиатуре Redragon которую я когда‑то купил по цене пачки сухарей, есть масса крутых эффектов подсветки. Мой любимый эффект — «нагревание» это когда при быстрой печати тусклая белая подсветка постепенно становится красной и потом плавно «остывает». Прикольных «умных» эффектов для Via я не нашел. Но их довольно много и есть интересные. Если удастся выкроить свободное время, с удовольствием поэксперементирую с созданием новых эффектов подсветки. Мне кажется, тут много пространства для творчества.
Но почему же это попало в минусы, если все хорошо? А минус как раз в том, что пользовательский слой никак не отделен от административного. Это значит, что неловкий жест и ваш гаджет уходит в режим прошивки. В заводских устройствах подобные вещи продумывают в обязательном порядке, именно поэтому мы ломаем пальцы чтобы войти в системные настройки почти любых устройств сделанных инженерами.
7) Если ты не удаленщик, то на работу в офис нужно собирать еще одну клавиатуру. Это чтобы всем говорить, с несмываемым пафосом, что мол не пользуюсь я вашим наследием печатных машинок.
8) Не для работы. Всегда есть шанс провалить дедлайн только потому что у тебя сгорел микроконтроллер из‑за кривой пайки. Именно это у меня и произошло, благо проект мы сдали в срок, а на работу я новую клавиатуру притащить не успел. Выяснилось, что китайские одноплатники на RP2040 не очень надежны. Разве что вам удастся раздобыть натуральную «малинку», я пока не нашел их в свободной продаже на территории России.
Надежность зависит от массы факторов, как аппаратных (качества сборки, компонентов), так и программных. Никогда не знаешь к чему может привести очередная перезагрузка.
У меня после перезагрузки, которая вынесена в третий слой по умолчанию, клавиатура просто зависала, а активная сторона загоралась красным светом. Необходимо было переподключить ее через USB. Зачем вообще понадобился reset в активном слое я все еще не понимаю. Может это какая‑то шпионская функция, перезагрузил, она подключилась как флешка и сохраняй секретные документы. Но теперь становится понятно, зачем безопасники требуют запрашивать разрешение на подключение личных гаджетов. Все это из сфер запредельно далеких от моего понимания.
Так же пару раз полностью слетали настройки. Я так и не выяснил с чем это было связано, но происходило во время сборки и после не повторялось.
9) Если вы не владеете методом слепого десятипальцевого набора, забудьте. Проще сначала научиться на обычной клавиатуре и затем, что называется, почувствовать разницу. А если владеете, не вздумайте после сборки или покупки сразу тащить свежеспаянное чудо на работу. Сначала нужно освоить слои, разобраться с расположением букв, символов, цифр. Протестировать все в конце концов! Не смотря на то, что все достаточно удобно, без практики нормально работать не выйдет.
10) Клавиатуры в стиле «скелетон» (это когда провода торчат наружу) не имеют права на жизнь с чисто технической точки зрения. Даже если предположить, что вы работаете в абсолютно стерильных условиях и кофе пьете не выходя из кофепоинта, вы банально можете задеть проводок пальцем, замкнув тем самым какой‑нибудь контакт.
Рассмотрев все скелетоны, стало ясно, что они сделаны такими исключительно с целью уменьшения габаритов. Если закрывать все щели, то нужно будет увеличивать масштаб корпуса, а заодно появляется пространство для удобного монтажа плат и проводов.
11) Для работы сплит клавиатуры требуются два микроконтроллера. При этом, каждая половинка, подключенная по отдельности у меня работала как правая. Не уверен баг это или фича. Кажется, это проблема конкретно моей сборки.
Теперь к достоинствам
О плюсах уже написано и снято много материала, отмечу что понравилось лично мне больше всего.
1) Пока реально удобной фичей остается трекбол. Любители Vim, Tmux и прочих zsh порадуются. Но эти же люди могут рассказать, что комбинации Vim — не что иное как попытка программно переосмыслить эргономику существующих клавиатур. Про необходимость мышек, трекболов, трекпадов и т. п., мы от них тоже слышали. Тем ни менее я не видел ни одного такого знатока сочетаний клавиш всех на свете ОС, у которого не лежала бы на столе мышка.
Трекбол работает прекрасно. Один раз разобравшись с управлением, рука перестает дергаться вправо. Руки лежат на клавиатуре и казалось бы, вот оно счастье. Пока мы не подключаем клавиатуру к macOS. На удивление, все проблемы которыми наделены колесики сторонних мышек у трекбола отсутствуют. Все работает плавно, режимы ведут себя как и должно. Но избавится от трекпада или Magic Mouse мне все равно не удалось. Суперудобные жесты перелистывания полноэкранных режимов к которым привыкаешь с первого же дня, никак не настроить для трекбола. По крайней мере я не нашел как это сделать, если вы решили этот вопрос, то можете осчастливить как минимум одного человека.
2) Прямое расположение клавиш. Для моих кривых мизинцев, которые никак не хотят гнуться в сторону твердого знака и буквы «ё» это огромный плюс.
3) Онлайн софт. Via позволяет настраивать клавиатуру почти на любом устройстве и из любого места. Так что если вы действительно из тех кто везде ходит со своей клавиатурой, то функция очень полезная. Не нужно качать и устанавливать дополнительный софт.
4) Слои и макросы помогают настроить устройство под ваши нужды. Если у вас таковые имеются. Мне казалось, что будет удобно расположить команды IDE в отдельном слое. На практике, я почти никогда не использовал этот слой, а сами команды я использую не настолько часто, чтобы привыкнуть и запомнить расположение клавиш на которые завязал макросы. Но стандартные слои вполне удобные и к ним действительно быстро привыкаешь.
5) Возможность собрать индивидуальный проект исключительно под себя. Минусы распечатанных корпусов я перечислил, но ведь творческую составляющую в сборке клавиатуры «под себя» никто не отменял. Лучшее из всего что я видел, это деревянный корпус изготовленный ЧПУ‑фрезеом, пропитанный льняным маслом. Выглядит внушительно и сразу видно кто главный сисадмин на деревне. Проблема в том, что это подходит исключительно для плоских клавиатур.
И к слову сказать, самые удобные и эстетически привлекательные проекты это именно плоские сплиты. В плане доступности они все еще по карману не каждому школьнику, но материлы для сборки обойдутся вдвое дешевле эргономичных собратьев. Думаю, с надежностью там тоже получше, гнущиеся платы положенные на кривой после уделенных поддержек слой пластика и фиксирующиеся припаянными к ним свичами не внушают уверенности. А тут надежная фиксация и есть возможность поставить модули горячей замены и экран с котиком. Это ли не счастье?
Делая выводы
Что я для себя уяснил, собрав и попользовавшись такой клавиатурой? Первое и самое важное, что эти клавиатуры НЕ для программистов.
Не знаю, существуют ли вообще клавиатуры для программистов, бухгалтеров, летчиков-испытателей, строителей, дворников?
Если отбросить маркетинг, то клавиатуры и вообще периферия которую можно собрать самостоятельно, чтобы козырнуть перед коллегами существуют исключительно для тех кто любит проводить ночи распаивая платы. Для кого романтика это надышаться парами флюса и прожечь паяльником любимый мамин письменный стол.
На мой взгляд, если пайка ваше хобби, нет смысла покупать готовые наборы плат. Примеры разводки контактов есть в сети и сложность там не очень большая. Если подойти основательно, то надежность и качество можно поднять до уровня не ниже готовых плат, а то и выше.
Чтобы добиться эргономики, индивидуальности, уникальности. Стоит поискать знакомых с 3D принтером, если у вас нет собственного. Поэкспериментировать с 3D моделями. Есть все шансы получить лучший результат, за вменяемый ценник.
Если вы ищите клавиатуру для работы, купите готовую. Сделанную на заводе, с гарантией изготовителя. Благо есть достаточно сплит клавиатур на механике. Мне не удалось найти с трекболом, но для работы он не играет никакой решающей роли. Зато ничего не отвалится если кто‑то стукнет по столу кулаком. Да будет дороже, но и разница с тем, что предлагается как альтернатива колоссальная.
Кстати, не так сложно гуглится российский производитель эргономичных клавиатур. Продают вдвое(!) дешевле конструкторов. Это все те же OpenSource сплиты, только собранные людьми с опытом. Не знаю что там на счет соблюдения лицензий, и прочих моральных аспектов, я не имею вклада в проект поэтому и судить не могу. Корпусы они печатают на 3D принтерах, все еще не производственное литье. Модели переработаны, добавленны ребра жесткости и всякие мелочи. Потрогать в живую не довелось. На сайте не было найдено ни одной «клавиатуры для программистов», поэтому и обсуждать нечего.
Итак, идея прекрасная. Набор по самостоятельной сборке, с огромным количеством мануалов, историями успешных сборок и дружелюбным комьюнити. И все же набор для школьников должен быть школьнику по карману. В противном случае его начинают продавать кому попало.