Приветствую! Я Роман, и меня можно назвать увлеченным человеком — причем в самом широком смысле. По роду деятельности я неразрывно связан с экосистемой GNU/Linux, поэтому большую часть времени провожу, пристально вглядываясь в темный экран, усеянный строками кода. В один из таких рабочих моментов меня посетила мысль:
— Зачем мне вообще мышь, если всё взаимодействие идет через консоль? Управлять окнами? Но какой в этом смысл, если они стандартизированы?..
Разумеется, в этом порыве я не первопроходец. Мои поиски идеального окружения привели меня к динамическим тайловым менеджерам, а следом — к необходимости переосмыслить устройства ввода.
Мне хотелось создать бескомпромиссное «все в одном»: полноценная печать в сочетании с эпизодическим, но точным управлением курсором. Начав погружение в тему, я поразился тому, насколько обширно и глубоко данное сообщество.
Оказалось, что вокруг полно единомышленников-энтузиастов, найти которых проще, чем кажется: достаточно прислушаться к мерному клацанью механических переключателей. Элементарных навыков общения вполне хватает, чтобы перенять богатый чужой опыт. К слову, у истинных фанатов клавиатур их всегда несколько, и для каждой припасен веский довод, оправдывающий покупку.
Я протестировал множество форм-факторов и раскладок, убедившись, что некоторые из них вызывают физическое отторжение уже на этапе компоновки. Этот опыт помог сформировать жесткие критерии для моего проекта:
-
Подключение к ПК исключительно через USB Type-C
-
ANSI-раскладка без ряда функциональных клавиш
-
Минималистичные кейкапы без гравировки
-
Использование прошивки QMK
-
Монолитная конструкция (от идеи сплита с межблочным кабелем я отказался из-за избыточной сложности программного интерфейса)
Главным вызовом оставалось управление курсором. Первым делом я подумал о большом стеклянном тачпаде с поддержкой жестов, но готовых драйверов в QMK под редкие модели не нашлось, а разработка собственного казалась непосильной задачей.
Позже я собрал массивный трекбол, чтобы почувствовать себя эдаким звукорежиссером — об этом стоит написать отдельную историю.
В итоге я вспомнил про «красную точку» (TrackPoint) от ThinkPad. На мой взгляд, это технически безупречное решение: полное отсутствие подвижных частей, бесшумность и поддержка жестов. Но штатная эргономика таких устройств оставляет желать лучшего.
Обычно пользователи мыши привыкают кликать указательным и средним пальцами. Почему бы не перенести нагрузку на большие пальцы для управления стиком, оставив привычные клики для остальных? А если интегрировать стик непосредственно в центр клавиатуры, руки не придется перемещать между вводом текста и манипуляциями с курсором.

Я взял классический трекпоинт от старого Lenovo, предположив наличие у него PS/2 интерфейса, и подключил к микроконтроллеру RP2040 согласно документации. Оказалось, что для стабильной работы необходимо подтянуть линию RST к VCC через пленочный конденсатор (2.2 мкФ) и резистор 100 кОм на землю.
Пины, маркированные как MB0–2, отвечают за кнопки мыши — их достаточно замкнуть на землю через любые микропереключатели, чтобы контроллер распознал клики.

Видеодемонстрация работы курсора
Далее встал вопрос компоновки. Раз уж проект кастомный, хотелось чего-то нетривиального. Видимо, поэтому меня так привлекла концепция «моно-сплита» — это когда две части разделены, но жестко соединены под определенными углами ради эргономики и эстетики.

Первые макеты вышли довольно неуклюжими. На фото видны попытки добавить отдельные клавиши вне основной матрицы (Esc, Insert, PrintScreen, Delete и стрелки в стиле Vim).
Это был необходимый этап, чтобы прекратить бесконечный перебор вариантов и зафиксировать концепцию.

Я потратил целую бухту пластика на тесты и долгие часы «печатал» в воздухе над макетами, проверяя удобство расположения клавиш.
После нескольких итераций лишнее ушло, оставив лишь функциональный минимум.
Затем я развел двустороннюю печатную плату, которая со второй попытки успешно заработала. На снимке виден припаянный отладочный контроллер RP2040 и модифицированный трекпоинт, который я немного подпилил для удобства.

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

Свои огрехи в дизайне и сборке я оправдываю тем, что это исключительно «Proof-of-concept».
Над правой секцией расположены три кнопки, выполняющие функции левого, правого и среднего клика мыши. Теперь возможности ThinkPad доступны на любом ПК и даже на Android (подробнее — в видео ниже).

Конфигурационные файлы и раскладку можно найти в моем репозитории на GitHub.
Пробел остался только слева, так как правой рукой я его всё равно не задеваю. Энкодер был добавлен спонтанно, «ради эксперимента», и теперь я бездумно кручу его во время работы — бесполезно, но забавно.
Демонстрация работы трекпоинта

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


