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

 - А зачем мне мышь, если я постоянно пишу в консоль? Двигать окна? А зачем их двигать, если они все одинаковые?..

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

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

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

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

  • Клавиатура должна подключаться к ЭВМ кабелем type С

  • ANSI раскладка без ряда функциональных клавиш

  • На колпачках клавиш не должно быть обозначений и засечек

  • Прошивка QMK

  • Моносплит (сплит интересный, но межблочный кабель и дополнительный программный интерфейс меня спугнули)

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

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

И тут вспомнился thinkpad, с той самой красной точкой. Технически безупречный, на мой взгляд, девайс – движущихся частей нет, шума от него тоже нет, а вот жесты есть! Но в предлагаемом исполнении пользоваться им совершенно неудобно.

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

Берем трекпоинт, самособой из древнего Lenovo, подозреваем у него PS/2, подключаем к RP2040 по схеме и гуглим почему не работает.

Оказывается, нужно подтянуть RST к VCC пленочным конденсатором(2.2 мкФ) и 100 кОм сопротивлением к земле.

Пины, подписанные MB0..2 это mouse button, просто замыкаем их любыми переключателями на землю и микроконтроллер засчитывает это за клики.

Ролик как зашевелился курсор

Ну, теперь можно и про компоновку подумать. Раз уж делаем кастом, то просится что-то вычурное, эдакое, может, оттого мне и понравился моносплит? Это когда клавиатуру разделили, а потом соединили под другими углами. Всё в угоду эргономике и, конечно, стилю.

Самый первый образец
Самый первый образец

Первые макеты были неуклюжими, и очень наивными. На фото угадываются отдельностоящие клавиши вне матрицы (Esc, сверху Insert, Printscreen, Delete и даже стрелочки vim-style)

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

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

После нескольких итераций клавиш стало меньше, а понимания немного больше.

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

PCB
PCB

Электрически клавиатура цельная – единая матрица, потому левая и правая части соединяются весьма толстой перемычкой из 10 кабелей. Мне действительно было проще ткнуть 20 раз паяльником, чем объявить в QMK последовательный порт и поставить межблочный AUX.

Сборка
Сборка

Неказистый внешний вид, простота линий и некоторые огрехи в процессе сборки я для себя оправдал тем, что это проба пера. Proof-of-concept как говорится.

Над правой частью стоят три кнопки – как раз MB0, MB1 и MB2. Нажатия воспринимаются как клики мышью, средней кнопкой – клик колесом. Жесты которые умел только ThinkPad теперь доступны на любом ПК и даже на Android устройствах (подробнее в последнем видео)

Mark 1
Mark 1

Конфиг прошивки, вместе с раскладкой обитает у меня на гитхабе.

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

Небольшое демо работы с трекпоинт

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

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