Pull to refresh

Comments 10

Круто, сам долго искал способ как наладить работу клавиатуры на русском и английском. Пока что остановился на приложении free physical keyboard.
Моя клавиатура содержит кучу доп. клавиш, интересно, можно ли их как-то тоже настроить таким способом?

Попробовать стоит. Алгоритм простой:
1. Выяснить какие коды (Linux key codes) производят эти клавиши. Для этого есть несколько приложений. Я использовал Gamepad Tester.
2. Назначить этим кодам соответствующие андроидовские клавиши (Android key). Тут есть список по-умолчанию в формате key LINUX_KEY_CODE ANDROID_KEY. Назначать их нужно в kcm-файле (т.к. дополнительные раскладки задаются с его помощью) в формате map key LINUX_KEY_CODE ANDROID_KEY.
Довольно давно работаю с андройдов. Клавиатурный дефицит присущ вплоть до последних версий AOSP. Разработчики даже наэкранную клавиатуру не могут довести до ума.
Замечательно, что находятся такие люди, которым не все равно. Печален тот факт, что возможности скованы самоограничением в использовании рута. Хотя так иногда даже интереснее…

Реквестирую свои хотелки по клавиатуре:
  1. Хотелось бы переключать язык раскладки не только Alt+Space, а ещё иметь горячую клавишу (например правый Alt), которая меняет раскладку на время нажатия этой клавиши, соответственно, при отпускании её язык раскладки возвращался обратно. Это очень удобно, когда работаешь всего двумя языками.
  2. Хотелось бы чтобы когда клавиатура пребывает в состоянии русского языка, горел индикатор CapsLock. Из продвинутых пользователей этой функцией все равно мало кто пользуется, у многих линуксоидов действие по клавише CapsLock переназначено на что-то более полезное.
  3. Также хочется назначать доп.функции свои коды на длительное нажатие клавиш (комбинаций клавиш). Это способствует более быстрому запоминанию и привыканию к более ужатым (и без того огромным) спискам комбинаций хоткеев.
1. В комментарии к русской раскладке (да и к другим тоже), которая поставляется с Android так и написано: «As an added convenience, English characters are accessible using ralt (Alt Gr)». Т.е. английские символы и так доступны при зажатом ALT_RIGHT. Проверено — работает.

2. Насчёт LED не знаю. Есть небольшое упоминание в документации и список led в Generic.kl файле. Надо разбираться.

3. Про длительность нажатия в документации ни слова не видел. Такие вещи уже приложения обрабатывать должны, как мне кажется. Возможно, самописная клавиатура будет решением.
Пришла в голову мысль включить в сборку еще один язык. Рядом с «Английский (США)», «Английский (Великобритания)» какой-нибудь «Английский (Россия)». Сделать копию английской раскладки с включенными русскими буквами в комбинации с RALT.
Я раньше и сам не думал что длительное нажатие комбинации вообще нужно. Так было пока в руки не попал ноут с клавиатурой, где ряд клавиш с F1-F12 совмещен с рядом клавиш TILDA 0-9 + — BKSP. И к обычным привычным комбинациям приходится добавлять клавишу FN.
Возможно, у разработчиков этой клавиатуры по 6 пальцев на руке… но, вероятнее всего, это тренд. Против моды идти бесполезно.
Вот так выглядит это чудо
image

Проект — основа для кастомизации. Можете себе туда добавить всё что хотите. Русские символы по ralt добавить не сложно. Нужно поправить правила в английском kcm-файле, добавив поведение при зажатом ralt для каждого символа.
Проблема с другим символом по долгому нажатию в том, что его сложно отделить от случая, когда пользователь хочет ввести один и тот же символ несколько раз подряд. Например, АААААААААААААААААААА. Такое либо на програмном уровне должно обрабатываться (сторонняя программная клавиатура), либо на уровне самой физической клавиатуры (какая-нибудь моднейшая перепрошиваемая клавиатура).

Долгое нажатие неплохо реализовано в наэкранной клавиатуре. Покопался в xml. Вот сейчас в ветке master там чёрт ногу сломит. А еще в пятом андройде была каждая раскладка в своём едином файле, и потому все более-менее понятно. Там в описаниях раскладок у клавиш был параметр repeatable. В значение true установлен на таких клавишах как Space, Enter, Delete. Ну а большинство клавиш по длительному нажатию выдавало мини-клавиатуру с разными доп.символами.
Я не думаю что это большая проблема отличить хочу ли я повторного нажатия, наример, комбинации Ctrl+Shift+Win+F3 или я имел в виду, например, комбинацию Ctrl+Shift+Win+Alt+F3, которая будет прописана на длительное нажатие Ctrl+Shift+Win+F3.
Если говорить о предсказывании пользовательских действий, стоит упомянуть, что наэкранная клавиатура андройда неплохо исправляет очепятки. По моему мнению, это реализовать куда сложнее, чем реализация пользовательского списка длительных комбинаций клавиш.
Это просто мысли вслух. Ни в коем случаем не подумайте, что прошу вас реализовать это. Мне просто тоже интересна эта тема. Очень люблю копать исходники AOSP.

Ничего не могу сказать насчёт наэкранной клавиатуры. Раскладки из статьи для физической работают и выбираются они в настройках физической клавиатуры.
А что с xml непонятно?

Ну вот посмотрите как сделана раскладка в Hackers Keyboard. Несмотря на то, что клавиатура кастомная, много кода было взаимствовано с 1-4х андройдов. Структура оформления сохранилась, если мне не изменяет память, со 2го андройда. Все лаконично и вся раскладка в одном файле. Легко добавить/убрать любую клавишу.
А теперь посмотрим что там в ветке master у AOSP. Где тут можно добавить/убрать клавишу?
Only those users with full accounts are able to leave comments. Log in, please.