91

Re: Что я наделал со своим зверьком...

Blayder пишет:
JumpErr пишет:

А смысл держать home на карте памяти? Разве она шустрее? А если и шустрее, то разница видимо мизерная.

карта памяти 10й класс. eMMC сопоставима с 4-6м классом по скорости. Сколько я замерял - у меня скорее тянет на 4й, чем на 6й =/
И да - работало в таком варианте гораздо лучше. особенно с 4мя swap'ами big_smile

Будет инструкция? smile

N900 - живучий тел smile.

Поделиться

92

Re: Что я наделал со своим зверьком...

JumpErr пишет:

Будет инструкция? smile

Хорошо, как только соберусь делать - буду все документировать big_smile

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

93

Re: Что я наделал со своим зверьком...

Blayder пишет:
JumpErr пишет:

Будет инструкция? smile

Хорошо, как только соберусь делать - буду все документировать big_smile

Здорово! smile.
А что ещё будет отличаться в сборке от стандартной прошивки помимо home на карту и 4-ёх свапов? )

N900 - живучий тел smile.

Поделиться

94

Re: Что я наделал со своим зверьком...

Да сборкой это не назвать. Набор инструкций, что можно наделать со зверем big_smile
Ядро собственной сборки с патчами BFS и BFQ, bash, sudo нормальное без всяких sudser и rootsh, может чего еще придумаю. над собраться и начать делать снова smile

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

95

Re: Что я наделал со своим зверьком...

Blayder пишет:

Да сборкой это не назвать. Набор инструкций, что можно наделать со зверем big_smile
Ядро собственной сборки с патчами BFS и BFQ, bash, sudo нормальное без всяких sudser и rootsh, может чего еще придумаю. над собраться и начать делать снова smile

Ок, будем ждать smile.
Помнится писали, что с 4мя свапами работало быстро и не тормозило с кучей прложений в фоне.
С радостью потестю, только с установкой на emmc ).

N900 - живучий тел smile.

Поделиться

96

Re: Что я наделал со своим зверьком...

eMMC 6 класс? каким боком определить? просто у меня на еММС скорость записи/чтения 12к (12 class? big_smile), правда через USB)

Поделиться

97

Re: Что я наделал со своим зверьком...

грубо говоря - склько mb/s записывает - такой и класс.
У меня записывает со скоростью примерно 4mb/s - 4 класс.

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

98

Re: Что я наделал со своим зверьком...

В последнее время что-то на великие подвиги не тянет со зверем =/
Единственное, что пока сделал - на прошлых выходных перепрошился и вернул всю систему назад в убифс и поставил bfs из репов, ибо свой пока собирать как-то лень.
Вчера поковырял reiser4 на карте памяти - ничо так он сжимает - на данный момент opt+home весят 400мб. При сжатии lzo - ужимается до 355мб, а вот при gzip сжатии - до 235мб. Сейчас перенес /home на карту памяти с reiser4 и gzip сжатием smile подразогнал проц снова до 1Ггц и пока выкинул нафег тюнинг от свапполюба и еще некоторых своих параметров - работает вроде нормально. Посмотрим, как оно дальше будет - вдруг спонтанные ребуты повылезают опять big_smile

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

99 (20.10.2011 14:39:58 отредактировано littre)

Re: Что я наделал со своим зверьком...

надо же, до сих пор остались энтузиасты, респект

я так же с ума сходил пару лет назад)))
все есть в архивах форума.

немного мыслей по поводу последних постов
- замеры еммс я делал, записывая поток из нулла на память командой дд, скорость у меня действительно была равна примерно карте 6 класска сандиск 8гб
- вначале была жесткая проблема быстрого заполнения рутфса, нокловцы от этого открещивались, все валя на авторов пакетов, не удосуживающихся оптифицировать.. тогда я придумал сначала перенести /usr на еммс, попутно экспериментировал с ресайзом партиций и загрузкой системы с карты памяти и получением огроменного язя, тьфу, рута))) потом в одной из последних прош они таки сделали жесткую оптификацию всего и вся и проблема отпала
со страйпом свопов я пробовал делать их два, один штатный плюс второй на сд карте, количественные замеры показали тщетность этой затеи. а потом арабы сделали пакет swappolube или как то типа того, который правит swappiness вкупе с другими параметрами, улучшающими отзывчивость, и проблема снова отпала

Поделиться

100

Re: Что я наделал со своим зверьком...

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

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

101

Re: Что я наделал со своим зверьком...

Недавно снова взялся потыркаться и поковыряться и заметил чудесную вещь - теперь можно сделать переключение раскладки по ctrl+shift! Для более удобного пользования надо будет еще подправить RX-51 и провести пару экспериментов и возможно тормозюченное переключение раскладки угнокии можно будет забыть и наконец пользоватья нормальным переключением их и не только в поле ввода!

П.С. Смотрю все перебрались на N9 и зверек потихоньку затухает.

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

102

Re: Что я наделал со своим зверьком...

Blayder, получается Нокиа 2 года тупо не хотела разбираться с такой простой проблемой...

Насколько я вижу - с Н900 на Н9 перешли единицы. А вот новеньких, купивших Н9 - довольно много.

N900 - живучий тел smile.

Поделиться

103

Re: Что я наделал со своим зверьком...

Фз чего они там вообще думали и делали. Руки пока не доходят до rx-51 поковыряться. Может завтра потыркаюсь и проведу пару опытов. Как раз выходной big_smile

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

104

Re: Что я наделал со своим зверьком...

перелопатил rx-51 со своими биндами и под переключение ctrl+shiftниже сам rx-51:
измененны русская и юс раскладки, так же внизу бинды для стрелочек.
Для корректной работы в настройках выбрать раскладку English/Nordic
И собственно установить уже раскладку можно через терминал

