Съездил в Россию
Вернулся из поездки в Россию. Было интересно повидать свой родной город, встретиться с родственниками, которых не видел много лет. Впечатления от поездки остались сложные. Пока я был в Саратове, в соседнем городе Энгельсе был подбит нефтеперерабатывающий завод, и полнеба было затянуто чёрным дымом. Люди при этом, как в фильме «Не смотри наверх», стараются жить своей жизнью, строить планы на будущее, делать свои повседневные дела. Интернет периодически пропадает, заблокированы YouTube, Instagram и другие сайты. Я понимаю людей, которые стараются не замечать происходящее вокруг, ведь иначе в этой стране не выжить. Власти подавляют любое проявление недовольства. Надеюсь, что те, кто довёл страну до такого состояния, когда-нибудь перестанут функционировать, ведь все войны когда-нибудь кончаются, а человек смертен. Хочется, чтобы это случилось при моей жизни.
Cтранный баг в Android с языками физической клавиатуры
Когда я подключил клавиатуру к телефону на Android, чтобы посмотреть как она будет с ним работать я обнаружил что не работает русская раскладка. Подключил другую внешнюю клавиатуру - тоже самое, язык вроде бы переключается а печатает все равно по английски. Уверен, я раньше точно мог печатать по-русски — а теперь, при переключении языка, всё равно набираются английские символы.
Перепробовал всё: менял настройки, переустанавливал Gboard, сбрасывал раскладки — ничего не помогало. Казалось, клавиатура просто "забыла", что умеет русский.
И тут я решил попросить жену — она часто печатает на своем планшете и у неё на Android всё работает как надо. Она пошла в настройки и проделала ровно то же самое, что и я, но у неё всё завелось. При этом когда я делал тоже самое у меня не работало. Магия?
Нет. Просто нюанс интерфейса, о котором я не знал, даже два нюанса.
Оказывается, в Android для каждой физической клавиатуры можно отдельно настроить список языков. При этом для переключения используются два сочетания клавиш — через Ctrl + Space и Shift + Space. При этом переключают они что-то свое. Shift + Space переключает язык экранной клавиатуры при этом физическая клавиатура продолжает печатать на английском, а вот Ctrl + Space переключает язык физической клавиатуры хотя экранная показывает, что вы печатаете на другом языке.
Второй нюанс заключается в том, настроить нужные языки для физической клавиатуры не так просто. Сама форма настройки запрятана довольно глубоко в дебрях настроек, но даже если вы ее найдете то добавить язык сможете не с первого раза. Когда вы настраиваете список языков для физической клавиатуры, в списке языков рядом с каждым пунктом есть переключатель. Я всегда нажимал по нему — по ползунку справа. А вот жена нажала по названию самого языка. И только в случае тапа по названию языка Android сохраняет выбор языка. Если нажимать только по переключателю — выбранный язык не сохраняется, и после выхода из меню всё сбрасывается. Скорее всего это баг интерфейса, но он стабильно воспроизводится.
Вывод: Если на Android у вас не работает русская раскладка с внешней клавиатурой — не трогайте переключатели справа! Нажимайте именно по названию языка, чтобы он сохранился в системе.
Надеюсь, эта заметка сэкономит кому-то пару часов нервов.
Кейс для клавиатуры
Клавиатура оказалось довольно нежная - страшно ее случайно поломать бросив в рюкзак. Спроектировал для нее кейс.
Теперь клавиатуру можно переносить в рюкзаке. Модельки и прошивки можно скачать с github.
Эмуляция мыши клавиатурой
Одна из главных фишек клавиатуры на базе ZMK — возможность добавить поддержку мыши. Согласно документации, это делается просто: достаточно добавить одну строку в конфигурацию.
CONFIG_ZMK_POINTING=y
Однако, когда я это сделал, ничего не произошло. Назначенные мной кнопки вели себя по-прежнему. Перепробовал всё — не помогло.
Оказалось, в конфигурацию Zephyr нужно было отдельно включить поддержку мыши как таковой.
# Enable mouse support
config ZMK_MOUSE
default y
config ZMK_POINTING
default y
Эту деталь подсказал мне Trae — ChatGPT и Claude об этом не упомянули, хотя честно пытались помочь. Теперь, чтобы двигать курсор, вовсе не обязательно использовать мышку — можно обойтись клавишами клавиатуры.