2025-05-29

Cтранный баг в Android с языками физической клавиатуры

Когда я подключил клавиатуру к телефону на Android, чтобы посмотреть как она будет с ним работать я обнаружил что не работает русская раскладка.  Подключил другую внешнюю клавиатуру - тоже самое, язык вроде бы переключается а печатает все равно по английски. Уверен, я раньше точно мог печатать по-русски — а теперь, при переключении языка, всё равно набираются английские символы.

Перепробовал всё: менял настройки, переустанавливал Gboard, сбрасывал раскладки — ничего не помогало. Казалось, клавиатура просто "забыла", что умеет русский.

И тут я решил попросить жену — она часто печатает на своем планшете и у неё на Android всё работает как надо. Она пошла в настройки и проделала ровно то же самое, что и я, но у неё всё завелось. При этом когда я делал тоже самое у меня не работало. Магия?

Нет. Просто нюанс интерфейса, о котором я не знал, даже два нюанса.

Оказывается, в Android для каждой физической клавиатуры можно отдельно настроить список языков. При этом для переключения используются два сочетания клавиш — через Ctrl + Space и Shift + Space. При этом переключают они что-то свое. Shift + Space переключает язык экранной клавиатуры при этом физическая клавиатура продолжает печатать на английском, а вот Ctrl + Space переключает язык физической клавиатуры хотя экранная показывает, что вы печатаете на другом языке.

Второй нюанс заключается в том, настроить нужные языки для физической клавиатуры не так просто. Сама форма настройки запрятана довольно глубоко в дебрях настроек, но даже если вы ее найдете то добавить язык сможете не с первого раза. Когда вы настраиваете список языков для физической клавиатуры, в списке языков рядом с каждым пунктом есть переключатель. Я всегда нажимал по нему — по ползунку справа. А вот жена нажала по названию самого языка. И только в случае тапа по названию языка Android сохраняет выбор языка. Если нажимать только по переключателю — выбранный язык не сохраняется, и после выхода из меню всё сбрасывается. Скорее всего это баг интерфейса, но он стабильно воспроизводится.

Вывод: Если на Android у вас не работает русская раскладка с внешней клавиатурой — не трогайте переключатели справа! Нажимайте именно по названию языка, чтобы он сохранился в системе.

Надеюсь, эта заметка сэкономит кому-то пару часов нервов.

 

Оставить комментарий

 
  2025-05-28

Кейс для клавиатуры

Клавиатура оказалось довольно нежная - страшно ее случайно поломать бросив в рюкзак. Спроектировал для нее кейс.

Теперь клавиатуру можно переносить в рюкзаке. Модельки и прошивки можно скачать с github.

 

Оставить комментарий

 
  2025-05-24

Эмуляция мыши клавиатурой

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

CONFIG_ZMK_POINTING=y

Однако, когда я это сделал, ничего не произошло. Назначенные мной кнопки вели себя по-прежнему. Перепробовал всё — не помогло.

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

# Enable mouse support
config ZMK_MOUSE
    default y

config ZMK_POINTING
    default y

Эту деталь подсказал мне Trae — ChatGPT и Claude об этом не упомянули, хотя честно пытались помочь. Теперь, чтобы двигать курсор, вовсе не обязательно использовать мышку — можно обойтись клавишами клавиатуры.

 

Оставить комментарий

 
  2025-05-24

Honeycomb Wall

В моём углу, где я работаю, постепенно скапливается много всякой мелочи, которую нужно куда-то убирать. Часть вещей я убираю в выдвижной ящик, часть — на полочку над столом, но всё равно хочется ещё куда-то убирать клавиатуры и рабочий лэптоп. Горизонтальных поверхностей не очень много, но есть много вертикальных. Идеально было бы вешать некоторые вещи на стену, но нужно придумать для этого какие-то крючки. Сейчас у меня уже висят на стене монитор, лэптоп, внешний диск, лампа. Но туда ещё можно много всего навесить...

У ИКЕА есть доска с дырками SKÅDIS, которая отлично подходит для этого. Однако размер доски фиксированный и не очень вписывается в мой угол, где уже висят монитор, ноутбук и полка. Стал гуглить, существует ли какая-то модульная система, и нашёл вот такое: Honeycomb wall storage system.

Даже на картинке у автора такой же бардак, как у меня — значит, мне точно подойдёт!

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

 

Оставить комментарий

 
  2025-05-15

P-канальный полевой транзистор

электроника

Обнаружил, что транзисторы, которые я поставил в поливалку и которыми коммутирую делитель напряжения и датчик влажности почвы, не самые подходящие — я использовал n-канальные IRLML2402, которые мне любезно подсказал Леонид Каганов. Они отлично открываются при уровнях трёхвольтовой логики, на которой работает ESP-8266, и держат большой ток. Но для коммутирования нагрузки, если нужно разрывать плюсовой провод питания, не годятся — для этого обычно используют p-канальные транзисторы, например IRLML6402. Заказал на AliExpress, но посылка так и не приехала — где-то потерялась по дороге. Заказал ещё раз, транзисторы приехали, но после того как я их поставил в устройство, выяснилось, что при уровнях трёхвольтовой логики транзистор полностью не запирается — на нагрузке вместо нуля оказывается 2.6 вольта. То ли прислали из бракованной партии, то ли прислали транзисторы другого номинала. Бог любит троицу — заказал ещё раз, на этот раз на Amazon, чтобы прислали побыстрее: не терпится начать отлаживать софт для устройства.