setxkbmap -option -option grp:ctrl_shift_toggle -layout us,ru
+ /usr/share/X11/xkb/symbols/nokia_vndr/rx-51
default partial alphanumeric_keys
xkb_symbols "common" {
    include "nokia_vndr/rx-51(common_keys)"
    include "nokia_vndr/rx-51(modifiers)"


    // This section should not be included by any other section.
    // It's referenced only once by rule file to allow multiple layout configurations.


    // More than one layout at the same time could be set for instance as follows:
    // setxkbmap -rules evdev \
    //           -model nokiarx51 \
    //           -option grp:ctrl_shift_toggle \
    //           -layout us,cz \
    //           -variant ",qwerty"


    // Notice the similarity:
    //   "pc+us+cz(qwerty):2+grp:XYZ" vs.
    //   "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ"
    // where XYZ is one of xkb_symbols section usually located in file symbols/group.


    // Bear in mind that option XYZ could replace current keys configuration!!!


    // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys
    // which may disallow opening of virtual symbol table (Multi_key).
    // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle
    // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore
    // pressing Ctrl+Shift will switch to previous layout, not to the next one.


    // For RX-51 device there is a lot of restrictions if more than one layout is
    // is configured at the same time because some modifiers and special cases are
    // handled by hildon layer (especially with eight-level layout):
    //  - settings may be done from terminal only (GUI doesn't and won't support it)
    //  - virtual symbol table is not updated according to current layout
    //  - for unknown reasons the eight-level layout (nordic,ru) works properly
    //    only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru")
    //    otherwise it's not possible to access levels 5-8
    //  - Ctrl+Space related problems:
    //     - If eight-level layout is used as first layout one of eight-level layouts has to
    //       be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled
    //     - Ctrl+Space has no effect if only four-level layouts are chosen
    //       (don't forget the layout configured in GUI - despite of it's not reachable)
    //     - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?)
    //       in case eight- and four-level layouts are configured simultaneously
    //     - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts
    //       in case eight- and four-level layouts are configured simultaneously
    //     - four-level layout on first place doesn't work at all when Ctrl+Space is "turned on"
    //       in case the 2nd, 3rd or 4th layout is eight-level layout
};


////////////////////////////////////////////////////////////////////////////////


partial alphanumeric_keys
xkb_symbols "us" {
    include "nokia_vndr/rx-51(arrows_4btns)"
    name[Group1] = "U.S. English";


    // 1. row
    key <AD01>    { [    q,        Q,        1,            1            ] };
    key <AD02>    { [    w,        W,        2,            2            ] };
    key <AD03>    { [    e,        E,        3,            3            ] };
    key <AD04>    { [    r,        R,        4,            4            ] };
    key <AD05>    { [    t,        T,        5,            5            ] };
    key <AD06>    { [    y,        Y,        6,            6            ] };
    key <AD07>    { [    u,        U,        7,            7            ] };
    key <AD08>    { [    i,        I,        8,            8            ] };
    key <AD09>    { [    o,        O,        9,            9            ] };
    key <AD10>    { [    p,        P,        0,            percent      ] };
    key <AB08>      { [    comma,    semicolon,equal,        equal        ] };


    // 2. row
    key <AC01>    { [    a,        A,        asterisk,     asterisk     ] };
    key <AC02>    { [    s,        S,        plus,         plus         ] };
    key <AC03>    { [    d,        D,        numbersign,   numbersign   ] };
    key <AC04>    { [    f,        F,        minus,        minus        ] };
    key <AC05>    { [    g,        G,        underscore,   underscore   ] };
    key <AC06>    { [    h,        H,        parenleft,    braceleft    ] };
    key <AC07>    { [    j,        J,        parenright,   braceright   ] };
    key <AC08>    { [    k,        K,        ampersand,    ampersand    ] };
    key <AC09>    { [    l,        L,        exclam,       bar          ] };
    key <AB09>    { [    period,   colon,    question,     question     ] };


    // 3. row
    key <AB01>    { [    z,        Z,        sterling,     sterling     ] };
    key <AB02>    { [    x,        X,        dollar,       dollar       ] };
    key <AB03>    { [    c,        C,        asciicircum,  EuroSign     ] };
    key <AB04>    { [    v,        V,        slash,        less         ] };
    key <AB05>    { [    b,        B,        backslash,    greater      ] };
    key <AB06>    { [    n,        N,        quotedbl,     bracketleft  ] };
    key <AB07>    { [    m,        M,        apostrophe,   bracketright ] };
    key <SPCE>    { [    space,    Tab,      at,           Tab          ] };
};






partial alphanumeric_keys
xkb_symbols "pl" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_4btns)"


    name[Group1] = "Polish";
};






partial alphanumeric_keys
xkb_symbols "fise" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Finnish/Swedish";


    // 2. row
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question    ] };
};






partial alphanumeric_keys
xkb_symbols "dano" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Danish/Norwegian";


    // 2. row
    key <AB09>    { [    oslash,        Oslash,        exclam,        exclam        ] };
    key <UP>    { [    ae,        AE,        question,    question    ] };
};






partial alphanumeric_keys
xkb_symbols "nordic" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Danish/Finnish/Norwegian/Swedish";


    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";


    // 2. row
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam,        oslash,        Oslash,        exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question,    ae,        AE,        question,    question    ] };
};






