?

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: 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)
[User Picture]From: nikandroff
2012-03-12 11:23 am (UTC)
Хм, у меня всё нормально пашет. Вы апдейты OCF-ами ставили, или OTA? Если OTA, попробуйте OCF, и в нём сразу после прошивки врубить developer mode и посмотреть, что он говорит.

У меня вот так, никаких проблем нету:
BusyBox v1.20.0.git (MeeGo 3:1.20-0.1+0m7) built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ $ id
uid=29999(user) gid=29999(users) groups=4(adm),20(dialout),670(pulse-access),29999(users)
~ $ accli -I
Current mode: normal
IMEI: ##################
Credentials:
        UID::user
        GID::users
        GRP::adm
        GRP::dialout
        GRP::pulse-access
        GRP::users
~ $ devel-su
Password: 


BusyBox v1.20.0.git (MeeGo 3:1.20-0.1+0m7) built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # id
uid=0(root) gid=0(root) groups=0(root),4(adm),20(dialout),670(pulse-access)
~ # accli -I
Current mode: normal
IMEI: #################
Credentials:
        UID::root
        GID::root
        GRP::root
        GRP::adm
        GRP::dialout
        GRP::pulse-access
(Reply) (Parent) (Thread)