?

Log in

No account? Create an account
Благая весть русскоязычным пользователям n950 - Журнал Восставшей Машины [entries|archive|friends|userinfo]
ArkanoiD

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Благая весть русскоязычным пользователям n950 [Mar. 11th, 2012|01:18 am]
ArkanoiD
[Tags|]

nikandroff победил ублюдочную автокапитализацию ввода на железной клавиатуре и написал небольшой комментарий о том, где там что крутится. Далее цитирую его письмо:


Выставлять раскладки в Harmattan через setxkbmap
(http://meegos.ru/wiki/index.php/Nokia_N950) - извращение.

В Harmattan за раскладки отвечает пачка ключей в GConf, скрипт
/usr/bin/update-hwkb-config, и файлы описания
клавиатур в /etc/meego-input-method-configuration/hw-keyboard.

N950 бывает только одной модификации (что мне известны), это 0100 с
английской раскладкой клавиатуры. В каталоге
/etc/meego-input-method-configuration/hw-keyboard есть и другие
варианты, но скрипт /usr/bin/update-hwkb-config
выбирает их, читая при помощи sysinfoclient инфу об устройстве, и
выбирая 0100. Так как сам скрипт не изменить
из-за aegis, необходимо проделать следущий финт ушами (0700 - код
несуществующего устройства с русской раскладкой
а-ля E7, её обычно и юзают те, кто выставляет раскладку по setxkbmap):

$ devel-su
# cd /etc/meego-input-method-configuration/hw-keyboard
# mv 0100 0100.old && cp -R 0700 0100

После этого можно запустить /usr/bin/update-hwkb-config (или
перезагрузиться). Переключение по Ctrl+Space. Заодно
и индикатор раскладки в статусной строке показывает русские буквы.
Если телефон выставлен на русский язык, то
даже нормально работает расстановка заглавных букв. В противном случае
нормально в заглавные выставляются только
английские буквы. К сожалению, последовательное нажатие Shift, а затем
буквы в данном случае тоже не работают для
русского. Судя по исходникам meegotouch-inputmethodkeyboard,
правильная работа автозаглавных завязана на локаль,
а она вся выставляется только по языку интерфейса.

Выключить расстановку заглавных букв можно так (оно выставляет это и
для английского, и для русского варианта,
так как английский вариант для кода 0700 это ru(latin), а русский -
это ru(cyrillic)):

$ gconftool-2 -t string -s
/meegotouch/inputmethods/hwkeyboard/autocapsdisabledlayouts ru

Клава, выскакивающая по клавише Sym лежит в
/usr/share/meegotouch/virtual-keyboard/layouts/hwsymbols_common.xml.

В качестве бонуса - клавиатурная раскладка, максимально
соответствующая физической раскладке N950 (очень уж тяжело
запоминать другую раскладку пунктуации, а йцукен пальцы сами помнят).
Для лишних русских букв вместо Fn используется
Sym, так можно оставить все остальные символы на своих местах. С
автозаглавными буквами (БЮЖЭХЪ) работает до сих пор
немного странновато, но это лучшее из того, что у меня вышло.

# cp ~user/nokia /usr/share/X11/xkb/types/
# cp ~user/rm-680 /usr/share/X11/xkb/symbols/nokia_vndr/
---

файлики лежат тут:
http://milliways.chance.ru/~ark/Nokia/harmattankeyboardautocapitalizationstuff_.zip
linkReply

Comments:
[User Picture]From: eth0_blog
2012-03-10 09:58 pm (UTC)
О, спасибо.
(Reply) (Thread)
[User Picture]From: alexkuklin
2012-03-10 10:09 pm (UTC)
адЪ
(Reply) (Thread)
[User Picture]From: ximaera
2012-03-10 10:39 pm (UTC)
(Reply) (Thread)
[User Picture]From: arkanoid
2012-03-10 11:03 pm (UTC)
а что делать? не надо мне только про андроид.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: nikandroff
2012-03-11 07:07 pm (UTC)
На самом деле, как ни странно, чем больше я всё это ковырял, тем больше понимал, что всё это сделано изначально для того, чтобы геммороя было меньше, а простоты больше. Но в один прекрасный момент, по приказанию начальства, промышленный N950 был отменён, и вместе с ним и все особенности интернационализации.
Изначально, с исходной клавой оно работает как конфетка. Проблема, фактически, только в том, что девайс выпускался только с одной (us) физической клавой. Соответственно, у него внутренний код был только us. Пост показывает, что было достаточно как-то поменять код устройства (т.е. указание на то, какая физически клава у нас есть) и код локали для того, чтобы всё работало конфеткой. Просто это было запрятано глубоко и не все хотели туда копать. Если бы N950 был бы коммерческим девайсом, оно бы всё работало ещё прошлой весной.
(Reply) (Parent) (Thread)
[User Picture]From: ximaera
2012-03-10 10:40 pm (UTC)
P. S. Маркетологи Нокии во главе с г-ном троянским конём должны гореть в аду.
(Reply) (Thread)
[User Picture]From: amarao_san
2012-03-11 01:32 am (UTC)
они и будут гореть. Только сначала MS обзаведётся своим подразделением по выпуску смартфонов и патентным пулом, чтобы троллить андроид и иос. Для этого и засылали.
(Reply) (Parent) (Thread)
From: luarvique
2012-03-11 05:11 am (UTC)
Маркетологов то за что? Им дивное новое руководство наверно уже последние остатки мозгов вынесло своими именениями курса.
(Reply) (Parent) (Thread)
[User Picture]From: amarao_san
2012-03-11 01:33 am (UTC)
Кстати, а root'а они не вернули до сих пор? Уже два апдейта было, а devel-su всё ещё ругается на невыставленный suid...
(Reply) (Thread)
[User Picture]From: nikandroff
2012-03-11 07:07 pm (UTC)
Поясните мысль.
На что devel-su ругается?
(Reply) (Parent) (Thread)
[User Picture]From: amarao_san
2012-03-12 08:42 am (UTC)
$ devel-su
Password:
su: can't set groups: Operation not permitted

$ su
su: must be suid to wrok properly

$ login
login: must be suid to wrok properly
(Reply) (Parent) (Thread) (Expand)
From: TheCakeIsAlive [ya.ru]
2012-03-11 04:36 pm (UTC)
Обругать содержимое вики — это, конечно, круто, но почему его поправить нельзя? Вики для того и придумали.
(Reply) (Thread)
[User Picture]From: nikandroff
2012-03-11 07:00 pm (UTC)
Редактируйте его как хотите, можно даже ссылок на оригинал не ставить, всё паблик домен. Просто там от меня регистрацию требовали :)
(Reply) (Parent) (Thread)
From: TheCakeIsAlive [ya.ru]
2012-03-12 04:30 pm (UTC)
Понятно, меня регистрация в таких случаях обычно не останавливает :)
(Reply) (Parent) (Thread)
[User Picture]From: arilou
2012-03-12 07:55 pm (UTC)
А нет ли каких вестей о том, как бы пользователю N900 превратиться в пользователя N950? ;)
(Reply) (Thread)