partial alphanumeric_keys
xkb_symbols "ptes" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Portuguese/Spanish";


    // 1. row
    key <AB08>    { [    dead_acute,    dead_acute,    dead_grave,    dead_grave    ] };


    // 2. row
    key <AC05>    { [    g,        G,        exclamdown,    exclamdown    ] };
    key <AC06>    { [    h,        H,        exclam,        exclam        ] };
    key <AC07>    { [    j,        J,        questiondown,    questiondown    ] };
    key <AC08>    { [    k,        K,        question,    question    ] };
    key <AC09>    { [    l,        L,        dead_diaeresis,    dead_diaeresis    ] };
    key <AB09>    { [    ntilde,        Ntilde,        dead_tilde,    dead_tilde    ] };
    key <UP>    { [    ccedilla,    Ccedilla,    dead_circumflex,dead_circumflex    ] };


    // 3. row
    key <AB01>    { [    z,        Z,        parenleft,    parenleft    ] };
    key <AB02>    { [    x,        X,        parenright,    parenright     ] };
    key <AB03>    { [    c,        C,        slash,        slash        ] };
    key <AB04>    { [    v,        V,        quotedbl,    quotedbl    ] };
    key <AB05>    { [    b,        B,        apostrophe,    apostrophe    ] };
    key <AB06>    { [    n,        N,        colon,        colon        ] };
    key <AB07>    { [    m,        M,        semicolon,    semicolon    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};






partial alphanumeric_keys
xkb_symbols "fr" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "French";


    // 1. row
    key <AD01>    { [    a,        A,        1,        1        ] };
    key <AD02>    { [    z,        Z,        2,        2        ] };
    key <AB08>    { [    agrave,        Agrave,        ccedilla,    Ccedilla    ] };


    // 2. row
    key <AC01>    { [    q,        Q,        asterisk,    asterisk    ] };
    key <AC02>    { [    s,        S,        plus,        plus        ] };
    key <AC03>    { [    d,        D,        numbersign,    numbersign    ] };
    key <AC04>    { [    f,        F,        minus,      minus        ] };
    key <AC05>    { [    g,        G,        underscore,    underscore    ] };
    key <AC06>    { [    h,        H,        exclam,        exclam        ] };
    key <AC07>    { [    j,        J,        question,    question    ] };
    key <AC08>    { [    k,        K,        colon,        colon        ] };
    key <AC09>    { [    l,        L,        dead_circumflex,dead_circumflex    ] };
    key <AB09>    { [    m,        M,        ugrave,        Ugrave        ] };
    key <UP>    { [    eacute,        Eacute,        egrave,        Egrave        ] };


    // 3. row
    key <AB01>    { [    w,        W,        EuroSign,       EuroSign    ] };
    key <AB03>    { [    c,        C,        parenleft,    parenleft    ] };
    key <AB04>    { [    v,        V,        parenright,    parenright    ] };
    key <AB05>    { [    b,        B,        slash,        slash        ] };
    key <AB07>    { [    comma,        comma,        apostrophe,    apostrophe    ] };
    key <LEFT>    { [    semicolon,    period,        period,        period        ] };
};






