Всем привет, меня зовут Роман и я энтузиаст. Не так чтобы конкретно в чем‑то, а так, вообще. По долгу службы я тесно связан с 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 и трекпоинт. Последний я для комфорта чуть "постриг" напильником сверху.

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

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

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

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