Некоторое время назад ко мне обратился один мой знакомый на предмет “кастомизации” Nokia N810. Вопрос был озвучен ещё до появления в продаже самих таблеток и касался облегчения ввода с помощью встроенной клавиатуры кириллических текстов. Проблема была в том, что не хотелось дожидаться появления в России локализованных моделей (с русскими буквами на клавиатуре), поскольку они и появятся не скоро, да и стоить будут как всегда — запредельно.
Вот и попросил он, имея опыт использования Трео 650 с английской клавой, сделать нечто аналогичное для N810 — дополнительную фонетическую раскладку “ЯВЕРТЫ”. Поскольку пару месяцев назад я делал нечто похожее для Bluetooth клавиатур для Nokia N800 то, в рамках этого своего проекта, решил сделать и альтернативные раскладки для встроенной клавиатуры N810. Здесь я хочу пояснить что и как было сделано.
Я опущу все исследования и опишу только результат. Как оказалось, Nokia поддержку встроенной клавиатуры реализовала не на чистом XKB. Её функционирование определяется частично конфигурационными файлами, а частично жёстко прошита в исполнительные, в отличии от Bluetooth клавиатур. В частности фиксировано подмножество допустимых локализованных раскладок (прошит в апплет выбора для аппаратной клавиатуры). Из-за этого мне пришлось пойти по пути замены существующего описания на своё, а не добавления нового (как это было сделано для N800). В N810 зашиты 7 раскладок:
- us — U.S. English;
- fisenoda — Finnish/Swedish/Norwegian/Danish;
- ptes — Portuguese/Spanish;
- fr — French;
- de — German;
- ru — Russian;
- it — Italian.
Как оказалось, на разных раскладках не совпадают не только национальные буквы, но и расположение специальных символов. Поэтому я решил делать под каждую раскладку свой пакет. Поскольку на настоящий момент я смог получить фотографии только 2-х раскладок (английской и скандинавской), то и готовы пока только 2 пакета. Ниже я прикладываю фотографии известных мне раскладок.
U.S. English:
FiSeNoDa:
Количество клавиш на всех раскладках совпадает, как и их скан-коды. Соответствие скан-кодов клавишам видно на следующем рисунке (осторожно, высокое разрешение — большой объём):
Помимо того, что Nokia строго определила допустимые варианты раскладок, она программно вмешалась в работу XKB модуля. Чтобы не заморачиваться на ввод всех необходимых символов с клавиатуры, была введена многофункциональная клавиша <Chr>, которая одновременно решает несколько задач, попутно модифицируя встроенный таблицы xkb. В частности её нажатие вызывает на экран виртуальную клавиатуру дополнительных символов, одновременное нажатие её и буквы вводит букву с альтернативной раскладки и сочетание <Ctrl>+<Chr> фиксирует переключение альтернативной раскладки. Это опять же побудило меня не задавать собственное переключение раскладок, а полностью сохранить всю логику работы управляющих клавиш. Ещё один момент в Нокиевской реализации меня удивил. Не смотря на то, что на клавиатуре две клавиши <Shift>, электрически они параллельны. Другими словами у них единый скан-код. Ну и последнее ограничение. На клавиатуре для ввода символов задействовано всего 32 клавиши. А в русском языке, как ни странно, 33 буквы. Я не смог придумать, куда переносить одну букву (точнее как её вводить — с помощью <Fn>, заменив спец.символ, перенести на основную клавиатуру, или ещё как) и пока решил сделать без буквы “Ё”. Если появятся разумные идеи куда её вывести — готов вернуться к этому вопросу.
Получившаяся раскладка выглядит так:
В настоящей реализации пакеты содержат в себе патч для одного файла:
/usr/share/X11/xkb/symbols/nokia_vndr /rx-44
При установке пакета старая раскладка Ru переименовывается, а новая дописывается в конец файла с метками начала и конца. При удалении моя раскладка удаляется, а старая переименовывается обратно.
Собственно сами раскладки выложены всё в том же моём разделе в Maemo гараже.
Реконструкция поста от 25 декабря 2007 года
27 сентября, 2008 at 06:43
дорогой друг, а не могли бы Вы, по доброте своей душевной и на радость многим , сделать нечто подобное, а именно фонетическую клавиатуру для Нокиа Е90?! ПОЖАЛУЙСТА!! Еасли нужны скруны или онфо, то напишите. буду Вам признателен. Я поискал в сети, именно решения этой проблемки, никто не предлогает. Может быть Вы возмётесь??!
27 сентября, 2008 at 11:14
Когда я собирался покупать себе Е90, я думал об этом, поскольку преполагал брать в Финляндии по-дешевле. Однако в реалии в России, все официально продаваемые Нокиевские девайсы, дешевле чем на их исторической родине. И поэтому я свою ешку брал в Питере с русской раскладкой. Предварительный прикид (до покупки) показал, что создание альтернативных раскладок под симбиан — дело совсем не простое. Раскладки — это не конфигурационные файлы, которые достаточно просто подправить. Информации по ним просто нет и копаться надо очень серьёзно. Параллельно я узнал, что существует очень бюджетная возможность просто заменить клавиатуру на кирилическую. Чисто механически. Совсем недорого. Так что могу посоветовать Вам именно этот вариант.