partial alphanumeric_keys
xkb_symbols "de" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "German";


    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    udiaeresis,    Udiaeresis,    ssharp,        ssharp        ] };


    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question    ] };


    // 3. row
    key <AB01>    { [    y,        Y,        EuroSign,    EuroSign    ] };
    key <AB03>    { [    c,        C,        equal,        equal        ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};






partial alphanumeric_keys
xkb_symbols "ch" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Swiss";


    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    udiaeresis,    Udiaeresis,    egrave,        Egrave        ] };


    // 2. row
    key <AC06>    { [    h,        H,        equal,        equal        ] };
    key <AC07>    { [    j,        J,        parenleft,    parenleft    ] };
    key <AC08>    { [    k,        K,        parenright,    parenright    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    odiaeresis,    Odiaeresis,    eacute,        Aacute        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    agrave,        Agrave        ] };


    // 3. row
    key <AB01>    { [    y,        Y,        question,    question    ] };
    key <AB02>    { [    x,        X,        exclam,        exclam        ] };
    key <AB03>    { [    c,        C,        ccedilla,    Ccedilla    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};






partial alphanumeric_keys
xkb_symbols "ru" {
    include "nokia_vndr/rx-51(arrows_4btns_m)"
    name[Group1] = "Russian";


    // 1. row
    key <AD01>    { [    Cyrillic_shorti,    Cyrillic_SHORTI,    1,            1            ] };
    key <AD02>    { [    Cyrillic_tse,       Cyrillic_TSE,       2,            2            ] };
    key <AD03>    { [    Cyrillic_u,         Cyrillic_U,         3,            3            ] };
    key <AD04>    { [    Cyrillic_ka,        Cyrillic_KA,        4,            4            ] };
    key <AD05>    { [    Cyrillic_ie,        Cyrillic_IE,        5,            5            ] };
    key <AD06>    { [    Cyrillic_en,        Cyrillic_EN,        6,            6            ] };
    key <AD07>    { [    Cyrillic_ghe,       Cyrillic_GHE,       7,            7            ] };
    key <AD08>    { [    Cyrillic_sha,       Cyrillic_SHA,       8,            8            ] };
    key <AD09>    { [    Cyrillic_shcha,     Cyrillic_SHCHA,     9,            9            ] };
    key <AD10>    { [    Cyrillic_ze,        Cyrillic_ZE,        0,            percent      ] };
    key <AB08>      { [    Cyrillic_ha,        Cyrillic_HA,        equal,        comma        ] };


    // 2. row
    key <AC01>    { [    Cyrillic_ef,        Cyrillic_EF,        asterisk,     asterisk     ] };
    key <AC02>    { [    Cyrillic_yeru,      Cyrillic_YERU,      plus,         plus         ] };
    key <AC03>    { [    Cyrillic_ve,        Cyrillic_VE,        numbersign,   numbersign   ] };
    key <AC04>    { [    Cyrillic_a,         Cyrillic_A,         minus,        minus        ] };
    key <AC05>    { [    Cyrillic_pe,        Cyrillic_PE,        underscore,   underscore   ] };
    key <AC06>    { [    Cyrillic_er,        Cyrillic_ER,        parenleft,    braceleft    ] };
    key <AC07>    { [    Cyrillic_o,         Cyrillic_O,         parenright,   braceright   ] };
    key <AC08>    { [    Cyrillic_el,        Cyrillic_EL,        ampersand,    ampersand    ] };
    key <AC09>    { [    Cyrillic_de,        Cyrillic_DE,        exclam,       bar          ] };
    key <AB09>    { [    Cyrillic_zhe,       Cyrillic_ZHE,       question,     period       ] };


    // 3. row 
    key <AB01>    { [    Cyrillic_ya,        Cyrillic_YA,        sterling,     sterling     ] };
    key <AB02>    { [    Cyrillic_che,       Cyrillic_CHE,       dollar,       dollar       ] };
    key <AB03>    { [    Cyrillic_es,        Cyrillic_ES,        asciicircum,  EuroSign     ] };
    key <AB04>    { [    Cyrillic_em,        Cyrillic_EM,        slash,        slash        ] };
    key <AB05>    { [    Cyrillic_i,         Cyrillic_I,         backslash,    backslash    ] };
    key <AB06>    { [    Cyrillic_te,        Cyrillic_TE,        quotedbl,     bracketleft  ] };
    key <AB07>    { [    Cyrillic_softsign,  Cyrillic_hardsign,  apostrophe,   bracketright ] };
    key <SPCE>    { [    space,              Tab,                at,           Tab          ] };
};






partial alphanumeric_keys
xkb_symbols "it" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Italian";


    // 1. row
    key <AB08>    { [    egrave,        Egrave,        eacute,        Eacute        ] };


    // 2. row
    key <AC06>    { [    h,        H,        semicolon,    semicolon    ] };
    key <AC07>    { [    j,        J,        colon,        colon        ] };
    key <AC08>    { [    k,        K,        exclam,        exclam        ] };
    key <AC09>    { [    l,        L,        question,    question    ] };
    key <AB09>    { [    ograve,        Ograve,        igrave,        Igrave        ] };
    key <UP>    { [    agrave,        Agrave,        ugrave,        Ugrave        ] };


    // 3. row
    key <AB01>    { [    z,        Z,        EuroSign,    EuroSign    ] };
    key <AB02>    { [    x,        X,        parenleft,    parenleft    ] };
    key <AB03>    { [    c,        C,        parenright,    parenright    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};






partial alphanumeric_keys
xkb_symbols "cz" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Czech";


    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    dead_acute,    dead_acute,    sterling,    sterling    ] };


    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    uring,        Uring,        EuroSign,    EuroSign    ] };
    key <UP>    { [    dead_caron,    dead_caron,    dollar,        dollar        ] };


    // 3. row
    key <AB01>    { [    y,        Y,        equal,        equal        ] };
    key <AB02>    { [    x,        X,        slash,        slash        ] };
    key <AB03>    { [    c,        C,        backslash,    backslash    ] };
    key <AB04>    { [    v,        V,        apostrophe,    apostrophe    ] };
    key <AB05>    { [    b,        B,        quotedbl,    quotedbl    ] };
    key <AB06>    { [    n,        N,        exclam,        exclam        ] };
    key <AB07>    { [    m,        M,        question,    question    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};


partial alphanumeric_keys
xkb_symbols "cz_qwerty" {
    include "nokia_vndr/rx-51(cz)"


    name[Group1] = "Czech - qwerty";


    // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled.
    // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51.
    // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty".


    // 1. row
    key <AD06>    { [    y,        Y,        6,        6        ] };


    // 3. row
    key <AB01>    { [    z,        Z,        percent,    percent        ] };
};






////////////////////////////////////////////////////////////////////////////////


partial hidden alphanumeric_keys
xkb_symbols "nordic_base" {
    include "nokia_vndr/rx-51(english_base)"


    // 1. row
    key <AB08>    { [    aring,        Aring,        equal,        equal        ] };


    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };


    // 3. row
    key <AB01>    { [    z,        Z,        EuroSign,    EuroSign    ] };
    key <AB03>    { [    c,        C,        sterling,    sterling    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};


partial hidden alphanumeric_keys
xkb_symbols "english_base" {


    // 1. row
    key <AD01>    { [    q,        Q,        1,        1        ] };
    key <AD02>    { [    w,        W,        2,        2        ] };
    key <AD03>    { [    e,        E,        3,        3        ] };
    key <AD04>    { [    r,        R,        4,        4        ] };
    key <AD05>    { [    t,        T,        5,        5        ] };
    key <AD06>    { [    y,        Y,        6,        6        ] };
    key <AD07>    { [    u,        U,        7,        7        ] };
    key <AD08>    { [    i,        I,        8,        8        ] };
    key <AD09>    { [    o,        O,        9,        9        ] };
    key <AD10>    { [    p,        P,        0,        0        ] };
    key <AB08>    { [    comma,        semicolon,    equal,        equal        ] };


    // 2. row
    key <AC01>    { [    a,        A,        asterisk,    asterisk    ] };
    key <AC02>    { [    s,        S,        plus,        plus        ] };
    key <AC03>    { [    d,        D,        numbersign,    numbersign    ] };
    key <AC04>    { [    f,        F,        minus,        minus        ] };
    key <AC05>    { [    g,        G,        underscore,    underscore    ] };
    key <AC06>    { [    h,        H,        parenleft,    parenleft    ] };
    key <AC07>    { [    j,        J,        parenright,    parenright    ] };
    key <AC08>    { [    k,        K,        ampersand,    ampersand    ] };
    key <AC09>    { [    l,        L,        exclam,        exclam        ] };
    key <AB09>    { [    period,        colon,        question,    question    ] };


    // 3. row
    key <AB01>    { [    z,        Z,        sterling,    sterling    ] };
    key <AB02>    { [    x,        X,        dollar,        dollar        ] };
    key <AB03>    { [    c,        C,        EuroSign,    EuroSign    ] };
    key <AB04>    { [    v,        V,        slash,        slash        ] };
    key <AB05>    { [    b,        B,        backslash,    backslash    ] };
    key <AB06>    { [    n,        N,        quotedbl,    quotedbl    ] };
    key <AB07>    { [    m,        M,        apostrophe,    apostrophe    ] };
    key <SPCE>    { [    space,        space,        at,        at        ] };
};


partial hidden alphanumeric_keys
xkb_symbols "common_keys" {
    // all other common keys


    key <BKSP>    { [    BackSpace,    Delete,    BackSpace,    Delete    ] };
    key <TAB>    { [    Tab        ] };


    // broken UI spec.
    key <RTRN>    { [    KP_Enter    ] };


    key <KPEN>    { [    Return        ] };
    key <ESC>    { [    Escape        ] };


    key <FK01>    { [    F1    ] };
    key <FK02>    { [    F2    ] };
    key <FK03>    { [    F3    ] };
    key <FK04>    { [    F4    ] };
    key <FK05>    { [    F5    ] };
    key <FK06>    { [    F6    ] };


    // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically
    // on left/right and up/down in landscape/portrait orientation. This does
    // not feel natural for the user and therefore we want the VOL+/VOL- keys
    // map to -/+.
    //
    // The only exception is an active call in portrait mode where we want to
    // use the real meanings of the keys. This special case and management of
    // +/- keys in general is handled in maemo-statusmenu-volume.
    key <FK07>    { [    F8    ] };
    key <FK08>    { [    F7    ] };


    key <FK09>    { [    F9    ] };
    key <FK10>    { [    F10    ] };
    key <FK11>    { [    F11    ] };
};


partial hidden alphanumeric_keys modifier_keys
xkb_symbols "modifiers" {
    // Shift switches between current level and level+1
    key <LFSH>    {
    type[Group1] = "ONE_LEVEL",
    symbols[Group1] = [    Shift_L    ]
    };
    modifier_map Shift { Shift_L };


    // Fn+Ctrl virtual symbol table (Multi_key)
    // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon)
    key <LCTL>    {
    type[Group1] = "FOUR_LEVEL",
    symbols[Group1] = [    Control_L,    Control_L,    Multi_key,    Multi_key    ]
    };
    modifier_map Control { Control_L };


    // Fn key (right alt) switches to 3rd level
    include "level3(ralt_switch)"
};


partial hidden alphanumeric_keys
xkb_symbols "arrows_2btns" {
    // rx-51 specific arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key <DOWN>    { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Left,    Up    ] };
    key <RGHT>    { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Right,    Down    ] };
};


partial hidden alphanumeric_keys
xkb_symbols "arrows_4btns" {
    // standard arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key <UP>      { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Up     ] };
    key <LEFT>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Left   ] };
    key <DOWN>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Down   ] };
    key <RGHT>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Right  ] };
};


