Эмуляция мыши клавиатурой
Одна из главных фишек клавиатуры на базе ZMK — возможность добавить поддержку мыши. Согласно документации, это делается просто: достаточно добавить одну строку в конфигурацию.
CONFIG_ZMK_POINTING=y
Однако, когда я это сделал, ничего не произошло. Назначенные мной кнопки вели себя по-прежнему. Перепробовал всё — не помогло.
Оказалось, в конфигурацию Zephyr нужно было отдельно включить поддержку мыши как таковой.
# Enable mouse support
config ZMK_MOUSE
default y
config ZMK_POINTING
default y
Эту деталь подсказал мне Trae — ChatGPT и Claude об этом не упомянули, хотя честно пытались помочь. Теперь, чтобы двигать курсор, вовсе не обязательно использовать мышку — можно обойтись клавишами клавиатуры.
Honeycomb Wall
В моём углу, где я работаю, постепенно скапливается много всякой мелочи, которую нужно куда-то убирать. Часть вещей я убираю в выдвижной ящик, часть — на полочку над столом, но всё равно хочется ещё куда-то убирать клавиатуры и рабочий лэптоп. Горизонтальных поверхностей не очень много, но есть много вертикальных. Идеально было бы вешать некоторые вещи на стену, но нужно придумать для этого какие-то крючки. Сейчас у меня уже висят на стене монитор, лэптоп, внешний диск, лампа. Но туда ещё можно много всего навесить...
У ИКЕА есть доска с дырками SKÅDIS, которая отлично подходит для этого. Однако размер доски фиксированный и не очень вписывается в мой угол, где уже висят монитор, ноутбук и полка. Стал гуглить, существует ли какая-то модульная система, и нашёл вот такое: Honeycomb wall storage system.
Даже на картинке у автора такой же бардак, как у меня — значит, мне точно подойдёт!
Печатать придётся самому, зато можно сделать точно под свой размер и цвет. Мне не очень нравится, что соединять элементы автор предлагает специальными внешними клипсами, что уменьшает количество свободных ячеек и портит внешний вид. Нужно будет попробовать добавить ещё в схему клипсы-защёлки, чтобы панели можно было соединять вместе...
Универсальная раскладка клавиатуры
Меня всегда раздражало, что знаки препинания на русской и английской клавиатурах расположены в разных местах. Но настоящий ад начался, когда я переехал в Германию и начал пользоваться немецкой раскладкой.
Если на английской и русской раскладках различия хотя бы ограничиваются знаками препинания, то немецкая — это отдельная история. Тут не только точка и запятая прячутся куда-то подальше, но и привычные клавиши вдруг оказываются в неожиданных местах. При этом я умею печатать вслепую, но этого недостаточно — запомнить местоположение всех знаков препинания в трёх раскладках оказалось невозможной задачей.
Часто замечаю, что не помню, где находится нужный символ в русской раскладке — и специально переключаюсь на английскую или немецкую, чтобы его набрать. Это прерывает поток мысли, замедляет набор текста и вызывает раздражение. Особенно бесят умляуты на немецкой клавиатуре — они оккупировали те клавиши, где в английской раскладке были нужные знаки. А если символ прячется под левым Alt, приходится выкручивать кисть в стиле ручной Камасутры, чтобы нажать сразу две неудобные клавиши.
Теперь, когда я научился настраивать кастомную клавиатуру при помощи ZMK, стало интересно — справится ли он с этой задачей? ZMK — это прошивка для кастомных клавиатур на базе операционной системы реального времени Zephyr. И использовать его просто как посредника между кнопкой и символом — значит бездарно тратить его потенциал. Хочется задействовать всю его мощь, чтобы создать действительно умную раскладку, которая адаптируется под мои реальные задачи и привычки.
И тут у меня возник вопрос: а можно ли сделать так, чтобы все знаки препинания были на одних и тех же клавишах — вне зависимости от того, включена русская, немецкая или английская раскладка?
Оказалось, можно! И работает это потрясающе удобно.
Русскую раскладку почти не пришлось трогать — в ней мало специфических символов. В немецкой я убрал умляуты с основных клавиш и перенёс их под правый Alt, а на их места вернул знаки препинания, совпадающие с английской раскладкой.
До:
После:
Теперь я буквально влюблён в свою раскладку. Набирать текст стало в разы проще и приятнее. Осталось довести проект до ума, собрать обе половинки клавиатуры — и носить её с собой. Потому что печатать на чужих клавиатурах после этого просто невозможно.
Выложил прошивку на github.
Кейкапы
Приехали кейкапы - клавиатура стала больше похожа на клавиатуру.