From 5da6060cd946993b3979b23de5f51f07331e492a Mon Sep 17 00:00:00 2001 From: "Sicelo A. Mhlongo" Date: Mon, 12 Sep 2022 22:35:46 +0200 Subject: [PATCH] device-nokia-n900: Add x11 keymap (MR 3430) Add rx-51 x11 keymap to device package in response to #1521 [ci:skip-build]: already built successfully in CI --- device/community/device-nokia-n900/APKBUILD | 12 +- device/community/device-nokia-n900/x11-keymap | 1400 +++++++++++++++++ 2 files changed, 1411 insertions(+), 1 deletion(-) create mode 100644 device/community/device-nokia-n900/x11-keymap diff --git a/device/community/device-nokia-n900/APKBUILD b/device/community/device-nokia-n900/APKBUILD index c26c8ac06..a64d321ab 100644 --- a/device/community/device-nokia-n900/APKBUILD +++ b/device/community/device-nokia-n900/APKBUILD @@ -3,7 +3,7 @@ # Co-Maintainer: Danct12 pkgname=device-nokia-n900 pkgver=8 -pkgrel=4 +pkgrel=5 pkgdesc="Nokia N900" url="https://postmarketos.org" arch="armv7" @@ -13,6 +13,7 @@ makedepends="devicepkg-dev u-boot-tools kbd kbd-bkeymaps" install="$pkgname.post-install" subpackages=" $pkgname-x11 + $pkgname-xkeyboard-config:xkeyboard_config $pkgname-i3wm $pkgname-nonfree-firmware:nonfree_firmware " @@ -45,6 +46,7 @@ source=" 10-initfs-keymap.files 10-initfs-keymap.sh device-nokia-n900.start + x11-keymap " options="!check !archcheck" @@ -119,6 +121,13 @@ x11() { "$subpkgdir"/etc/X11/xorg.conf.d/11-n900.conf } +xkeyboard_config() { + install_if="$pkgname=$pkgver-r$pkgrel xkeyboard-config" + replaces="xkeyboard-config" + install -D -m644 "$srcdir"/x11-keymap \ + "$subpkgdir"/usr/share/X11/xkb/symbols/nokia_vndr/rx-51 +} + i3wm() { install_if="$pkgname postmarketos-ui-i3wm" depends="unclutter-xfixes conky feh postmarketos-artwork-wallpapers pm-utils i3blocks" @@ -177,4 +186,5 @@ a91f98daa60efa2beb2ff6b405097f92edca5f1bbb9e7675499139be52ca2570712f8f06f9032ef2 6b475c12eca8563be48c562a1cb4ad8ca6a05d70fc54b21288b2dd7435a80a6f53351aa870db96d5bbecf1b1c5cb00dfe35f5066e6d3fd0ad0369e66aeef5a21 10-initfs-keymap.files 4656d3b3ced0a86e2d6315c89322899f646a689e9cb64609aa8ad5a676b23d93706d8a37f3be6f6b12c6b1e8501b7d26ecafecf27322333850513a6805c61910 10-initfs-keymap.sh e6bbac8de1a198ba716f44ade76606e1e0adcc574156b855ac41be5eb5308389d3277fd89cc34b119fbc33d9801ab9f79a6ff213392596bff40bc17e931c05ef device-nokia-n900.start +654f2e1b8b7b64fc8c82a5f3c2b76b9d88f56d8dda520c1ce162648d65031bf62702e3bd43e135ab040b927c403f9970d6efae53f957bf1e55954125b358b313 x11-keymap " diff --git a/device/community/device-nokia-n900/x11-keymap b/device/community/device-nokia-n900/x11-keymap new file mode 100644 index 000000000..21bbedba9 --- /dev/null +++ b/device/community/device-nokia-n900/x11-keymap @@ -0,0 +1,1400 @@ +default partial alphanumeric_keys +xkb_symbols "common" { + include "nokia_vndr/rx-51(common_keys)" + include "nokia_vndr/rx-51(modifiers)" + + key { [ BackSpace, Delete, Escape, F12 ] }; + + // 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 does not 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 does not 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(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; +}; + + + +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 { [ odiaeresis, Odiaeresis, exclam, exclam ] }; + key { [ 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 { [ oslash, Oslash, exclam, exclam ] }; + key { [ 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 { [ odiaeresis, Odiaeresis, exclam, exclam, oslash, Oslash, exclam, exclam ] }; + key { [ 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 { [ dead_acute, dead_acute, dead_grave, dead_grave ] }; + + // 2. row + key { [ g, G, exclamdown, exclamdown ] }; + key { [ h, H, exclam, exclam ] }; + key { [ j, J, questiondown, questiondown ] }; + key { [ k, K, question, question ] }; + key { [ l, L, dead_diaeresis, dead_diaeresis ] }; + key { [ ntilde, Ntilde, dead_tilde, dead_tilde ] }; + key { [ ccedilla, Ccedilla, dead_circumflex,dead_circumflex ] }; + + // 3. row + key { [ z, Z, parenleft, parenleft ] }; + key { [ x, X, parenright, parenright ] }; + key { [ c, C, slash, slash ] }; + key { [ v, V, quotedbl, quotedbl ] }; + key { [ b, B, apostrophe, apostrophe ] }; + key { [ n, N, colon, colon ] }; + key { [ m, M, semicolon, semicolon ] }; + key { [ 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 { [ a, A, 1, 1 ] }; + key { [ z, Z, 2, 2 ] }; + key { [ agrave, Agrave, ccedilla, Ccedilla ] }; + + // 2. row + key { [ q, Q, asterisk, asterisk ] }; + key { [ s, S, plus, plus ] }; + key { [ d, D, numbersign, numbersign ] }; + key { [ f, F, minus, minus ] }; + key { [ g, G, underscore, underscore ] }; + key { [ h, H, exclam, exclam ] }; + key { [ j, J, question, question ] }; + key { [ k, K, colon, colon ] }; + key { [ l, L, dead_circumflex,dead_circumflex ] }; + key { [ m, M, ugrave, Ugrave ] }; + key { [ eacute, Eacute, egrave, Egrave ] }; + + // 3. row + key { [ w, W, EuroSign, EuroSign ] }; + key { [ c, C, parenleft, parenleft ] }; + key { [ v, V, parenright, parenright ] }; + key { [ b, B, slash, slash ] }; + key { [ comma, comma, apostrophe, apostrophe ] }; + key { [ 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 { [ z, Z, 6, 6 ] }; + key { [ udiaeresis, Udiaeresis, ssharp, U1E9E ] }; + + // 2. row + key { [ k, K, semicolon, semicolon ] }; + key { [ l, L, colon, colon ] }; + key { [ odiaeresis, Odiaeresis, exclam, exclam ] }; + key { [ adiaeresis, Adiaeresis, question, question ] }; + + // 3. row + key { [ y, Y, EuroSign, EuroSign ] }; + key { [ c, C, equal, equal ] }; + key { [ 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 { [ z, Z, 6, F6 ] }; + key { [ udiaeresis, Udiaeresis, egrave, F11 ] }; + + // 2. row + key { [ s, S, plus, ampersand ] }; + key { [ d, D, numbersign, dollar ] }; + key { [ f, F, minus, percent ] }; + key { [ g, G, underscore, bracketleft ] }; + key { [ h, H, equal, bracketright ] }; + key { [ j, J, parenleft, parenleft ] }; + key { [ k, K, parenright, parenright ] }; + key { [ l, L, colon, semicolon ] }; + key { [ odiaeresis, Odiaeresis, eacute, bar ] }; + key { [ adiaeresis, Adiaeresis, agrave, asciitilde ] }; + + // 3. row + key { [ y, Y, question, question ] }; + key { [ x, X, exclam, exclam ] }; + key { [ c, C, ccedilla, less ] }; + key { [ v, V, slash, greater ] }; + key { [ b, B, backslash, braceleft ] }; + key { [ n, N, quotedbl, braceright ] }; + key { [ m, M, apostrophe, asciicircum ] }; + key { [ period, comma, comma, degree ] }; + key { [ Left, Up, Up, Prior ] }; + key { [ Right, Down, Down, Next ] }; +}; + + + +// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons. +partial alphanumeric_keys +xkb_symbols "ru" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Russian"; + + key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; + key { [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; + key { [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3 ] }; + key { [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; + key { [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; + key { [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6 ] }; + key { [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; + key { [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; + key { [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; + key { [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + // 2. row + key { [ a, A, asterisk, asterisk, Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] }; + key { [ s, S, plus, plus, Cyrillic_yeru, Cyrillic_YERU, plus, plus ] }; + key { [ d, D, numbersign, numbersign, Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] }; + key { [ f, F, minus, minus, Cyrillic_a, Cyrillic_A, minus, minus ] }; + key { [ g, G, underscore, underscore, Cyrillic_pe, Cyrillic_PE, underscore, underscore ] }; + key { [ h, H, exclam, exclam, Cyrillic_er, Cyrillic_ER, exclam, exclam ] }; + key { [ j, J, question, question, Cyrillic_o, Cyrillic_O, question, question ] }; + key { [ k, K, semicolon, semicolon, Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] }; + key { [ l, L, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] }; + key { [ comma, comma, comma, comma, Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] }; + key { [ period, period, period, period, Cyrillic_e, Cyrillic_E, period, period ] }; + + // 3. row + key { [ z, Z, dollar, dollar, Cyrillic_ya, Cyrillic_YA, dollar, dollar ] }; + key { [ x, X, EuroSign, EuroSign, Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] }; + key { [ c, C, slash, slash, Cyrillic_es, Cyrillic_ES, slash, slash ] }; + key { [ v, V, parenleft, parenleft, Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] }; + key { [ b, B, parenright, parenright, Cyrillic_i, Cyrillic_I, parenright, parenright ] }; + key { [ n, N, quotedbl, quotedbl, Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] }; + key { [ m, M, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; + key { [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU, Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; +}; + + + +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 { [ egrave, Egrave, eacute, Eacute ] }; + + // 2. row + key { [ h, H, semicolon, semicolon ] }; + key { [ j, J, colon, colon ] }; + key { [ k, K, exclam, exclam ] }; + key { [ l, L, question, question ] }; + key { [ ograve, Ograve, igrave, Igrave ] }; + key { [ agrave, Agrave, ugrave, Ugrave ] }; + + // 3. row + key { [ z, Z, EuroSign, EuroSign ] }; + key { [ x, X, parenleft, parenleft ] }; + key { [ c, C, parenright, parenright ] }; + key { [ 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 { [ z, Z, 6, 6 ] }; + key { [ dead_acute, dead_acute, sterling, sterling ] }; + + // 2. row + key { [ k, K, semicolon, semicolon ] }; + key { [ l, L, colon, colon ] }; + key { [ uring, Uring, EuroSign, EuroSign ] }; + key { [ dead_caron, dead_caron, dollar, dollar ] }; + + // 3. row + key { [ y, Y, equal, equal ] }; + key { [ x, X, slash, slash ] }; + key { [ c, C, backslash, backslash ] }; + key { [ v, V, apostrophe, apostrophe ] }; + key { [ b, B, quotedbl, quotedbl ] }; + key { [ n, N, exclam, exclam ] }; + key { [ m, M, question, question ] }; + key { [ 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 { [ y, Y, 6, 6 ] }; + + // 3. row + key { [ z, Z, percent, percent ] }; +}; + + + +//////////////////////////////////////////////////////////////////////////////// + +partial hidden alphanumeric_keys +xkb_symbols "nordic_base" { + include "nokia_vndr/rx-51(english_base)" + + // 1. row + key { [ aring, Aring, equal, equal ] }; + + // 2. row + key { [ k, K, semicolon, semicolon ] }; + key { [ l, L, colon, colon ] }; + + // 3. row + key { [ z, Z, EuroSign, EuroSign ] }; + key { [ c, C, sterling, sterling ] }; + key { [ period, comma, comma, comma ] }; +}; + +partial hidden alphanumeric_keys +xkb_symbols "english_base" { + + // 1. row + key { [ q, Q, 1, F1 ] }; + key { [ w, W, 2, F2 ] }; + key { [ e, E, 3, F3 ] }; + key { [ r, R, 4, F4 ] }; + key { [ t, T, 5, F5 ] }; + key { [ y, Y, 6, F6 ] }; + key { [ u, U, 7, F7 ] }; + key { [ i, I, 8, F8 ] }; + key { [ o, O, 9, F9 ] }; + key { [ p, P, 0, F10 ] }; + key { [ comma, semicolon, equal, F11 ] }; + + // 2. row + key { [ a, A, asterisk, asterisk ] }; + key { [ s, S, plus, plus ] }; + key { [ d, D, numbersign, percent ] }; + key { [ f, F, minus, asciitilde ] }; + key { [ g, G, underscore, bracketleft ] }; + key { [ h, H, parenleft, bracketright ] }; + key { [ j, J, parenright, parenright ] }; + key { [ k, K, ampersand, ampersand ] }; + key { [ l, L, exclam, bar ] }; + key { [ period, colon, question, question ] }; + + // 3. row + key { [ z, Z, sterling, sterling ] }; + key { [ x, X, dollar, dollar ] }; + key { [ c, C, EuroSign, asciitilde ] }; + key { [ v, V, slash, less ] }; + key { [ b, B, backslash, greater ] }; + key { [ n, N, quotedbl, braceleft ] }; + key { [ m, M, apostrophe, braceright ] }; + key { [ space, space, at, at ] }; +}; + +partial hidden alphanumeric_keys +xkb_symbols "common_keys" { + // all other common keys + + key { [ BackSpace ] }; + key { [ Tab ] }; + + // broken UI spec. + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ KP_Enter, Tab ] }; + + key { [ Return ] }; + key { [ Escape ] }; + + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ 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. + // + // Maemo wants KF07 as F8 and FK08 as F7. We don't care about that. + key { type= "PC_FN_LEVEL2", [ XF86AudioLowerVolume, XF86Switch_VT_1 ] }; + key { type= "PC_FN_LEVEL2", [ XF86AudioRaiseVolume, XF86Switch_VT_2 ] }; + + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; +}; + +partial hidden alphanumeric_keys modifier_keys +xkb_symbols "modifiers" { + // Shift switches between current level and level+1 + key { + 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 { + 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 { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, Up ] }; + key { 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 { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Up, Prior ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, Home ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Down, Next ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, End ] }; +}; + +// author: Roman Moravcik +xkb_symbols "sk" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Slovak QWERTZ (CZ HW)"; + + // 1. row + key { [ z, Z, 6, 6 ] }; + key { [ dead_acute, dead_acute, sterling, sterling ] }; + + // 2. row + key { [ k, K, semicolon, semicolon ] }; + key { [ l, L, colon, colon ] }; + key { [ ocircumflex, adiaeresis, EuroSign, EuroSign ] }; + key { [ dead_caron, bar, dollar, dollar ] }; + + // 3. row + key { [ y, Y, equal, equal ] }; + key { [ x, X, slash, slash ] }; + key { [ c, C, backslash, backslash ] }; + key { [ v, V, apostrophe, apostrophe ] }; + key { [ b, B, quotedbl, quotedbl ] }; + key { [ n, N, exclam, exclam ] }; + key { [ m, M, question, question ] }; + key { [ period, Tab, comma, comma ] }; +}; + +xkb_symbols "sk_qwerty" { + include "nokia_vndr/rx-51(sk)" + + name[Group1] = "Slovak QWERTY (CZ hw)"; + + // 1. row + key { [ y, Y, 6, 6 ] }; + + // 3. row + key { [ z, Z, equal, equal ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "aren" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Arabic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Arabic_dad, Arabic_fatha, 0x1000661, 0x1000661 ] }; + key { symbols[Group2] = [ Arabic_sad, Arabic_fathatan, 0x1000662, 0x1000662 ] }; + key { symbols[Group2] = [ Arabic_theh, Arabic_damma, 0x1000663, 0x1000663 ] }; + key { symbols[Group2] = [ Arabic_qaf, Arabic_dammatan, 0x1000664, 0x1000664 ] }; + key { symbols[Group2] = [ Arabic_feh, 0x100fef9, 0x1000665, 0x1000665 ] }; + key { symbols[Group2] = [ Arabic_ghain, Arabic_hamzaunderalef, 0x1000666, 0x1000666 ] }; + key { symbols[Group2] = [ Arabic_ain, rightsinglequotemark, 0x1000667, 0x1000667 ] }; + key { symbols[Group2] = [ Arabic_ha, Arabic_tehmarbuta, 0x1000668, 0x1000668 ] }; + key { symbols[Group2] = [ Arabic_khah, division, 0x1000669, 0x1000669 ] }; + key { symbols[Group2] = [ Arabic_hah, multiply, 0x1000660, 0x1000660 ] }; + key { symbols[Group2] = [ Arabic_jeem, period, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Arabic_sheen, Arabic_kasra, asterisk, asterisk ] }; + key { symbols[Group2] = [ Arabic_seen, Arabic_kasratan, plus, plus ] }; + key { symbols[Group2] = [ Arabic_yeh, Arabic_alefmaksura, numbersign, numbersign ] }; + key { symbols[Group2] = [ Arabic_beh, Arabic_hamzaonyeh, minus, minus ] }; + key { symbols[Group2] = [ Arabic_lam, 0x100fef7, underscore, underscore ] }; + key { symbols[Group2] = [ Arabic_alef, Arabic_hamzaonalef, parenright, parenright ] }; + key { symbols[Group2] = [ Arabic_teh, Arabic_tatweel, parenleft, parenleft ] }; + key { symbols[Group2] = [ Arabic_noon, Arabic_comma, ampersand, ampersand ] }; + key { symbols[Group2] = [ Arabic_meem, Arabic_semicolon, exclam, exclam ] }; + key { symbols[Group2] = [ Arabic_kaf, colon, Arabic_question_mark, Arabic_question_mark ] }; + + // 3. row + key { symbols[Group2] = [ Arabic_thal, Arabic_shadda, sterling, sterling ] }; + key { symbols[Group2] = [ Arabic_dal, Arabic_sukun, dollar, dollar ] }; + key { symbols[Group2] = [ Arabic_waw, Arabic_hamzaonwaw, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Arabic_ra, 0x100fef5, slash, slash ] }; + key { symbols[Group2] = [ Arabic_zain, 0x100fefb, backslash, backslash ] }; + key { symbols[Group2] = [ Arabic_tah, Arabic_maddaonalef, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Arabic_zah, Arabic_hamza, apostrophe, apostrophe ] }; +}; + +// author: Hessam Farhang +partial alphanumeric_keys +xkb_symbols "faen" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Persian"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Arabic_dad, Arabic_sukun, 0x10006f1, 0x1000661 ] }; + key { symbols[Group2] = [ Arabic_sad, Arabic_dammatan, 0x10006f2, 0x1000662 ] }; + key { symbols[Group2] = [ Arabic_theh, Arabic_kasratan, 0x10006f3, 0x1000663 ] }; + key { symbols[Group2] = [ Arabic_qaf, Arabic_fathatan, 0x10006f4, 0x1000664 ] }; + key { symbols[Group2] = [ Arabic_feh, Arabic_damma, 0x10006f5, 0x1000665 ] }; + key { symbols[Group2] = [ Arabic_ghain, Arabic_kasra, 0x10006f6, 0x1000666 ] }; + key { symbols[Group2] = [ Arabic_ain, Arabic_fatha, 0x10006f7, 0x1000667 ] }; + key { symbols[Group2] = [ Arabic_heh, Arabic_shadda, 0x10006f8, 0x1000668 ] }; + key { symbols[Group2] = [ Arabic_khah, 0x10006af, 0x10006f9, 0x1000669 ] }; + key { symbols[Group2] = [ Arabic_hah, 0x1000686, 0x10006f0, 0x1000660 ] }; + key { symbols[Group2] = [ Arabic_jeem, Arabic_comma, comma, Arabic_semicolon ] }; + + // 2. row + key { symbols[Group2] = [ Arabic_sheen, Arabic_hamzaonwaw, asterisk, asterisk ] }; + key { symbols[Group2] = [ Arabic_seen, Arabic_hamzaonyeh, plus, plus ] }; + key { symbols[Group2] = [ 0x10006cc, period, numbersign, numbersign ] }; + key { symbols[Group2] = [ Arabic_beh, colon, minus, minus ] }; + key { symbols[Group2] = [ Arabic_lam, Arabic_hamzaonalef, underscore, underscore ] }; + key { symbols[Group2] = [ Arabic_alef, Arabic_maddaonalef, parenleft, parenleft ] }; + key { symbols[Group2] = [ Arabic_teh, Arabic_tehmarbuta, parenright, parenright ] }; + key { symbols[Group2] = [ Arabic_noon, guillemotright, ampersand, ampersand ] }; + key { symbols[Group2] = [ Arabic_meem, guillemotleft, exclam, exclam ] }; + key { symbols[Group2] = [ 0x10006a9, Arabic_waw, Arabic_question_mark, colon ] }; + + // 3. row + key { symbols[Group2] = [ Arabic_zah, Arabic_kaf, sterling, period ] }; + key { symbols[Group2] = [ Arabic_tah, 0x1000653, dollar, dollar ] }; + key { symbols[Group2] = [ Arabic_zain, 0x1000698, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Arabic_ra, 0x1000670, slash, slash ] }; + key { symbols[Group2] = [ Arabic_thal, 0x100200c, backslash, backslash ] }; + key { symbols[Group2] = [ Arabic_dal, 0x1000654, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ 0x100067e, Arabic_hamza, apostrophe, apostrophe ] }; +}; + +// author: Jaroslav Poriz +xkb_symbols "dv" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "Dvorak"; + + // 1. row + key { [ colon, semicolon, 1, 1 ] }; + key { [ w, W, 2, 2 ] }; + key { [ v, V, 3, 3 ] }; + key { [ p, P, 4, 4 ] }; + key { [ y, Y, 5, 5 ] }; + key { [ f, F, 6, 6 ] }; + key { [ g, G, 7, 7 ] }; + key { [ c, C, 8, 8 ] }; + key { [ r, R, 9, 9 ] }; + key { [ l, L, 0, 0 ] }; + key { [ period, comma, equal, equal ] }; + + // 2. row + key { [ a, A, asterisk, asterisk ] }; + key { [ o, O, plus, plus ] }; + key { [ e, E, numbersign, numbersign ] }; + key { [ u, U, minus, minus ] }; + key { [ i, I, underscore, underscore ] }; + key { [ d, D, exclam, parenleft ] }; + key { [ h, H, question, parenright ] }; + key { [ t, T, ampersand, ampersand ] }; + key { [ n, N, less, exclam ] }; + key { [ s, S, greater, question ] }; + + // 3. row + key { [ z, Z, asciitilde, asciitilde ] }; + key { [ q, Q, dollar, dollar ] }; + key { [ j, J, backslash, bar ] }; + key { [ k, K, grave, slash ] }; + key { [ x, X, parenleft, backslash ] }; + key { [ b, B, parenright, quotedbl ] }; + key { [ m, M, apostrophe, apostrophe ] }; + key { [ space, slash, at, at ] }; +}; + +// author: Porfyras +// author: Roman Moravcik +// author: Faidon Liambotis +partial alphanumeric_keys +xkb_symbols "gr" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Greek"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ period, colon, 1, 1 ] }; + key { symbols[Group2] = [ Greek_finalsmallsigma, Greek_SIGMA, 2, 2 ] }; + key { symbols[Group2] = [ Greek_epsilon, Greek_EPSILON, 3, 3 ] }; + key { symbols[Group2] = [ Greek_rho, Greek_RHO, 4, 4 ] }; + key { symbols[Group2] = [ Greek_tau, Greek_TAU, 5, 5 ] }; + key { symbols[Group2] = [ Greek_upsilon, Greek_UPSILON, 6, 6 ] }; + key { symbols[Group2] = [ Greek_theta, Greek_THETA, 7, 7 ] }; + key { symbols[Group2] = [ Greek_iota, Greek_IOTA, 8, 8 ] }; + key { symbols[Group2] = [ Greek_omicron, Greek_OMICRON, 9, 9 ] }; + key { symbols[Group2] = [ Greek_pi, Greek_PI, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Greek_alpha, Greek_ALPHA, asterisk, asterisk ] }; + key { symbols[Group2] = [ Greek_sigma, Greek_SIGMA, plus, plus ] }; + key { symbols[Group2] = [ Greek_delta, Greek_DELTA, numbersign, numbersign ] }; + key { symbols[Group2] = [ Greek_phi, Greek_PHI, minus, minus ] }; + key { symbols[Group2] = [ Greek_gamma, Greek_GAMMA, underscore, underscore ] }; + key { symbols[Group2] = [ Greek_eta, Greek_ETA, parenleft, parenleft ] }; + key { symbols[Group2] = [ Greek_xi, Greek_XI, parenright, parenright ] }; + key { symbols[Group2] = [ Greek_kappa, Greek_KAPPA, ampersand, ampersand ] }; + key { symbols[Group2] = [ Greek_lamda, Greek_LAMDA, exclam, exclam ] }; + key { symbols[Group2] = [ dead_acute, dead_diaeresis, question, question ] }; + + // 3. row + key { symbols[Group2] = [ Greek_zeta, Greek_ZETA, sterling, sterling ] }; + key { symbols[Group2] = [ Greek_chi, Greek_CHI, dollar, dollar ] }; + key { symbols[Group2] = [ Greek_psi, Greek_PSI, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Greek_omega, Greek_OMEGA, slash, slash ] }; + key { symbols[Group2] = [ Greek_beta, Greek_BETA, backslash, backslash ] }; + key { symbols[Group2] = [ Greek_nu, Greek_NU, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Greek_mu, Greek_MU, apostrophe, apostrophe ] }; +}; + +// author: Ognian Samokovliyski +// author: Kostadin Bashev +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "bg_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Bulgarian - Phonetic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group2] = [ Cyrillic_hardsign, Cyrillic_HARDSIGN, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key { symbols[Group2] = [ period, colon, question, question ] }; + key { symbols[Group2] = [ Cyrillic_yu, Cyrillic_YU, Up, Up ] }; + + // 3. row + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, sterling, sterling ] }; + key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, dollar, dollar ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Left, Left ] }; + key { symbols[Group2] = [ Cyrillic_shcha, Cyrillic_SHCHA, Down, Down ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Right, Right ] }; +}; + +// author: Nikola Kovachevski +partial alphanumeric_keys +xkb_symbols "mk" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Macedonian"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Cyrillic_lje, Cyrillic_LJE, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_nje, Cyrillic_NJE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group2] = [ Macedonia_dse, Macedonia_DSE, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_je, Cyrillic_JE, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key { symbols[Group2] = [ period, comma, question, question ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Up, Up ] }; + + // 3. row + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, colon, colon ] }; + key { symbols[Group2] = [ Cyrillic_dzhe, Cyrillic_DZHE, semicolon, semicolon ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Macedonia_kje, Macedonia_KJE, Left, Left ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, Down, Down ] }; + key { symbols[Group2] = [ Macedonia_gje, Macedonia_GJE, Right, Right ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "ru_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "Russian - Phonetic"; + name[Group2] = "U.S. English"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group1] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key { symbols[Group1] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key { symbols[Group1] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group1] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group1] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group1] = [ Cyrillic_yeru, Cyrillic_YERU, 6, 6 ] }; + key { symbols[Group1] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group1] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key { symbols[Group1] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group1] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key { symbols[Group2] = [ q, Q, 1, 1 ] }; + key { symbols[Group2] = [ w, W, 2, 2 ] }; + key { symbols[Group2] = [ e, E, 3, 3 ] }; + key { symbols[Group2] = [ r, R, 4, 4 ] }; + key { symbols[Group2] = [ t, T, 5, 5 ] }; + key { symbols[Group2] = [ y, Y, 6, 6 ] }; + key { symbols[Group2] = [ u, U, 7, 7 ] }; + key { symbols[Group2] = [ i, I, 8, 8 ] }; + key { symbols[Group2] = [ o, O, 9, 9 ] }; + key { symbols[Group2] = [ p, P, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + // 2. row + key { symbols[Group1] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group1] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group1] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group1] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group1] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, exclam, exclam ] }; + key { symbols[Group1] = [ Cyrillic_shorti, Cyrillic_SHORTI, question, question ] }; + key { symbols[Group1] = [ Cyrillic_ka, Cyrillic_KA, semicolon, semicolon ] }; + key { symbols[Group1] = [ Cyrillic_el, Cyrillic_EL, colon, colon ] }; + key { symbols[Group1] = [ Cyrillic_yu, Cyrillic_YU, comma, comma ] }; + key { symbols[Group1] = [ Cyrillic_e, Cyrillic_E, period, period ] }; + + key { symbols[Group2] = [ a, A, asterisk, asterisk ] }; + key { symbols[Group2] = [ s, S, plus, plus ] }; + key { symbols[Group2] = [ d, D, numbersign, numbersign ] }; + key { symbols[Group2] = [ f, F, minus, minus ] }; + key { symbols[Group2] = [ g, G, underscore, underscore ] }; + key { symbols[Group2] = [ h, H, exclam, exclam ] }; + key { symbols[Group2] = [ j, J, question, question ] }; + key { symbols[Group2] = [ k, K, semicolon, semicolon ] }; + key { symbols[Group2] = [ l, L, colon, colon ] }; + key { symbols[Group2] = [ comma, comma, comma, comma ] }; + key { symbols[Group2] = [ period, period, period, period ] }; + + // 3. row + key { symbols[Group1] = [ Cyrillic_ze, Cyrillic_ZE, dollar, dollar ] }; + key { symbols[Group1] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, EuroSign, EuroSign ] }; + key { symbols[Group1] = [ Cyrillic_tse, Cyrillic_TSE, slash, slash ] }; + key { symbols[Group1] = [ Cyrillic_zhe, Cyrillic_ZHE, parenleft, parenleft ] }; + key { symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, parenright, parenright ] }; + key { symbols[Group1] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group1] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group1] = [ Cyrillic_che, Cyrillic_CHE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + key { symbols[Group2] = [ z, Z, dollar, dollar ] }; + key { symbols[Group2] = [ x, X, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ c, C, slash, slash ] }; + key { symbols[Group2] = [ v, V, parenleft, parenleft ] }; + key { symbols[Group2] = [ b, B, parenright, parenright ] }; + key { symbols[Group2] = [ n, N, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ m, M, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "he_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Hebrew - Phonetic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ hebrew_qoph, hebrew_qoph, 1, 1 ] }; + key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 2, 2 ] }; + key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, 3, 3 ] }; + key { symbols[Group2] = [ hebrew_resh, hebrew_resh, 4, 4 ] }; + key { symbols[Group2] = [ hebrew_taw, hebrew_tet, 5, 5 ] }; + key { symbols[Group2] = [ hebrew_ayin, hebrew_ayin, 6, 6 ] }; + key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 7, 7 ] }; + key { symbols[Group2] = [ hebrew_yod, hebrew_yod, 8, 8 ] }; + key { symbols[Group2] = [ hebrew_samech, hebrew_samech, 9, 9 ] }; + key { symbols[Group2] = [ hebrew_pe, hebrew_finalpe, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, asterisk, asterisk ] }; + key { symbols[Group2] = [ hebrew_shin, hebrew_shin, plus, plus ] }; + key { symbols[Group2] = [ hebrew_dalet, hebrew_dalet, numbersign, numbersign ] }; + key { symbols[Group2] = [ hebrew_pe, hebrew_finalpe, minus, minus ] }; + key { symbols[Group2] = [ hebrew_gimel, hebrew_gimel, underscore, underscore ] }; + key { symbols[Group2] = [ hebrew_he, hebrew_he, parenleft, parenleft ] }; + key { symbols[Group2] = [ hebrew_yod, hebrew_yod, parenright, parenright ] }; + key { symbols[Group2] = [ hebrew_kaph, hebrew_finalkaph, ampersand, ampersand ] }; + key { symbols[Group2] = [ hebrew_lamed, hebrew_lamed, exclam, exclam ] }; + key { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key { symbols[Group2] = [ hebrew_zain, hebrew_zain, sterling, sterling ] }; + key { symbols[Group2] = [ hebrew_chet, hebrew_chet, dollar, dollar ] }; + key { symbols[Group2] = [ hebrew_zade, hebrew_finalzade, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ hebrew_waw, hebrew_waw, slash, slash ] }; + key { symbols[Group2] = [ hebrew_bet, hebrew_bet, backslash, backslash ] }; + key { symbols[Group2] = [ hebrew_nun, hebrew_finalnun, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ hebrew_mem, hebrew_finalmem, apostrophe, apostrophe ] }; +}; + +// author: Roman Moravcik +partial alphanumeric_keys +xkb_symbols "he" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Hebrew"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ hebrew_taw, hebrew_taw, 1, 1 ] }; + key { symbols[Group2] = [ hebrew_finalzade, hebrew_finalzade, 2, 2 ] }; + key { symbols[Group2] = [ hebrew_qoph, hebrew_qoph, 3, 3 ] }; + key { symbols[Group2] = [ hebrew_resh, hebrew_resh, 4, 4 ] }; + key { symbols[Group2] = [ hebrew_aleph, hebrew_aleph, 5, 5 ] }; + key { symbols[Group2] = [ hebrew_tet, hebrew_tet, 6, 6 ] }; + key { symbols[Group2] = [ hebrew_waw, hebrew_waw, 7, 7 ] }; + key { symbols[Group2] = [ hebrew_finalnun, hebrew_finalnun, 8, 8 ] }; + key { symbols[Group2] = [ hebrew_finalmem, hebrew_finalmem, 9, 9 ] }; + key { symbols[Group2] = [ hebrew_pe, hebrew_pe, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ hebrew_shin, hebrew_shin, asterisk, asterisk ] }; + key { symbols[Group2] = [ hebrew_dalet, hebrew_dalet, plus, plus ] }; + key { symbols[Group2] = [ hebrew_gimel, hebrew_gimel, numbersign, numbersign ] }; + key { symbols[Group2] = [ hebrew_kaph, hebrew_kaph, minus, minus ] }; + key { symbols[Group2] = [ hebrew_ayin, hebrew_ayin, underscore, underscore ] }; + key { symbols[Group2] = [ hebrew_yod, hebrew_yod, parenleft, parenleft ] }; + key { symbols[Group2] = [ hebrew_chet, hebrew_chet, parenright, parenright ] }; + key { symbols[Group2] = [ hebrew_lamed, hebrew_lamed, ampersand, ampersand ] }; + key { symbols[Group2] = [ hebrew_finalkaph, period, exclam, exclam ] }; + key { symbols[Group2] = [ hebrew_finalpe, colon, question, question ] }; + + // 3. row + key { symbols[Group2] = [ hebrew_zain, hebrew_zain, sterling, sterling ] }; + key { symbols[Group2] = [ hebrew_samech, hebrew_samech, dollar, dollar ] }; + key { symbols[Group2] = [ hebrew_bet, hebrew_bet, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ hebrew_he, hebrew_he, slash, slash ] }; + key { symbols[Group2] = [ hebrew_nun, hebrew_nun, backslash, backslash ] }; + key { symbols[Group2] = [ hebrew_mem, hebrew_mem, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ hebrew_zade, hebrew_zade, apostrophe, apostrophe ] }; +}; + +// author: David Gegechkori +partial alphanumeric_keys +xkb_symbols "ge" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Georgian - Latin"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ 0x010010e5, Q, 1, 1 ] }; + key { symbols[Group2] = [ 0x010010ec, 0x010010ed, 2, 2 ] }; + key { symbols[Group2] = [ 0x010010d4, E, 3, 3 ] }; + key { symbols[Group2] = [ 0x010010e0, 0x010010e6, 4, 4 ] }; + key { symbols[Group2] = [ 0x010010e2, 0x010010d7, 5, 5 ] }; + key { symbols[Group2] = [ 0x010010e7, Y, 6, 6 ] }; + key { symbols[Group2] = [ 0x010010e3, U, 7, 7 ] }; + key { symbols[Group2] = [ 0x010010d8, I, 8, 8 ] }; + key { symbols[Group2] = [ 0x010010dd, O, 9, 9 ] }; + key { symbols[Group2] = [ 0x010010de, P, 0, 0 ] }; + key { symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ 0x010010d0, A, asterisk, asterisk ] }; + key { symbols[Group2] = [ 0x010010e1, 0x010010e8, plus, plus ] }; + key { symbols[Group2] = [ 0x010010d3, D, numbersign, numbersign ] }; + key { symbols[Group2] = [ 0x010010e4, F, minus, minus ] }; + key { symbols[Group2] = [ 0x010010d2, G, underscore, underscore ] }; + key { symbols[Group2] = [ 0x010010f0, H, parenleft, parenleft ] }; + key { symbols[Group2] = [ 0x010010ef, 0x010010df, parenright, parenright ] }; + key { symbols[Group2] = [ 0x010010d9, K, ampersand, ampersand ] }; + key { symbols[Group2] = [ 0x010010da, L, exclam, exclam ] }; + key { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key { symbols[Group2] = [ 0x010010d6, 0x010010eb, sterling, sterling ] }; + key { symbols[Group2] = [ 0x010010ee, X, dollar, dollar ] }; + key { symbols[Group2] = [ 0x010010ea, 0x010010e9, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ 0x010010d5, V, slash, slash ] }; + key { symbols[Group2] = [ 0x010010d1, B, backslash, backslash ] }; + key { symbols[Group2] = [ 0x010010dc, N, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ 0x010010db, M, apostrophe, apostrophe ] }; +}; + +// author: Eriks Jansons +partial alphanumeric_keys +xkb_symbols "lv" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Latvian"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ q, Q, 1, 1 ] }; + key { symbols[Group2] = [ w, W, 2, 2 ] }; + key { symbols[Group2] = [ emacron, Emacron, 3, 3 ] }; + key { symbols[Group2] = [ rcedilla, Rcedilla, 4, 4 ] }; + key { symbols[Group2] = [ t, T, 5, 5 ] }; + key { symbols[Group2] = [ y, Y, 6, 6 ] }; + key { symbols[Group2] = [ umacron, Umacron, 7, 7 ] }; + key { symbols[Group2] = [ imacron, Imacron, 8, 8 ] }; + key { symbols[Group2] = [ omacron, Omacron, 9, 9 ] }; + key { symbols[Group2] = [ p, P, 0, 0 ] }; + key { symbols[Group1] = [ ISO_Group_Latch, semicolon, equal, equal], + symbols[Group2] = [ comma, semicolon, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ amacron, Amacron, asterisk, asterisk ] }; + key { symbols[Group2] = [ scaron, Scaron, plus, plus ] }; + key { symbols[Group2] = [ d, D, numbersign, numbersign ] }; + key { symbols[Group2] = [ f, F, minus, minus ] }; + key { symbols[Group2] = [ gcedilla, Gcedilla, underscore, underscore ] }; + key { symbols[Group2] = [ h, H, parenleft, parenleft ] }; + key { symbols[Group2] = [ j, J, parenright, parenright ] }; + key { symbols[Group2] = [ kcedilla, Kcedilla, ampersand, ampersand ] }; + key { symbols[Group2] = [ lcedilla, Lcedilla, exclam, exclam ] }; + key { symbols[Group2] = [ period, colon, question, question ] }; + + // 3. row + key { symbols[Group2] = [ zcaron, Zcaron, sterling, sterling ] }; + key { symbols[Group2] = [ x, X, dollar, dollar ] }; + key { symbols[Group2] = [ ccaron, Ccaron, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ v, V, slash, slash ] }; + key { symbols[Group2] = [ b, B, backslash, backslash ] }; + key { symbols[Group2] = [ ncedilla, Ncedilla, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ m, M, apostrophe, apostrophe ] }; +}; + +// author: Aleksandar Urosevic +partial alphanumeric_keys +xkb_symbols "sr_cyrillic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Serbian - Cyrillic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Cyrillic_lje, Cyrillic_LJE, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_nje, Cyrillic_NJE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, equal, equal ] }; + + // 2. row + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_je, Cyrillic_JE, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, ampersand, ampersand ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, exclam, exclam ] }; + key { symbols[Group2] = [ period, comma, question, question ] }; + key { symbols[Group2] = [ Serbian_dje, Serbian_DJE, Up, Up ] }; + + // 3. row + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, colon, colon ] }; + key { symbols[Group2] = [ Cyrillic_dzhe, Cyrillic_DZHE, semicolon, semicolon ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, backslash, backslash ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Left, Left ] }; + key { symbols[Group2] = [ Serbian_tshe, Serbian_TSHE, Down, Down ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, Right, Right ] }; +}; + +// author: Roman Moravcik +// author: Tarick +partial alphanumeric_keys +xkb_symbols "ua_phonetic" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Ukrainian - Phonetic"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group1] = [ q, Q, 1, 1 ] }; + key { symbols[Group1] = [ w, W, 2, 2 ] }; + key { symbols[Group1] = [ e, E, 3, 3 ] }; + key { symbols[Group1] = [ r, R, 4, 4 ] }; + key { symbols[Group1] = [ t, T, 5, 5 ] }; + key { symbols[Group1] = [ y, Y, 6, 6 ] }; + key { symbols[Group1] = [ u, U, 7, 7 ] }; + key { symbols[Group1] = [ i, I, 8, 8 ] }; + key { symbols[Group1] = [ o, O, 9, 9 ] }; + key { symbols[Group1] = [ p, P, 0, 0 ] }; + key { symbols[Group1] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, 5, 5 ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 7, 7 ] }; + key { symbols[Group2] = [ Ukrainian_i, Ukrainian_I, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, Cyrillic_shcha, Cyrillic_SHCHA ] }; + + // 2. row + key { symbols[Group1] = [ a, A, asterisk, asterisk ] }; + key { symbols[Group1] = [ s, S, plus, plus ] }; + key { symbols[Group1] = [ d, D, numbersign, numbersign ] }; + key { symbols[Group1] = [ f, F, minus, minus ] }; + key { symbols[Group1] = [ g, G, underscore, underscore ] }; + key { symbols[Group1] = [ h, H, exclam, exclam ] }; + key { symbols[Group1] = [ j, J, question, question ] }; + key { symbols[Group1] = [ k, K, semicolon, semicolon ] }; + key { symbols[Group1] = [ l, L, colon, colon ] }; + key { symbols[Group1] = [ comma, comma, comma, comma ] }; + key { symbols[Group1] = [ period, period, period, period ] }; + + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, asterisk, asterisk ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, exclam, exclam ] }; + key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, question, question ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, semicolon, semicolon ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, colon, colon ] }; + key { symbols[Group2] = [ Cyrillic_yu, Cyrillic_YU, comma, comma ] }; + key { symbols[Group2] = [ Ukrainin_ie, Ukrainian_IE, period, period ] }; + + // 3. row + key { symbols[Group1] = [ z, Z, dollar, dollar ] }; + key { symbols[Group1] = [ x, X, EuroSign, EuroSign ] }; + key { symbols[Group1] = [ c, C, slash, slash ] }; + key { symbols[Group1] = [ v, V, parenleft, parenleft ] }; + key { symbols[Group1] = [ b, B, parenright, parenright ] }; + key { symbols[Group1] = [ n, N, quotedbl, quotedbl ] }; + key { symbols[Group1] = [ m, M, apostrophe, apostrophe ] }; + key { symbols[Group1] = [ Cyrillic_che, Cyrillic_CHE, Ukrainian_yi, Ukrainian_YI ] }; + + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, dollar, dollar ] }; + key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, Ukrainian_yi, Ukrainian_YI ] }; +}; + + +// author: Roman Moravcik +// author: Tarick +partial alphanumeric_keys +xkb_symbols "ua" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_2btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Ukrainian"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group1] = [ q, Q, 1, 1 ] }; + key { symbols[Group1] = [ w, W, 2, 2 ] }; + key { symbols[Group1] = [ e, E, 3, 3 ] }; + key { symbols[Group1] = [ r, R, 4, 4 ] }; + key { symbols[Group1] = [ t, T, 5, 5 ] }; + key { symbols[Group1] = [ y, Y, 6, 6 ] }; + key { symbols[Group1] = [ u, U, 7, 7 ] }; + key { symbols[Group1] = [ i, I, 8, 8 ] }; + key { symbols[Group1] = [ o, O, 9, 9 ] }; + key { symbols[Group1] = [ p, P, 0, 0 ] }; + key { symbols[Group1] = [ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ] }; + + key { symbols[Group2] = [ Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] }; + key { symbols[Group2] = [ Cyrillic_tse, Cyrillic_TSE, 2, 2 ] }; + key { symbols[Group2] = [ Cyrillic_u, Cyrillic_U, 3, 3 ] }; + key { symbols[Group2] = [ Cyrillic_ka, Cyrillic_KA, 4, 4 ] }; + key { symbols[Group2] = [ Cyrillic_ie, Cyrillic_IE, 5, 5 ] }; + key { symbols[Group2] = [ Cyrillic_en, Cyrillic_EN, 6, 6 ] }; + key { symbols[Group2] = [ Cyrillic_ghe, Cyrillic_GHE, 7, 7 ] }; + key { symbols[Group2] = [ Cyrillic_sha, Cyrillic_SHA, 8, 8 ] }; + key { symbols[Group2] = [ Cyrillic_shcha, Cyrillic_SHCHA, 9, 9 ] }; + key { symbols[Group2] = [ Cyrillic_ze, Cyrillic_ZE, 0, 0 ] }; + key { symbols[Group2] = [ Cyrillic_ha, Cyrillic_HA, Ukrainian_yi, Ukrainian_YI ] }; + + // 2. row + key { symbols[Group1] = [ a, A, asterisk, asterisk ] }; + key { symbols[Group1] = [ s, S, plus, plus ] }; + key { symbols[Group1] = [ d, D, numbersign, numbersign ] }; + key { symbols[Group1] = [ f, F, minus, minus ] }; + key { symbols[Group1] = [ g, G, underscore, underscore ] }; + key { symbols[Group1] = [ h, H, exclam, exclam ] }; + key { symbols[Group1] = [ j, J, question, question ] }; + key { symbols[Group1] = [ k, K, semicolon, semicolon ] }; + key { symbols[Group1] = [ l, L, colon, colon ] }; + key { symbols[Group1] = [ comma, comma, comma, comma ] }; + key { symbols[Group1] = [ period, period, period, period ] }; + + key { symbols[Group2] = [ Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] }; + key { symbols[Group2] = [ Ukrainian_i, Ukrainian_I, plus, plus ] }; + key { symbols[Group2] = [ Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] }; + key { symbols[Group2] = [ Cyrillic_a, Cyrillic_A, minus, minus ] }; + key { symbols[Group2] = [ Cyrillic_pe, Cyrillic_PE, underscore, underscore ] }; + key { symbols[Group2] = [ Cyrillic_er, Cyrillic_ER, exclam, exclam ] }; + key { symbols[Group2] = [ Cyrillic_o, Cyrillic_O, question, question ] }; + key { symbols[Group2] = [ Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] }; + key { symbols[Group2] = [ Cyrillic_de, Cyrillic_DE, colon, colon ] }; + key { symbols[Group2] = [ Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] }; + key { symbols[Group2] = [ Ukrainian_ie, Ukrainian_IE, period, period ] }; + + // 3. row + key { symbols[Group1] = [ z, Z, dollar, dollar ] }; + key { symbols[Group1] = [ x, X, EuroSign, EuroSign ] }; + key { symbols[Group1] = [ c, C, slash, slash ] }; + key { symbols[Group1] = [ v, V, parenleft, parenleft ] }; + key { symbols[Group1] = [ b, B, parenright, parenright ] }; + key { symbols[Group1] = [ n, N, quotedbl, quotedbl ] }; + key { symbols[Group1] = [ m, M, apostrophe, apostrophe ] }; + key { symbols[Group1] = [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; + + key { symbols[Group2] = [ Cyrillic_ya, Cyrillic_YA, dollar, dollar ] }; + key { symbols[Group2] = [ Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] }; + key { symbols[Group2] = [ Cyrillic_es, Cyrillic_ES, slash, slash ] }; + key { symbols[Group2] = [ Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] }; + key { symbols[Group2] = [ Cyrillic_i, Cyrillic_I, parenright, parenright ] }; + key { symbols[Group2] = [ Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] }; + key { symbols[Group2] = [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] }; + key { symbols[Group2] = [ Cyrillic_be, Cyrillic_BE, Cyrillic_yu, Cyrillic_YU ] }; +}; + +// author: Mihai C. +// created on 2010-10-31 +partial alphanumeric_keys +xkb_symbols "ro" { + include "nokia_vndr/rx-51(english_base)" + + name[Group1] = "Romanian"; + + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Up, abreve ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, 0x1000219 ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Down, 0x100021b ] }; + key { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, acircumflex ] }; + + key { [ z, Z, icircumflex, Icircumflex] }; +}; + +// author: Thanawit Lertruengpanya +partial alphanumeric_keys +xkb_symbols "th" { + include "nokia_vndr/rx-51(english_base)" + include "nokia_vndr/rx-51(arrows_4btns)" + + name[Group1] = "U.S. English"; + name[Group2] = "Thai Kedmanee"; + + key { type[Group1] = "PC_FN_LEVEL2_BREAK", [ space, at, ISO_Prev_Group, at ] }; + + key.type[Group2] = "FOUR_LEVEL_SEMIALPHABETIC"; + + // 1. row + key { symbols[Group2] = [ Thai_maiyamok, Thai_leksun, Thai_lakkhangyao, plus ] }; + key { symbols[Group2] = [ Thai_saraaimaimalai, quotedbl, slash, Thai_leknung ] }; + key { symbols[Group2] = [ Thai_saraam, Thai_dochada, minus, Thai_leksong ] }; + key { symbols[Group2] = [ Thai_phophan, Thai_thonangmontho, Thai_phosamphao, Thai_leksam ] }; + key { symbols[Group2] = [ Thai_saraa, Thai_thothong, Thai_thothung, Thai_leksi ] }; + key { symbols[Group2] = [ Thai_maihanakat, Thai_nikhahit, Thai_sarau, Thai_sarauu ] }; + key { symbols[Group2] = [ Thai_saraii, Thai_maitri, Thai_saraue, Thai_baht ] }; + key { symbols[Group2] = [ Thai_rorua, Thai_nonen, Thai_khokhwai, Thai_lekha ] }; + key { symbols[Group2] = [ Thai_nonu, Thai_paiyannoi, Thai_totao, Thai_lekhok ] }; + key { symbols[Group2] = [ Thai_yoyak, Thai_yoying, Thai_chochan, Thai_lekchet ] }; + key { symbols[Group2] = [ Thai_bobaimai, Thai_thothan, Thai_khokhai, Thai_lekpaet ] }; + + // 2. row + key { symbols[Group2] = [ Thai_fofan, Thai_ru, Thai_chochang, Thai_lekkao ] }; + key { symbols[Group2] = [ Thai_hohip, Thai_khorakhang, plus, plus ] }; + key { symbols[Group2] = [ Thai_kokai, Thai_topatak, numbersign, numbersign ] }; + key { symbols[Group2] = [ Thai_dodek, Thai_sarao, minus, minus ] }; + key { symbols[Group2] = [ Thai_sarae, Thai_chochoe, underscore, underscore ] }; + key { symbols[Group2] = [ Thai_maitho, Thai_maitaikhu, Thai_ngongu, period ] }; + key { symbols[Group2] = [ Thai_maiek, Thai_maichattawa, Thai_loling, comma ] }; + key { symbols[Group2] = [ Thai_saraaa, Thai_sorusi, ampersand, ampersand ] }; + key { symbols[Group2] = [ Thai_sosua, Thai_sosala, exclam, exclam ] }; + key { symbols[Group2] = [ Thai_wowaen, Thai_soso, question, question ] }; + + // 3. row + key { symbols[Group2] = [ Thai_phophung, parenleft, Thai_moma, Thai_thophuthao ] }; + key { symbols[Group2] = [ Thai_popla, parenright, Thai_saraaimaimuan, Thai_lochula ] }; + key { symbols[Group2] = [ Thai_saraae, Thai_choching, Thai_fofa, Thai_lu ] }; + key { symbols[Group2] = [ Thai_oang, Thai_honokhuk, slash, slash ] }; + key { symbols[Group2] = [ Thai_sarai, Thai_phinthu, backslash, backslash ] }; + key { symbols[Group2] = [ Thai_sarauee, Thai_thanthakhat, Thai_khokhuat, Thai_khokhon ] }; + key { symbols[Group2] = [ Thai_thothahan, question, apostrophe, apostrophe ] }; +};