partial hidden alphanumeric_keys
xkb_symbols "arrows_4btns_m" {
    key <UP>      { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Cyrillic_e,         Cyrillic_E,         Up,        Page_Up   ] };
    key <LEFT>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Cyrillic_be,        Cyrillic_BE,        Left,      Home      ] };
    key <DOWN>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Cyrillic_yu,        Cyrillic_YU,        Down,      Page_Down ] };
    key <RGHT>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Cyrillic_hardsign,  Cyrillic_hardsign,  Right,     End       ] };
};

Потом еще пошаманю как прикрутить назад home/end и pgup/pgdown на стрелочки и не лишиться возможности выделения с зажатым шифтом.

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

105

Re: Что я наделал со своим зверьком...

Blayder пишет:

перелопатил rx-51 со своими биндами и под переключение ctrl+shiftниже сам rx-51:
измененны русская и юс раскладки, так же внизу бинды для стрелочек.
Для корректной работы в настройках выбрать раскладку English/Nordic
И собственно установить уже раскладку можно через терминал

setxkbmap -option -option grp:ctrl_shift_toggle -layout us,ru
+ /usr/share/X11/xkb/symbols/nokia_vndr/rx-51
default partial alphanumeric_keys
xkb_symbols "common" {
    include "nokia_vndr/rx-51(common_keys)"
    include "nokia_vndr/rx-51(modifiers)"


    // This section should not be included by any other section.
    // It's referenced only once by rule file to allow multiple layout configurations.


    // More than one layout at the same time could be set for instance as follows:
    // setxkbmap -rules evdev \
    //           -model nokiarx51 \
    //           -option grp:ctrl_shift_toggle \
    //           -layout us,cz \
    //           -variant ",qwerty"


    // Notice the similarity:
    //   "pc+us+cz(qwerty):2+grp:XYZ" vs.
    //   "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ"
    // where XYZ is one of xkb_symbols section usually located in file symbols/group.


    // Bear in mind that option XYZ could replace current keys configuration!!!


    // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys
    // which may disallow opening of virtual symbol table (Multi_key).
    // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle
    // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore
    // pressing Ctrl+Shift will switch to previous layout, not to the next one.


    // For RX-51 device there is a lot of restrictions if more than one layout is
    // is configured at the same time because some modifiers and special cases are
    // handled by hildon layer (especially with eight-level layout):
    //  - settings may be done from terminal only (GUI doesn't and won't support it)
    //  - virtual symbol table is not updated according to current layout
    //  - for unknown reasons the eight-level layout (nordic,ru) works properly
    //    only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru")
    //    otherwise it's not possible to access levels 5-8
    //  - Ctrl+Space related problems:
    //     - If eight-level layout is used as first layout one of eight-level layouts has to
    //       be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled
    //     - Ctrl+Space has no effect if only four-level layouts are chosen
    //       (don't forget the layout configured in GUI - despite of it's not reachable)
    //     - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?)
    //       in case eight- and four-level layouts are configured simultaneously
    //     - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts
    //       in case eight- and four-level layouts are configured simultaneously
    //     - four-level layout on first place doesn't work at all when Ctrl+Space is "turned on"
    //       in case the 2nd, 3rd or 4th layout is eight-level layout
};


////////////////////////////////////////////////////////////////////////////////


