Guest User

rx-51

a guest
Apr 18th, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.42 KB | None | 0 0
  1. default partial alphanumeric_keys
  2. xkb_symbols "common" {
  3. include "nokia_vndr/rx-51(common_keys)"
  4. include "nokia_vndr/rx-51(modifiers)"
  5.  
  6. // This section should not be included by any other section.
  7. // It's referenced only once by rule file to allow multiple layout configurations.
  8.  
  9. // More than one layout at the same time could be set for instance as follows:
  10. // setxkbmap -rules evdev \
  11. // -model nokiarx51 \
  12. // -option grp:ctrl_shift_toggle \
  13. // -layout us,cz \
  14. // -variant ",qwerty"
  15.  
  16. // Notice the similarity:
  17. // "pc+us+cz(qwerty):2+grp:XYZ" vs.
  18. // "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ"
  19. // where XYZ is one of xkb_symbols section usually located in file symbols/group.
  20.  
  21. // Bear in mind that option XYZ could replace current keys configuration!!!
  22.  
  23. // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys
  24. // which may disallow opening of virtual symbol table (Multi_key).
  25. // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle
  26. // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore
  27. // pressing Ctrl+Shift will switch to previous layout, not to the next one.
  28.  
  29. // For RX-51 device there is a lot of restrictions if more than one layout is
  30. // is configured at the same time because some modifiers and special cases are
  31. // handled by hildon layer (especially with eight-level layout):
  32. // - settings may be done from terminal only (GUI doesn't and won't support it)
  33. // - virtual symbol table is not updated according to current layout
  34. // - for unknown reasons the eight-level layout (nordic,ru) works properly
  35. // only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru")
  36. // otherwise it's not possible to access levels 5-8
  37. // - Ctrl+Space related problems:
  38. // - If eight-level layout is used as first layout one of eight-level layouts has to
  39. // be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled
  40. // - Ctrl+Space has no effect if only four-level layouts are chosen
  41. // (don't forget the layout configured in GUI - despite of it's not reachable)
  42. // - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?)
  43. // in case eight- and four-level layouts are configured simultaneously
  44. // - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts
  45. // in case eight- and four-level layouts are configured simultaneously
  46. // - four-level layout on first place doesn't work at all when Ctrl+Space is "turned on"
  47. // in case the 2nd, 3rd or 4th layout is eight-level layout
  48. };
  49.  
  50. ////////////////////////////////////////////////////////////////////////////////
  51.  
  52. partial alphanumeric_keys
  53. xkb_symbols "us" {
  54. include "nokia_vndr/rx-51(english_base)"
  55. include "nokia_vndr/rx-51(arrows_4btns)"
  56.  
  57. name[Group1] = "U.S. English";
  58. };
  59.  
  60.  
  61.  
  62. partial alphanumeric_keys
  63. xkb_symbols "pl" {
  64. include "nokia_vndr/rx-51(english_base)"
  65. include "nokia_vndr/rx-51(arrows_4btns)"
  66.  
  67. name[Group1] = "Polish";
  68. };
  69.  
  70.  
  71.  
  72. partial alphanumeric_keys
  73. xkb_symbols "fise" {
  74. include "nokia_vndr/rx-51(nordic_base)"
  75. include "nokia_vndr/rx-51(arrows_2btns)"
  76.  
  77. name[Group1] = "Finnish/Swedish";
  78.  
  79. // 2. row
  80. key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam ] };
  81. key <UP> { [ adiaeresis, Adiaeresis, question, question] };
  82. };
  83.  
  84.  
  85.  
  86. partial alphanumeric_keys
  87. xkb_symbols "dano" {
  88. include "nokia_vndr/rx-51(nordic_base)"
  89. include "nokia_vndr/rx-51(arrows_2btns)"
  90.  
  91. name[Group1] = "Danish/Norwegian";
  92.  
  93. // 2. row
  94. key <AB09> { [ oslash, Oslash, exclam, exclam ] };
  95. key <UP> { [ ae, AE, question, question] };
  96. };
  97.  
  98.  
  99.  
  100. partial alphanumeric_keys
  101. xkb_symbols "nordic" {
  102. include "nokia_vndr/rx-51(nordic_base)"
  103. include "nokia_vndr/rx-51(arrows_2btns)"
  104.  
  105. name[Group1] = "Danish/Finnish/Norwegian/Swedish";
  106.  
  107. key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
  108.  
  109. // 2. row
  110. key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam,oslash, Oslash, exclam, exclam ] };
  111. key <UP> { [ adiaeresis, Adiaeresis, question, question, ae, AE, question, question ] };
  112. };
  113.  
  114.  
  115.  
  116. partial alphanumeric_keys
  117. xkb_symbols "ptes" {
  118. include "nokia_vndr/rx-51(english_base)"
  119. include "nokia_vndr/rx-51(arrows_2btns)"
  120.  
  121. name[Group1] = "Portuguese/Spanish";
  122.  
  123. // 1. row
  124. key <AB08> { [ dead_acute, dead_acute, dead_grave, dead_grave ] };
  125.  
  126. // 2. row
  127. key <AC05> { [ g, G, exclamdown, exclamdown ] };
  128. key <AC06> { [ h, H, exclam, exclam ] };
  129. key <AC07> { [ j, J, questiondown, questiondown ] };
  130. key <AC08> { [ k, K, question, question] };
  131. key <AC09> { [ l, L, dead_diaeresis, dead_diaeresis ] };
  132. key <AB09> { [ ntilde, Ntilde, dead_tilde, dead_tilde ] };
  133. key <UP> { [ ccedilla, Ccedilla, dead_circumflex,dead_circumflex ] };
  134.  
  135. // 3. row
  136. key <AB01> { [ z, Z, parenleft, parenleft ] };
  137. key <AB02> { [ x, X, parenright, parenright ] };
  138. key <AB03> { [ c, C, slash, slash ] };
  139. key <AB04> { [ v, V, quotedbl, quotedbl] };
  140. key <AB05> { [ b, B, apostrophe, apostrophe ] };
  141. key <AB06> { [ n, N, colon, colon ] };
  142. key <AB07> { [ m, M, semicolon, semicolon ] };
  143. key <LEFT> { [ period, comma, comma, comma ] };
  144. };
  145.  
  146.  
  147.  
  148. partial alphanumeric_keys
  149. xkb_symbols "fr" {
  150. include "nokia_vndr/rx-51(english_base)"
  151. include "nokia_vndr/rx-51(arrows_2btns)"
  152.  
  153. name[Group1] = "French";
  154.  
  155. // 1. row
  156. key <AD01> { [ a, A, 1, 1 ] };
  157. key <AD02> { [ z, Z, 2, 2 ] };
  158. key <AB08> { [ agrave, Agrave, ccedilla, Ccedilla] };
  159.  
  160. // 2. row
  161. key <AC01> { [ q, Q, asterisk, asterisk] };
  162. key <AC02> { [ s, S, plus, plus ] };
  163. key <AC03> { [ d, D, numbersign, numbersign ] };
  164. key <AC04> { [ f, F, minus, minus ] };
  165. key <AC05> { [ g, G, underscore, underscore ] };
  166. key <AC06> { [ h, H, exclam, exclam ] };
  167. key <AC07> { [ j, J, question, question] };
  168. key <AC08> { [ k, K, colon, colon ] };
  169. key <AC09> { [ l, L, dead_circumflex,dead_circumflex ] };
  170. key <AB09> { [ m, M, ugrave, Ugrave ] };
  171. key <UP> { [ eacute, Eacute, egrave, Egrave ] };
  172.  
  173. // 3. row
  174. key <AB01> { [ w, W, EuroSign, EuroSign] };
  175. key <AB03> { [ c, C, parenleft, parenleft ] };
  176. key <AB04> { [ v, V, parenright, parenright ] };
  177. key <AB05> { [ b, B, slash, slash ] };
  178. key <AB07> { [ comma, comma, apostrophe, apostrophe ] };
  179. key <LEFT> { [ semicolon, period, period, period ] };
  180. };
  181.  
  182.  
  183.  
  184. partial alphanumeric_keys
  185. xkb_symbols "de" {
  186. include "nokia_vndr/rx-51(english_base)"
  187. include "nokia_vndr/rx-51(arrows_2btns)"
  188.  
  189. name[Group1] = "German";
  190.  
  191. // 1. row
  192. key <AD06> { [ z, Z, 6, 6 ] };
  193. key <AB08> { [ udiaeresis, Udiaeresis, ssharp, ssharp ] };
  194.  
  195. // 2. row
  196. key <AC08> { [ k, K, semicolon, semicolon ] };
  197. key <AC09> { [ l, L, colon, colon ] };
  198. key <AB09> { [ odiaeresis, Odiaeresis, exclam, exclam ] };
  199. key <UP> { [ adiaeresis, Adiaeresis, question, question] };
  200.  
  201. // 3. row
  202. key <AB01> { [ y, Y, EuroSign, EuroSign] };
  203. key <AB03> { [ c, C, equal, equal ] };
  204. key <LEFT> { [ period, comma, comma, comma ] };
  205. };
  206.  
  207.  
  208.  
  209. partial alphanumeric_keys
  210. xkb_symbols "ch" {
  211. include "nokia_vndr/rx-51(english_base)"
  212. include "nokia_vndr/rx-51(arrows_2btns)"
  213.  
  214. name[Group1] = "Swiss";
  215.  
  216. // 1. row
  217. key <AD06> { [ z, Z, 6, 6 ] };
  218. key <AB08> { [ udiaeresis, Udiaeresis, egrave, Egrave ] };
  219.  
  220. // 2. row
  221. key <AC06> { [ h, H, equal, equal ] };
  222. key <AC07> { [ j, J, parenleft, parenleft ] };
  223. key <AC08> { [ k, K, parenright, parenright ] };
  224. key <AC09> { [ l, L, colon, colon ] };
  225. key <AB09> { [ odiaeresis, Odiaeresis, eacute, Aacute ] };
  226. key <UP> { [ adiaeresis, Adiaeresis, agrave, Agrave ] };
  227.  
  228. // 3. row
  229. key <AB01> { [ y, Y, question, question] };
  230. key <AB02> { [ x, X, exclam, exclam ] };
  231. key <AB03> { [ c, C, ccedilla, Ccedilla] };
  232. key <LEFT> { [ period, comma, comma, comma ] };
  233. };
  234.  
  235.  
  236. xkb_symbols "ru_us" {
  237. include "nokia_vndr/rx-51(english_base)"
  238. include "nokia_vndr/rx-51(arrows_rule)"
  239.  
  240. name[Group1] = "US/Russian";
  241.  
  242. key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
  243.  
  244. // 1. row
  245. key <AD01> { [ q, Q, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1] };
  246. key <AD02> { [ w, W, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2] };
  247. key <AD03> { [ e, E, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3] };
  248. key <AD04> { [ r, R, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4] };
  249. key <AD05> { [ t, T, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5] };
  250. key <AD06> { [ y, Y, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6] };
  251. key <AD07> { [ u, U, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7] };
  252. key <AD08> { [ i, I, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8] };
  253. key <AD09> { [ o, O, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9] };
  254. key <AD10> { [ p, P, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0] };
  255. key <AB08> { [ comma, semicolon, equal, equal, Cyrillic_ha, Cyrillic_HA, equal, equal ] };
  256.  
  257. // 2. row
  258. key <AC01> { [ a, A, asterisk, asterisk, Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] };
  259. key <AC02> { [ s, S, plus, plus, Cyrillic_yeru, Cyrillic_YERU, plus, plus ] };
  260. key <AC03> { [ d, D, numbersign, numbersign, Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] };
  261. key <AC04> { [ f, F, minus, minus, Cyrillic_a, Cyrillic_A, minus, minus ] };
  262. key <AC05> { [ g, G, underscore, underscore, Cyrillic_pe, Cyrillic_PE, underscore, underscore ] };
  263. key <AC06> { [ h, H, parenleft, parenleft, Cyrillic_er, Cyrillic_ER, parenleft, parenleft ] };
  264. key <AC07> { [ j, J, parenright, parenright, Cyrillic_o, Cyrillic_O, parenright, parenright ] };
  265. key <AC08> { [ k, K, ampersand, ampersand, Cyrillic_el, Cyrillic_EL, ampersand, ampersand ] };
  266. key <AC09> { [ l, L, exclam, exclam, Cyrillic_de, Cyrillic_DE, exclam,exclam ] };
  267. key <AB09> { [ period, colon, question, question, Cyrillic_zhe, Cyrillic_ZHE, period,question ] };
  268.  
  269. // 3. row
  270. key <AB01> { [ z, Z, colon, semicolon, Cyrillic_ya, Cyrillic_YA, colon, semicolon ] };
  271. key <AB02> { [ x, X, dollar, dollar, Cyrillic_che, Cyrillic_CHE, dollar,dollar ] };
  272. key <AB03> { [ c, C, EuroSign, EuroSign, Cyrillic_es, Cyrillic_ES, EuroSign, EuroSign ] };
  273. key <AB04> { [ v, V, slash, slash, Cyrillic_em, Cyrillic_EM, slash, slash ] };
  274. key <AB05> { [ b, B, backslash, backslash, Cyrillic_i, Cyrillic_I, backslash, backslash ] };
  275. key <AB06> { [ n, N, quotedbl, quotedbl, Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] };
  276. key <AB07> { [ m, M, apostrophe, apostrophe, Cyrillic_softsign, colon, apostrophe, apostrophe ] };
  277.  
  278. };
  279.  
  280.  
  281.  
  282. // Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons.
  283. partial alphanumeric_keys
  284. xkb_symbols "ru" {
  285. include "nokia_vndr/rx-51(english_base)"
  286. include "nokia_vndr/rx-51(arrows_2btns)"
  287.  
  288. name[Group1] = "Russian";
  289.  
  290. key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";
  291.  
  292. // 1. row
  293. key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, 1, 1, Cyrillic_shorti, Cyrillic_SHORTI, 1, 1 ] };
  294. key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, 2, 2, Cyrillic_tse, Cyrillic_TSE, 2, 2] };
  295. key <AD03> { [ Cyrillic_u, Cyrillic_U, 3, 3, Cyrillic_u, Cyrillic_U, 3, 3] };
  296. key <AD04> { [ Cyrillic_ka, Cyrillic_KA, 4, 4, Cyrillic_ka, Cyrillic_KA, 4, 4] };
  297. key <AD05> { [ Cyrillic_ie, Cyrillic_IE, 5, 5, Cyrillic_ie, Cyrillic_IE, 5, 5] };
  298. key <AD06> { [ Cyrillic_en, Cyrillic_EN, 6, 6, Cyrillic_en, Cyrillic_EN, 6, 6] };
  299. key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, 7, 7, Cyrillic_ghe, Cyrillic_GHE, 7, 7] };
  300. key <AD08> { [ Cyrillic_sha, Cyrillic_SHA, 8, 8, Cyrillic_sha, Cyrillic_SHA, 8, 8] };
  301. key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA, 9, 9, Cyrillic_shcha, Cyrillic_SHCHA, 9, 9] };
  302. key <AD10> { [ Cyrillic_ze, Cyrillic_ZE, 0, 0, Cyrillic_ze, Cyrillic_ZE, 0, 0] };
  303. key <AB08> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN, Cyrillic_ha, Cyrillic_HA, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
  304.  
  305. // 2. row
  306. key <AC01> { [ Cyrillic_ef, Cyrillic_EF, asterisk, asterisk, Cyrillic_ef, Cyrillic_EF, asterisk, asterisk ] };
  307. key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, plus, plus, Cyrillic_yeru, Cyrillic_YERU, plus, plus ] };
  308. key <AC03> { [ Cyrillic_ve, Cyrillic_VE, numbersign, numbersign, Cyrillic_ve, Cyrillic_VE, numbersign, numbersign ] };
  309. key <AC04> { [ Cyrillic_a, Cyrillic_A, minus, minus, Cyrillic_a, Cyrillic_A, minus, minus ] };
  310. key <AC05> { [ Cyrillic_pe, Cyrillic_PE, underscore, underscore, Cyrillic_pe, Cyrillic_PE, underscore, underscore ] };
  311. key <AC06> { [ Cyrillic_er, Cyrillic_ER, exclam,exclam, Cyrillic_er, Cyrillic_ER, exclam,exclam ] };
  312. key <AC07> { [ Cyrillic_o, Cyrillic_O, question, question, Cyrillic_o, Cyrillic_O, question, question ] };
  313. key <AC08> { [ Cyrillic_el, Cyrillic_EL, semicolon, semicolon, Cyrillic_el, Cyrillic_EL, semicolon, semicolon ] };
  314. key <AC09> { [ Cyrillic_de, Cyrillic_DE, colon, colon, Cyrillic_de, Cyrillic_DE, colon, colon ] };
  315. key <AB09> { [ comma, comma, comma, comma, Cyrillic_zhe, Cyrillic_ZHE, comma, comma ] };
  316. key <UP> { [ period, period, period, period, Cyrillic_e, Cyrillic_E, period,period ] };
  317.  
  318. // 3. row
  319. key <AB01> { [ Cyrillic_ya, Cyrillic_YA, dollar,dollar, Cyrillic_ya, Cyrillic_YA, dollar,dollar ] };
  320. key <AB02> { [ Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign, Cyrillic_che, Cyrillic_CHE, EuroSign, EuroSign ] };
  321. key <AB03> { [ Cyrillic_es, Cyrillic_ES, slash, slash, Cyrillic_es, Cyrillic_ES, slash, slash ] };
  322. key <AB04> { [ Cyrillic_em, Cyrillic_EM, parenleft, parenleft, Cyrillic_em, Cyrillic_EM, parenleft, parenleft ] };
  323. key <AB05> { [ Cyrillic_i, Cyrillic_I, parenright, parenright, Cyrillic_i, Cyrillic_I, parenright, parenright ] };
  324. key <AB06> { [ Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl, Cyrillic_te, Cyrillic_TE, quotedbl, quotedbl ] };
  325. key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe, Cyrillic_softsign, Cyrillic_SOFTSIGN, apostrophe, apostrophe ] };
  326. };
  327.  
  328.  
  329.  
  330. partial alphanumeric_keys
  331. xkb_symbols "it" {
  332. include "nokia_vndr/rx-51(english_base)"
  333. include "nokia_vndr/rx-51(arrows_2btns)"
  334.  
  335. name[Group1] = "Italian";
  336.  
  337. // 1. row
  338. key <AB08> { [ egrave, Egrave, eacute, Eacute ] };
  339.  
  340. // 2. row
  341. key <AC06> { [ h, H, semicolon, semicolon ] };
  342. key <AC07> { [ j, J, colon, colon ] };
  343. key <AC08> { [ k, K, exclam, exclam ] };
  344. key <AC09> { [ l, L, question, question] };
  345. key <AB09> { [ ograve, Ograve, igrave, Igrave ] };
  346. key <UP> { [ agrave, Agrave, ugrave, Ugrave ] };
  347.  
  348. // 3. row
  349. key <AB01> { [ z, Z, EuroSign, EuroSign] };
  350. key <AB02> { [ x, X, parenleft, parenleft ] };
  351. key <AB03> { [ c, C, parenright, parenright ] };
  352. key <LEFT> { [ period, comma, comma, comma ] };
  353. };
  354.  
  355.  
  356.  
  357. partial alphanumeric_keys
  358. xkb_symbols "cz" {
  359. include "nokia_vndr/rx-51(english_base)"
  360. include "nokia_vndr/rx-51(arrows_2btns)"
  361.  
  362. name[Group1] = "Czech";
  363.  
  364. // 1. row
  365. key <AD06> { [ z, Z, 6, 6 ] };
  366. key <AB08> { [ dead_acute, dead_acute, sterling, sterling] };
  367.  
  368. // 2. row
  369. key <AC08> { [ k, K, semicolon, semicolon ] };
  370. key <AC09> { [ l, L, colon, colon ] };
  371. key <AB09> { [ uring, Uring, EuroSign, EuroSign] };
  372. key <UP> { [ dead_caron, dead_caron, dollar, dollar ] };
  373.  
  374. // 3. row
  375. key <AB01> { [ y, Y, equal, equal ] };
  376. key <AB02> { [ x, X, slash, slash ] };
  377. key <AB03> { [ c, C, backslash, backslash ] };
  378. key <AB04> { [ v, V, apostrophe, apostrophe ] };
  379. key <AB05> { [ b, B, quotedbl, quotedbl] };
  380. key <AB06> { [ n, N, exclam, exclam ] };
  381. key <AB07> { [ m, M, question, question] };
  382. key <LEFT> { [ period, comma, comma, comma ] };
  383. };
  384.  
  385. partial alphanumeric_keys
  386. xkb_symbols "cz_qwerty" {
  387. include "nokia_vndr/rx-51(cz)"
  388.  
  389. name[Group1] = "Czech - qwerty";
  390.  
  391. // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled.
  392. // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51.
  393. // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty".
  394.  
  395. // 1. row
  396. key <AD06> { [ y, Y, 6, 6 ] };
  397.  
  398. // 3. row
  399. key <AB01> { [ z, Z, percent, percent] };
  400. };
  401.  
  402.  
  403.  
  404. ////////////////////////////////////////////////////////////////////////////////
  405.  
  406. partial hidden alphanumeric_keys
  407. xkb_symbols "nordic_base" {
  408. include "nokia_vndr/rx-51(english_base)"
  409.  
  410. // 1. row
  411. key <AB08> { [ aring, Aring, equal, equal ] };
  412.  
  413. // 2. row
  414. key <AC08> { [ k, K, semicolon, semicolon ] };
  415. key <AC09> { [ l, L, colon, colon ] };
  416.  
  417. // 3. row
  418. key <AB01> { [ z, Z, EuroSign, EuroSign] };
  419. key <AB03> { [ c, C, sterling, sterling] };
  420. key <LEFT> { [ period, comma, comma, comma ] };
  421. };
  422.  
  423. partial hidden alphanumeric_keys
  424. xkb_symbols "english_base" {
  425.  
  426. // 1. row
  427. key <AD01> { [ q, Q, 1, 1 ] };
  428. key <AD02> { [ w, W, 2, 2 ] };
  429. key <AD03> { [ e, E, 3, 3 ] };
  430. key <AD04> { [ r, R, 4, 4 ] };
  431. key <AD05> { [ t, T, 5, 5 ] };
  432. key <AD06> { [ y, Y, 6, 6 ] };
  433. key <AD07> { [ u, U, 7, 7 ] };
  434. key <AD08> { [ i, I, 8, 8 ] };
  435. key <AD09> { [ o, O, 9, 9 ] };
  436. key <AD10> { [ p, P, 0, 0 ] };
  437. key <AB08> { [ comma, semicolon, equal, equal ] };
  438.  
  439. // 2. row
  440. key <AC01> { [ a, A, asterisk, asterisk] };
  441. key <AC02> { [ s, S, plus, plus ] };
  442. key <AC03> { [ d, D, numbersign, numbersign ] };
  443. key <AC04> { [ f, F, minus, minus ] };
  444. key <AC05> { [ g, G, underscore, underscore ] };
  445. key <AC06> { [ h, H, parenleft, parenleft ] };
  446. key <AC07> { [ j, J, parenright, parenright ] };
  447. key <AC08> { [ k, K, ampersand, ampersand ] };
  448. key <AC09> { [ l, L, exclam, exclam ] };
  449. key <AB09> { [ period, colon, question, question] };
  450.  
  451. // 3. row
  452. key <AB01> { [ z, Z, sterling, sterling] };
  453. key <AB02> { [ x, X, dollar, dollar ] };
  454. key <AB03> { [ c, C, EuroSign, EuroSign] };
  455. key <AB04> { [ v, V, slash, slash ] };
  456. key <AB05> { [ b, B, backslash, backslash ] };
  457. key <AB06> { [ n, N, quotedbl, quotedbl] };
  458. key <AB07> { [ m, M, apostrophe, apostrophe ] };
  459. key <SPCE> { [ space, space, at, at ] };
  460. };
  461.  
  462. partial hidden alphanumeric_keys
  463. xkb_symbols "common_keys" {
  464. // all other common keys
  465.  
  466. key <BKSP> { [ BackSpace ] };
  467. key <TAB> { [ Tab ] };
  468.  
  469. // broken UI spec.
  470. key <RTRN> { [ KP_Enter ] };
  471.  
  472. key <KPEN> { [ Return ] };
  473. key <ESC> { [ Escape ] };
  474.  
  475. key <FK01> { [ F1 ] };
  476. key <FK02> { [ F2 ] };
  477. key <FK03> { [ F3 ] };
  478. key <FK04> { [ F4 ] };
  479. key <FK05> { [ F5 ] };
  480. key <FK06> { [ F6 ] };
  481.  
  482. // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically
  483. // on left/right and up/down in landscape/portrait orientation. This does
  484. // not feel natural for the user and therefore we want the VOL+/VOL- keys
  485. // map to -/+.
  486. //
  487. // The only exception is an active call in portrait mode where we want to
  488. // use the real meanings of the keys. This special case and management of
  489. // +/- keys in general is handled in maemo-statusmenu-volume.
  490. key <FK07> { [ F8 ] };
  491. key <FK08> { [ F7 ] };
  492.  
  493. key <FK09> { [ F9 ] };
  494. key <FK10> { [ F10 ] };
  495. key <FK11> { [ F11 ] };
  496. };
  497.  
  498. partial hidden alphanumeric_keys modifier_keys
  499. xkb_symbols "modifiers" {
  500. // Shift switches between current level and level+1
  501. key <LFSH> {
  502. type[Group1] = "ONE_LEVEL",
  503. symbols[Group1] = [ Shift_L ]
  504. };
  505. modifier_map Shift { Shift_L };
  506.  
  507. // Fn+Ctrl virtual symbol table (Multi_key)
  508. // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon)
  509. key <LCTL> {
  510. type[Group1] = "FOUR_LEVEL",
  511. symbols[Group1] = [ Control_L, Control_L, Multi_key, Multi_key ]
  512. };
  513. modifier_map Control { Control_L };
  514.  
  515. // Fn key (right alt) switches to 3rd level
  516. include "level3(ralt_switch)"
  517. };
  518.  
  519. partial hidden alphanumeric_keys
  520. xkb_symbols "arrows_2btns" {
  521. // rx-51 specific arrows mapping
  522. // normal 2nd level must not be enumerated to allow text selection with Shift key
  523. key <DOWN> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, Up ] };
  524. key <RGHT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, Down ] };
  525. };
  526.  
  527. partial hidden alphanumeric_keys
  528. xkb_symbols "arrows_4btns" {
  529. // standard arrows mapping
  530. // normal 2nd level must not be enumerated to allow text selection with Shift key
  531. key <UP> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Up ] };
  532. key <LEFT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Left ] };
  533. key <DOWN> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Down ] };
  534. key <RGHT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Right ] };
  535. };
  536.  
  537. xkb_symbols "arrows_rule" {
  538. // standard arrows mapping
  539. // normal 2nd level must not be enumerated to allow text selection with Shift key
  540. key <UP> { type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC", symbols[Group1] = [ Up, Up, Cyrillic_e, Cyrillic_E, Up, Up, Cyrillic_e, Cyrillic_E ] };
  541. key <LEFT> { type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC", symbols[Group1] = [ Left, Left, Cyrillic_be, Cyrillic_BE, Left, Left, Cyrillic_be, Cyrillic_BE ] };
  542. key <DOWN> { type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC", symbols[Group1] = [ Down, Down, Cyrillic_yu, Cyrillic_YU, Down, Down, Cyrillic_yu, Cyrillic_YU ] };
  543. key <RGHT> { type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC", symbols[Group1] = [ Right, Right, Cyrillic_hardsign, Cyrillic_HARDSIGN, Right, Right, Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
  544. };
Advertisement
Add Comment
Please, Sign In to add comment