Update. Подумалось, а не перепутал ли я сток с истоком? Если да, то это объясняет почему транзистор не закрывается. Напряжение в 2.6 вольт это очень похоже на падение напряжения на паразитном диоде полевого транзистора.... Приду домой проверю эту гипотезу...

Update 2. Блин, точно, в отличии от обычных транзисторов где n-p-n и p-n-p включаются почти одинаково эммитером к низу, полевые транзисторы "переворачивают" при работе в режиме ключа. Поэтому p-канальные транзисторы нужно подключать верх-ногами - истоком к плюсу и стоком к нагрузке! Теперь стало все на свои места, век живи, век учись.

 

Оставить комментарий

 
  2025-05-04

Универсальная раскладка клавиатуры

Меня всегда раздражало, что знаки препинания на русской и английской клавиатурах расположены в разных местах. Но настоящий ад начался, когда я переехал в Германию и начал пользоваться немецкой раскладкой.

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

Часто замечаю, что не помню, где находится нужный символ в русской раскладке — и специально переключаюсь на английскую или немецкую, чтобы его набрать. Это прерывает поток мысли, замедляет набор текста и вызывает раздражение. Особенно бесят умляуты на немецкой клавиатуре — они оккупировали те клавиши, где в английской раскладке были нужные знаки. А если символ прячется под левым Alt, приходится выкручивать кисть в стиле ручной Камасутры, чтобы нажать сразу две неудобные клавиши.

Теперь, когда я научился настраивать кастомную клавиатуру при помощи ZMK, стало интересно — справится ли он с этой задачей? ZMK — это прошивка для кастомных клавиатур на базе операционной системы реального времени Zephyr. И использовать его просто как посредника между кнопкой и символом — значит бездарно тратить его потенциал. Хочется задействовать всю его мощь, чтобы создать действительно умную раскладку, которая адаптируется под мои реальные задачи и привычки.

И тут у меня возник вопрос: а можно ли сделать так, чтобы все знаки препинания были на одних и тех же клавишах — вне зависимости от того, включена русская, немецкая или английская раскладка?

Оказалось, можно! И работает это потрясающе удобно.

Русскую раскладку почти не пришлось трогать — в ней мало специфических символов. В немецкой я убрал умляуты с основных клавиш и перенёс их под правый Alt, а на их места вернул знаки препинания, совпадающие с английской раскладкой.

До:

После:

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

Выложил прошивку на github.

 

Оставить комментарий

 
  2025-05-02

Ложные друзья переводчика

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

Название заимствовано из старонемецкого языка и почти точно копирует оригинальное «Stangenzirkel», но в современном языке это слово отсутствует. По-немецки штангенциркуль называется «Messschieber» или «Schieblehre» — соответственно, «раздвижной измеритель» или «раздвижная линейка».

Кстати, по-английски штангенциркуль будет calipers — видимо, слово родственно слову «калибр».

 

Оставить комментарий

 
  2025-04-27

Новости клавиатуростроения

Подключение клавиатуры к микроконтроллеру оказалось не проблемой. Оказалось, что шилды Arduino Pro Micro и Nice!nano совместимы по выводам, поэтому можно использовать те же ноги, что и в инструкциях для Pro Micro. Чтобы залить прошивку, достаточно подключить Nice!nano к компьютеру проводом USB Type-C и дважды закоротить вывод reset с землёй на плате — после этого плата автоматически определяется как флешка, на которую нужно скопировать файл с прошивкой.

Сегодня я наконец разобрался, какие клавиши за что отвечают и как можно переключать слои. Столбцы на левой половине клавиатуры оказались в порядке, а столбцы на правой пришлось угадывать методом научного тыка. Выяснилось, что Aurora Sofle, прошивку которой я взял за основу, переключает слои с помощью клавиш, которые я просто не припаял. Чтобы не перепаивать устройство, я решил немного модифицировать прошивку. Благодаря тому, что сборка прошивки настроена через CI/CD GitHub'а, с этим почти не возникло проблем. Пока что я не придумал, как лучше организовать переключение языков: мне нравилось использовать для этого CapsLock, но на этой клавиатуре его по определению нет. Временно можно использовать Alt-Control, как и раньше, но, думаю, сделать отдельную клавишу для переключения не будет проблемой — нужно будет только решить, какую именно и где её разместить...

Пока устройство выглядит довольно брутально — с проводами и контроллерами снаружи. Заказал необходимые детали на AliExpress. Как приедут, запрячу всё внутрь, и будет почти идеально.

 

 

Оставить комментарий

 
  2025-04-25

Ты не один

Почему-то сегодня в голове играет эта песня. Пусть она будет сегодня и тут тоже...

 

 

Оставить комментарий

 
  2025-04-25

Поливалка

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

Мне прям нравится то что получается.

 

Оставить комментарий