partial alphanumeric_keys
xkb_symbols "us" {
    include "nokia_vndr/rx-51(arrows_4btns)"
    name[Group1] = "U.S. English";


    // 1. row
    key <AD01>    { [    q,        Q,        1,            1            ] };
    key <AD02>    { [    w,        W,        2,            2            ] };
    key <AD03>    { [    e,        E,        3,            3            ] };
    key <AD04>    { [    r,        R,        4,            4            ] };
    key <AD05>    { [    t,        T,        5,            5            ] };
    key <AD06>    { [    y,        Y,        6,            6            ] };
    key <AD07>    { [    u,        U,        7,            7            ] };
    key <AD08>    { [    i,        I,        8,            8            ] };
    key <AD09>    { [    o,        O,        9,            9            ] };
    key <AD10>    { [    p,        P,        0,            percent      ] };
    key <AB08>      { [    comma,    semicolon,equal,        equal        ] };


    // 2. row
    key <AC01>    { [    a,        A,        asterisk,     asterisk     ] };
    key <AC02>    { [    s,        S,        plus,         plus         ] };
    key <AC03>    { [    d,        D,        numbersign,   numbersign   ] };
    key <AC04>    { [    f,        F,        minus,        minus        ] };
    key <AC05>    { [    g,        G,        underscore,   underscore   ] };
    key <AC06>    { [    h,        H,        parenleft,    braceleft    ] };
    key <AC07>    { [    j,        J,        parenright,   braceright   ] };
    key <AC08>    { [    k,        K,        ampersand,    ampersand    ] };
    key <AC09>    { [    l,        L,        exclam,       bar          ] };
    key <AB09>    { [    period,   colon,    question,     question     ] };


    // 3. row
    key <AB01>    { [    z,        Z,        sterling,     sterling     ] };
    key <AB02>    { [    x,        X,        dollar,       dollar       ] };
    key <AB03>    { [    c,        C,        asciicircum,  EuroSign     ] };
    key <AB04>    { [    v,        V,        slash,        less         ] };
    key <AB05>    { [    b,        B,        backslash,    greater      ] };
    key <AB06>    { [    n,        N,        quotedbl,     bracketleft  ] };
    key <AB07>    { [    m,        M,        apostrophe,   bracketright ] };
    key <SPCE>    { [    space,    Tab,      at,           Tab          ] };
};






partial alphanumeric_keys
xkb_symbols "pl" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_4btns)"


    name[Group1] = "Polish";
};






partial alphanumeric_keys
xkb_symbols "fise" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Finnish/Swedish";


    // 2. row
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question    ] };
};






partial alphanumeric_keys
xkb_symbols "dano" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Danish/Norwegian";


    // 2. row
    key <AB09>    { [    oslash,        Oslash,        exclam,        exclam        ] };
    key <UP>    { [    ae,        AE,        question,    question    ] };
};






partial alphanumeric_keys
xkb_symbols "nordic" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Danish/Finnish/Norwegian/Swedish";


    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";


    // 2. row
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam,        oslash,        Oslash,        exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question,    ae,        AE,        question,    question    ] };
};






partial alphanumeric_keys
xkb_symbols "ptes" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Portuguese/Spanish";


    // 1. row
    key <AB08>    { [    dead_acute,    dead_acute,    dead_grave,    dead_grave    ] };


    // 2. row
    key <AC05>    { [    g,        G,        exclamdown,    exclamdown    ] };
    key <AC06>    { [    h,        H,        exclam,        exclam        ] };
    key <AC07>    { [    j,        J,        questiondown,    questiondown    ] };
    key <AC08>    { [    k,        K,        question,    question    ] };
    key <AC09>    { [    l,        L,        dead_diaeresis,    dead_diaeresis    ] };
    key <AB09>    { [    ntilde,        Ntilde,        dead_tilde,    dead_tilde    ] };
    key <UP>    { [    ccedilla,    Ccedilla,    dead_circumflex,dead_circumflex    ] };


    // 3. row
    key <AB01>    { [    z,        Z,        parenleft,    parenleft    ] };
    key <AB02>    { [    x,        X,        parenright,    parenright     ] };
    key <AB03>    { [    c,        C,        slash,        slash        ] };
    key <AB04>    { [    v,        V,        quotedbl,    quotedbl    ] };
    key <AB05>    { [    b,        B,        apostrophe,    apostrophe    ] };
    key <AB06>    { [    n,        N,        colon,        colon        ] };
    key <AB07>    { [    m,        M,        semicolon,    semicolon    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};






partial alphanumeric_keys
xkb_symbols "fr" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "French";


    // 1. row
    key <AD01>    { [    a,        A,        1,        1        ] };
    key <AD02>    { [    z,        Z,        2,        2        ] };
    key <AB08>    { [    agrave,        Agrave,        ccedilla,    Ccedilla    ] };


    // 2. row
    key <AC01>    { [    q,        Q,        asterisk,    asterisk    ] };
    key <AC02>    { [    s,        S,        plus,        plus        ] };
    key <AC03>    { [    d,        D,        numbersign,    numbersign    ] };
    key <AC04>    { [    f,        F,        minus,      minus        ] };
    key <AC05>    { [    g,        G,        underscore,    underscore    ] };
    key <AC06>    { [    h,        H,        exclam,        exclam        ] };
    key <AC07>    { [    j,        J,        question,    question    ] };
    key <AC08>    { [    k,        K,        colon,        colon        ] };
    key <AC09>    { [    l,        L,        dead_circumflex,dead_circumflex    ] };
    key <AB09>    { [    m,        M,        ugrave,        Ugrave        ] };
    key <UP>    { [    eacute,        Eacute,        egrave,        Egrave        ] };


    // 3. row
    key <AB01>    { [    w,        W,        EuroSign,       EuroSign    ] };
    key <AB03>    { [    c,        C,        parenleft,    parenleft    ] };
    key <AB04>    { [    v,        V,        parenright,    parenright    ] };
    key <AB05>    { [    b,        B,        slash,        slash        ] };
    key <AB07>    { [    comma,        comma,        apostrophe,    apostrophe    ] };
    key <LEFT>    { [    semicolon,    period,        period,        period        ] };
};






partial alphanumeric_keys
xkb_symbols "de" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "German";


    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    udiaeresis,    Udiaeresis,    ssharp,        ssharp        ] };


    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question    ] };


    // 3. row
    key <AB01>    { [    y,        Y,        EuroSign,    EuroSign    ] };
    key <AB03>    { [    c,        C,        equal,        equal        ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};






partial alphanumeric_keys
xkb_symbols "ch" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Swiss";


    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    udiaeresis,    Udiaeresis,    egrave,        Egrave        ] };


    // 2. row
    key <AC06>    { [    h,        H,        equal,        equal        ] };
    key <AC07>    { [    j,        J,        parenleft,    parenleft    ] };
    key <AC08>    { [    k,        K,        parenright,    parenright    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    odiaeresis,    Odiaeresis,    eacute,        Aacute        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    agrave,        Agrave        ] };


    // 3. row
    key <AB01>    { [    y,        Y,        question,    question    ] };
    key <AB02>    { [    x,        X,        exclam,        exclam        ] };
    key <AB03>    { [    c,        C,        ccedilla,    Ccedilla    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};






partial alphanumeric_keys
xkb_symbols "ru" {
    include "nokia_vndr/rx-51(arrows_4btns_m)"
    name[Group1] = "Russian";


    // 1. row
    key <AD01>    { [    Cyrillic_shorti,    Cyrillic_SHORTI,    1,            1            ] };
    key <AD02>    { [    Cyrillic_tse,       Cyrillic_TSE,       2,            2            ] };
    key <AD03>    { [    Cyrillic_u,         Cyrillic_U,         3,            3            ] };
    key <AD04>    { [    Cyrillic_ka,        Cyrillic_KA,        4,            4            ] };
    key <AD05>    { [    Cyrillic_ie,        Cyrillic_IE,        5,            5            ] };
    key <AD06>    { [    Cyrillic_en,        Cyrillic_EN,        6,            6            ] };
    key <AD07>    { [    Cyrillic_ghe,       Cyrillic_GHE,       7,            7            ] };
    key <AD08>    { [    Cyrillic_sha,       Cyrillic_SHA,       8,            8            ] };
    key <AD09>    { [    Cyrillic_shcha,     Cyrillic_SHCHA,     9,            9            ] };
    key <AD10>    { [    Cyrillic_ze,        Cyrillic_ZE,        0,            percent      ] };
    key <AB08>      { [    Cyrillic_ha,        Cyrillic_HA,        equal,        comma        ] };


    // 2. row
    key <AC01>    { [    Cyrillic_ef,        Cyrillic_EF,        asterisk,     asterisk     ] };
    key <AC02>    { [    Cyrillic_yeru,      Cyrillic_YERU,      plus,         plus         ] };
    key <AC03>    { [    Cyrillic_ve,        Cyrillic_VE,        numbersign,   numbersign   ] };
    key <AC04>    { [    Cyrillic_a,         Cyrillic_A,         minus,        minus        ] };
    key <AC05>    { [    Cyrillic_pe,        Cyrillic_PE,        underscore,   underscore   ] };
    key <AC06>    { [    Cyrillic_er,        Cyrillic_ER,        parenleft,    braceleft    ] };
    key <AC07>    { [    Cyrillic_o,         Cyrillic_O,         parenright,   braceright   ] };
    key <AC08>    { [    Cyrillic_el,        Cyrillic_EL,        ampersand,    ampersand    ] };
    key <AC09>    { [    Cyrillic_de,        Cyrillic_DE,        exclam,       bar          ] };
    key <AB09>    { [    Cyrillic_zhe,       Cyrillic_ZHE,       question,     period       ] };


    // 3. row 
    key <AB01>    { [    Cyrillic_ya,        Cyrillic_YA,        sterling,     sterling     ] };
    key <AB02>    { [    Cyrillic_che,       Cyrillic_CHE,       dollar,       dollar       ] };
    key <AB03>    { [    Cyrillic_es,        Cyrillic_ES,        asciicircum,  EuroSign     ] };
    key <AB04>    { [    Cyrillic_em,        Cyrillic_EM,        slash,        slash        ] };
    key <AB05>    { [    Cyrillic_i,         Cyrillic_I,         backslash,    backslash    ] };
    key <AB06>    { [    Cyrillic_te,        Cyrillic_TE,        quotedbl,     bracketleft  ] };
    key <AB07>    { [    Cyrillic_softsign,  Cyrillic_hardsign,  apostrophe,   bracketright ] };
    key <SPCE>    { [    space,              Tab,                at,           Tab          ] };
};






partial alphanumeric_keys
xkb_symbols "it" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Italian";


    // 1. row
    key <AB08>    { [    egrave,        Egrave,        eacute,        Eacute        ] };


    // 2. row
    key <AC06>    { [    h,        H,        semicolon,    semicolon    ] };
    key <AC07>    { [    j,        J,        colon,        colon        ] };
    key <AC08>    { [    k,        K,        exclam,        exclam        ] };
    key <AC09>    { [    l,        L,        question,    question    ] };
    key <AB09>    { [    ograve,        Ograve,        igrave,        Igrave        ] };
    key <UP>    { [    agrave,        Agrave,        ugrave,        Ugrave        ] };


    // 3. row
    key <AB01>    { [    z,        Z,        EuroSign,    EuroSign    ] };
    key <AB02>    { [    x,        X,        parenleft,    parenleft    ] };
    key <AB03>    { [    c,        C,        parenright,    parenright    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};






partial alphanumeric_keys
xkb_symbols "cz" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"


    name[Group1] = "Czech";


    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    dead_acute,    dead_acute,    sterling,    sterling    ] };


    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    uring,        Uring,        EuroSign,    EuroSign    ] };
    key <UP>    { [    dead_caron,    dead_caron,    dollar,        dollar        ] };


    // 3. row
    key <AB01>    { [    y,        Y,        equal,        equal        ] };
    key <AB02>    { [    x,        X,        slash,        slash        ] };
    key <AB03>    { [    c,        C,        backslash,    backslash    ] };
    key <AB04>    { [    v,        V,        apostrophe,    apostrophe    ] };
    key <AB05>    { [    b,        B,        quotedbl,    quotedbl    ] };
    key <AB06>    { [    n,        N,        exclam,        exclam        ] };
    key <AB07>    { [    m,        M,        question,    question    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};


partial alphanumeric_keys
xkb_symbols "cz_qwerty" {
    include "nokia_vndr/rx-51(cz)"


    name[Group1] = "Czech - qwerty";


    // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled.
    // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51.
    // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty".


    // 1. row
    key <AD06>    { [    y,        Y,        6,        6        ] };


    // 3. row
    key <AB01>    { [    z,        Z,        percent,    percent        ] };
};






////////////////////////////////////////////////////////////////////////////////


partial hidden alphanumeric_keys
xkb_symbols "nordic_base" {
    include "nokia_vndr/rx-51(english_base)"


    // 1. row
    key <AB08>    { [    aring,        Aring,        equal,        equal        ] };


    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };


    // 3. row
    key <AB01>    { [    z,        Z,        EuroSign,    EuroSign    ] };
    key <AB03>    { [    c,        C,        sterling,    sterling    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};


partial hidden alphanumeric_keys
xkb_symbols "english_base" {


    // 1. row
    key <AD01>    { [    q,        Q,        1,        1        ] };
    key <AD02>    { [    w,        W,        2,        2        ] };
    key <AD03>    { [    e,        E,        3,        3        ] };
    key <AD04>    { [    r,        R,        4,        4        ] };
    key <AD05>    { [    t,        T,        5,        5        ] };
    key <AD06>    { [    y,        Y,        6,        6        ] };
    key <AD07>    { [    u,        U,        7,        7        ] };
    key <AD08>    { [    i,        I,        8,        8        ] };
    key <AD09>    { [    o,        O,        9,        9        ] };
    key <AD10>    { [    p,        P,        0,        0        ] };
    key <AB08>    { [    comma,        semicolon,    equal,        equal        ] };


    // 2. row
    key <AC01>    { [    a,        A,        asterisk,    asterisk    ] };
    key <AC02>    { [    s,        S,        plus,        plus        ] };
    key <AC03>    { [    d,        D,        numbersign,    numbersign    ] };
    key <AC04>    { [    f,        F,        minus,        minus        ] };
    key <AC05>    { [    g,        G,        underscore,    underscore    ] };
    key <AC06>    { [    h,        H,        parenleft,    parenleft    ] };
    key <AC07>    { [    j,        J,        parenright,    parenright    ] };
    key <AC08>    { [    k,        K,        ampersand,    ampersand    ] };
    key <AC09>    { [    l,        L,        exclam,        exclam        ] };
    key <AB09>    { [    period,        colon,        question,    question    ] };


    // 3. row
    key <AB01>    { [    z,        Z,        sterling,    sterling    ] };
    key <AB02>    { [    x,        X,        dollar,        dollar        ] };
    key <AB03>    { [    c,        C,        EuroSign,    EuroSign    ] };
    key <AB04>    { [    v,        V,        slash,        slash        ] };
    key <AB05>    { [    b,        B,        backslash,    backslash    ] };
    key <AB06>    { [    n,        N,        quotedbl,    quotedbl    ] };
    key <AB07>    { [    m,        M,        apostrophe,    apostrophe    ] };
    key <SPCE>    { [    space,        space,        at,        at        ] };
};


partial hidden alphanumeric_keys
xkb_symbols "common_keys" {
    // all other common keys


    key <BKSP>    { [    BackSpace,    Delete,    BackSpace,    Delete    ] };
    key <TAB>    { [    Tab        ] };


    // broken UI spec.
    key <RTRN>    { [    KP_Enter    ] };


    key <KPEN>    { [    Return        ] };
    key <ESC>    { [    Escape        ] };


    key <FK01>    { [    F1    ] };
    key <FK02>    { [    F2    ] };
    key <FK03>    { [    F3    ] };
    key <FK04>    { [    F4    ] };
    key <FK05>    { [    F5    ] };
    key <FK06>    { [    F6    ] };


    // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically
    // on left/right and up/down in landscape/portrait orientation. This does
    // not feel natural for the user and therefore we want the VOL+/VOL- keys
    // map to -/+.
    //
    // The only exception is an active call in portrait mode where we want to
    // use the real meanings of the keys. This special case and management of
    // +/- keys in general is handled in maemo-statusmenu-volume.
    key <FK07>    { [    F8    ] };
    key <FK08>    { [    F7    ] };


    key <FK09>    { [    F9    ] };
    key <FK10>    { [    F10    ] };
    key <FK11>    { [    F11    ] };
};


partial hidden alphanumeric_keys modifier_keys
xkb_symbols "modifiers" {
    // Shift switches between current level and level+1
    key <LFSH>    {
    type[Group1] = "ONE_LEVEL",
    symbols[Group1] = [    Shift_L    ]
    };
    modifier_map Shift { Shift_L };


    // Fn+Ctrl virtual symbol table (Multi_key)
    // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon)
    key <LCTL>    {
    type[Group1] = "FOUR_LEVEL",
    symbols[Group1] = [    Control_L,    Control_L,    Multi_key,    Multi_key    ]
    };
    modifier_map Control { Control_L };


    // Fn key (right alt) switches to 3rd level
    include "level3(ralt_switch)"
};


partial hidden alphanumeric_keys
xkb_symbols "arrows_2btns" {
    // rx-51 specific arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key <DOWN>    { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Left,    Up    ] };
    key <RGHT>    { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Right,    Down    ] };
};


partial hidden alphanumeric_keys
xkb_symbols "arrows_4btns" {
    // standard arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key <UP>      { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Up     ] };
    key <LEFT>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Left   ] };
    key <DOWN>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Down   ] };
    key <RGHT>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Right  ] };
};


partial hidden alphanumeric_keys
xkb_symbols "arrows_4btns_m" {
    key <UP>      { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Cyrillic_e,         Cyrillic_E,         Up,        Page_Up   ] };
    key <LEFT>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Cyrillic_be,        Cyrillic_BE,        Left,      Home      ] };
    key <DOWN>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Cyrillic_yu,        Cyrillic_YU,        Down,      Page_Down ] };
    key <RGHT>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Cyrillic_hardsign,  Cyrillic_hardsign,  Right,     End       ] };
};

Потом еще пошаманю как прикрутить назад home/end и pgup/pgdown на стрелочки и не лишиться возможности выделения с зажатым шифтом.

Здорово! Чуть позже попробую затестить ).

N900 - живучий тел smile.

Поделиться