1partial alphanumeric_keys default 2xkb_symbols "no" { 3 name[Group1]= "Norwegian/Danish"; 4 5 include "nokia_vndr/su-8w(base)" 6 7 key <AE01> { [ 1, exclam, dead_circumflex ] }; 8 key <AE02> { [ 2, quotedbl, at ] }; 9 key <AE03> { [ 3, numbersign, EuroSign ] }; 10 key <AE04> { [ 4, currency, dollar ] }; 11 key <AE05> { [ 5, percent, sterling ] }; 12 key <AE06> { [ 6, ampersand ] }; 13 key <AE07> { [ 7, slash, braceleft ] }; 14 key <AE08> { [ 8, parenleft, bracketleft ] }; 15 key <AE09> { [ 9, parenright, bracketright ] }; 16 key <AE10> { [ 0, equal, braceright ] }; 17 key <AE11> { [ plus, question ] }; 18 key <AE12> { [ dead_acute, dead_grave, backslash ] }; 19 20 key <AD01> { [ q, Q, dead_circumflex ] }; 21 key <AD02> { [ w, W, at ] }; 22 key <AD03> { [ e, E, EuroSign ] }; 23 key <AD04> { [ r, R, dollar ] }; 24 key <AD05> { [ t, T, sterling ] }; 25 key <AD06> { [ y, Y ] }; 26 key <AD07> { [ u, U, braceleft ] }; 27 key <AD08> { [ i, I, bracketleft ] }; 28 key <AD09> { [ o, O, bracketright ] }; 29 key <AD10> { [ p, P, braceright ] }; 30 key <AD11> { [ aring, Aring ] }; 31 key <AD12> { [ ssharp, U1E9E, backslash ] }; 32 33 key <AC01> { [ a, A ] }; 34 key <AC02> { [ s, S ] }; 35 key <AC03> { [ d, D ] }; 36 key <AC04> { [ f, F ] }; 37 key <AC05> { [ g, G ] }; 38 key <AC06> { [ h, H ] }; 39 key <AC07> { [ j, J ] }; 40 key <AC08> { [ k, K ] }; 41 key <AC09> { [ l, L ] }; 42 key <AC10> { [ oslash, Ooblique ] }; 43 key <AC11> { [ ae, AE ] }; 44 45 key <AB01> { [ z, Z ] }; 46 key <AB02> { [ x, X ] }; 47 key <AB03> { [ c, C ] }; 48 key <AB04> { [ v, V ] }; 49 key <AB05> { [ b, B ] }; 50 key <AB06> { [ n, N ] }; 51 key <AB07> { [ m, M ] }; 52 key <AB08> { [ comma, semicolon, less ] }; 53 key <AB09> { [ period, colon, greater ] }; 54 key <AB10> { [ minus, underscore, dead_diaeresis ] }; 55 56 include "level3(ralt_switch)" 57}; 58 59partial alphanumeric_keys 60xkb_symbols "no_nodeadkeys" { 61 name[Group1] = "Norwegian/Danish (no dead keys)"; 62 63 include "nokia_vndr/su-8w(no)" 64 65 key <AE01> { [ 1, exclam, asciicircum ] }; 66 key <AE12> { [ acute, grave, backslash ] }; 67 key <AD01> { [ q, Q, asciicircum ] }; 68}; 69 70partial alphanumeric_keys default 71xkb_symbols "dk" { 72 include "nokia_vndr/su-8w(no)" 73}; 74 75partial alphanumeric_keys default 76xkb_symbols "dk_nodeadkeys" { 77 include "nokia_vndr/su-8w(no_nodeadkeys)" 78}; 79 80 81 82partial alphanumeric_keys default 83xkb_symbols "de" { 84 name[Group1]= "German"; 85 include "nokia_vndr/su-8w(base)" 86 87 key <AE01> { [ 1, exclam, dead_circumflex ] }; 88 key <AE02> { [ 2, quotedbl, at ] }; 89 key <AE03> { [ 3, numbersign, EuroSign ] }; 90 key <AE04> { [ 4, currency, dollar ] }; 91 key <AE05> { [ 5, percent, sterling ] }; 92 key <AE06> { [ 6, ampersand ] }; 93 key <AE07> { [ 7, slash, braceleft ] }; 94 key <AE08> { [ 8, parenleft, bracketleft ] }; 95 key <AE09> { [ 9, parenright, bracketright ] }; 96 key <AE10> { [ 0, equal, braceright ] }; 97 key <AE11> { [ plus, question ] }; 98 key <AE12> { [ dead_acute, dead_grave, backslash ] }; 99 100 key <AD01> { [ q, Q, dead_circumflex ] }; 101 key <AD02> { [ w, W, at ] }; 102 key <AD03> { [ e, E, EuroSign ] }; 103 key <AD04> { [ r, R, dollar ] }; 104 key <AD05> { [ t, T, sterling ] }; 105 key <AD06> { [ z, Z ] }; 106 key <AD07> { [ u, U, braceleft ] }; 107 key <AD08> { [ i, I, bracketleft ] }; 108 key <AD09> { [ o, O, bracketright ] }; 109 key <AD10> { [ p, P, braceright ] }; 110 key <AD11> { [ udiaeresis, Udiaeresis ] }; 111 key <AD12> { [ ssharp, U1E9E, backslash ] }; 112 113 key <AC01> { [ a, A ] }; 114 key <AC02> { [ s, S ] }; 115 key <AC03> { [ d, D ] }; 116 key <AC04> { [ f, F ] }; 117 key <AC05> { [ g, G ] }; 118 key <AC06> { [ h, H ] }; 119 key <AC07> { [ j, J ] }; 120 key <AC08> { [ k, K ] }; 121 key <AC09> { [ l, L ] }; 122 key <AC10> { [ odiaeresis, Odiaeresis ] }; 123 key <AC11> { [ adiaeresis, Adiaeresis ] }; 124 125 key <AB01> { [ y, Y ] }; 126 key <AB02> { [ x, X ] }; 127 key <AB03> { [ c, C ] }; 128 key <AB04> { [ v, V ] }; 129 key <AB05> { [ b, B ] }; 130 key <AB06> { [ n, N ] }; 131 key <AB07> { [ m, M ] }; 132 key <AB08> { [ comma, semicolon, less ] }; 133 key <AB09> { [ period, colon, greater ] }; 134 // XXX Inexplicably, the diaeresis is dead on other layouts, but not 135 // German. Go figure. 136 key <AB10> { [ minus, underscore, diaeresis ] }; 137 138 include "level3(ralt_switch)" 139}; 140 141partial alphanumeric_keys 142xkb_symbols "de_nodeadkeys" { 143 name[Group1] = "German (no dead keys)"; 144 145 include "nokia_vndr/su-8w(de)" 146 147 key <AE01> { [ 1, exclam, asciicircum ] }; 148 key <AE12> { [ acute, grave, backslash ] }; 149 key <AD01> { [ q, Q, asciicircum ] }; 150}; 151 152 153 154partial alphanumeric_keys default 155xkb_symbols "se" { 156 name[Group1]= "Finnish/Swedish"; 157 158 include "nokia_vndr/su-8w(base)" 159 160 key <AE01> { [ 1, exclam, dead_circumflex ] }; 161 key <AE02> { [ 2, quotedbl, at ] }; 162 key <AE03> { [ 3, numbersign, EuroSign ] }; 163 key <AE04> { [ 4, currency, dollar ] }; 164 key <AE05> { [ 5, percent, sterling ] }; 165 key <AE06> { [ 6, ampersand ] }; 166 key <AE07> { [ 7, slash, braceleft ] }; 167 key <AE08> { [ 8, parenleft, bracketleft ] }; 168 key <AE09> { [ 9, parenright, bracketright ] }; 169 key <AE10> { [ 0, equal, braceright ] }; 170 key <AE11> { [ plus, question ] }; 171 key <AE12> { [ dead_acute, dead_grave, backslash ] }; 172 173 key <AD01> { [ q, Q, dead_circumflex ] }; 174 key <AD02> { [ w, W, at ] }; 175 key <AD03> { [ e, E, EuroSign ] }; 176 key <AD04> { [ r, R, dollar ] }; 177 key <AD05> { [ t, T, sterling ] }; 178 key <AD06> { [ y, Y ] }; 179 key <AD07> { [ u, U, braceleft ] }; 180 key <AD08> { [ i, I, bracketleft ] }; 181 key <AD09> { [ o, O, bracketright ] }; 182 key <AD10> { [ p, P, braceright ] }; 183 key <AD11> { [ aring, Aring ] }; 184 key <AD12> { [ ssharp, U1E9E, backslash ] }; 185 186 key <AC01> { [ a, A ] }; 187 key <AC02> { [ s, S ] }; 188 key <AC03> { [ d, D ] }; 189 key <AC04> { [ f, F ] }; 190 key <AC05> { [ g, G ] }; 191 key <AC06> { [ h, H ] }; 192 key <AC07> { [ j, J ] }; 193 key <AC08> { [ k, K ] }; 194 key <AC09> { [ l, L ] }; 195 key <AC10> { [ odiaeresis, Odiaeresis ] }; 196 key <AC11> { [ adiaeresis, Adiaeresis ] }; 197 198 key <AB01> { [ z, Z ] }; 199 key <AB02> { [ x, X ] }; 200 key <AB03> { [ c, C ] }; 201 key <AB04> { [ v, V ] }; 202 key <AB05> { [ b, B ] }; 203 key <AB06> { [ n, N ] }; 204 key <AB07> { [ m, M ] }; 205 key <AB08> { [ comma, semicolon, less ] }; 206 key <AB09> { [ period, colon, greater ] }; 207 key <AB10> { [ minus, underscore, dead_diaeresis ] }; 208 209 include "level3(ralt_switch)" 210}; 211 212partial alphanumeric_keys 213xkb_symbols "se_nodeadkeys" { 214 name[Group1] = "Finnish/Swedish (no dead keys)"; 215 216 include "nokia_vndr/su-8w(se)" 217 218 key <AE01> { [ 1, exclam, asciicircum ] }; 219 key <AE12> { [ acute, grave, backslash ] }; 220 key <AD01> { [ q, Q, asciicircum ] }; 221 key <AB10> { [ minus, underscore, diaeresis ] }; 222}; 223 224partial alphanumeric_keys default 225xkb_symbols "fi" { 226 include "nokia_vndr/su-8w(se)" 227}; 228 229xkb_symbols "fi_nodeadkeys" { 230 include "nokia_vndr/su-8w(se_nodeadkeys)" 231}; 232 233 234 235// Russian layout on first two levels, US layout on third and fourth. 236partial alphanumeric_keys default 237xkb_symbols "ru" { 238 name[Group1]= "Russian"; 239 240 include "nokia_vndr/su-8w(base)" 241 242 // XXX Would be nice if this actually generated a tilde. 243 key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave ] }; 244 key <AE01> { [ 1, exclam, exclam, exclam ] }; 245 key <AE02> { [ 2, at, quotedbl, at ] }; 246 key <AE03> { [ 3, numbersign, numbersign, numbersign ] }; 247 key <AE04> { [ 4, dollar, currency, dollar ] }; 248 key <AE05> { [ 5, percent, percent, percent ] }; 249 key <AE06> { [ 6, dead_circumflex, ampersand, asciicircum ] }; 250 key <AE07> { [ 7, ampersand, slash, ampersand ] }; 251 key <AE08> { [ 8, asterisk, parenleft, asterisk ] }; 252 key <AE09> { [ 9, parenleft, parenright, parenleft ] }; 253 key <AE10> { [ 0, parenright, equal, parenright ] }; 254 key <AE11> { [ minus, underscore, plus, question ] }; 255 key <AE12> { [ equal, plus, equal, plus ] }; 256 257 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, q, Q ] }; 258 key <AD02> { [ Cyrillic_tse, Cyrillic_TSE, w, W ] }; 259 key <AD03> { [ Cyrillic_u, Cyrillic_U, e, E ] }; 260 key <AD04> { [ Cyrillic_ka, Cyrillic_KA, r, R ] }; 261 key <AD05> { [ Cyrillic_ie, Cyrillic_IE, t, T ] }; 262 key <AD06> { [ Cyrillic_en, Cyrillic_EN, y, Y ] }; 263 key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, u, U ] }; 264 key <AD08> { [ Cyrillic_sha, Cyrillic_SHA, i, I ] }; 265 key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA, o, O ] }; 266 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE, p, P ] }; 267 key <AD11> { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; 268 key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] }; 269 270 key <AC01> { [ Cyrillic_ef, Cyrillic_EF, a, A ] }; 271 key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU, s, S ] }; 272 key <AC03> { [ Cyrillic_ve, Cyrillic_VE, d, D ] }; 273 key <AC04> { [ Cyrillic_a, Cyrillic_A, f, F ] }; 274 key <AC05> { [ Cyrillic_pe, Cyrillic_PE, g, G ] }; 275 key <AC06> { [ Cyrillic_er, Cyrillic_ER, h, H ] }; 276 key <AC07> { [ Cyrillic_o, Cyrillic_O, j, J ] }; 277 key <AC08> { [ Cyrillic_el, Cyrillic_EL, k, K ] }; 278 key <AC09> { [ Cyrillic_de, Cyrillic_DE, l, L ] }; 279 key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, semicolon, colon ] }; 280 key <AC11> { [ Cyrillic_e, Cyrillic_E, apostrophe, quotedbl ] }; 281 282 key <AB01> { [ Cyrillic_ya, Cyrillic_YA, z, Z ] }; 283 key <AB02> { [ Cyrillic_che, Cyrillic_CHE, x, X ] }; 284 key <AB03> { [ Cyrillic_es, Cyrillic_ES, c, C ] }; 285 key <AB04> { [ Cyrillic_em, Cyrillic_EM, v, V ] }; 286 key <AB05> { [ Cyrillic_i, Cyrillic_I, b, B ] }; 287 key <AB06> { [ Cyrillic_te, Cyrillic_TE, n, N ] }; 288 key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, m, M ] }; 289 key <AB08> { [ Cyrillic_be, Cyrillic_BE, comma, less ] }; 290 key <AB09> { [ Cyrillic_yu, Cyrillic_YU, period, greater ] }; 291 key <AB10> { [ slash, question, slash, question ] }; 292 293 include "level3(ralt_switch)" 294}; 295 296partial alphanumeric_keys 297xkb_symbols "ru_nodeadkeys" { 298 name[Group1] = "Russian - no dead keys"; 299 300 include "nokia_vndr/su-8w(ru)" 301 302 key <AE06> { [ 6, asciicircum, ampersand, asciicircum ] }; 303}; 304 305 306 307partial alphanumeric_keys default 308xkb_symbols "us" { 309 name[Group1]= "U.S. English - International"; 310 311 include "nokia_vndr/su-8w(base)" 312 313 // I can't believe it's not us(intl). 314 key <AE01> { [ 1, exclam, exclamdown ] }; 315 key <AE02> { [ 2, at, twosuperior ] }; 316 key <AE03> { [ 3, numbersign ] }; 317 key <AE04> { [ 4, dollar, currency ] }; 318 key <AE05> { [ 5, percent, EuroSign ] }; 319 key <AE06> { [ 6, asciicircum, onequarter ] }; 320 key <AE07> { [ 7, ampersand, onehalf ] }; 321 key <AE08> { [ 8, asterisk, threequarters ] }; 322 key <AE09> { [ 9, parenleft, leftsinglequotemark ] }; 323 key <AE10> { [ 0, parenright, rightsinglequotemark ] }; 324 key <AE11> { [ minus, underscore, yen ] }; 325 key <AE12> { [ equal, plus, multiply ] }; 326 327 key <AD01> { [ q, Q, adiaeresis, Adiaeresis ] }; 328 key <AD02> { [ w, W, aring, Aring ] }; 329 key <AD03> { [ e, E, eacute, Eacute ] }; 330 key <AD04> { [ r, R, registered ] }; 331 key <AD05> { [ t, T, thorn, THORN ] }; 332 key <AD06> { [ y, Y, udiaeresis, Udiaeresis ] }; 333 key <AD07> { [ u, U, uacute, Uacute ] }; 334 key <AD08> { [ i, I, iacute, Iacute ] }; 335 key <AD09> { [ o, O, oacute, Oacute ] }; 336 key <AD10> { [ p, P, odiaeresis, Odiaeresis ] }; 337 key <AD11> { [ bracketleft, braceleft, guillemotleft ] }; 338 key <AD12> { [ bracketright, braceright, guillemotright ] }; 339 340 key <AC01> { [ a, A, aacute, Aacute ] }; 341 key <AC02> { [ s, S, ssharp, section ] }; 342 key <AC03> { [ d, D, eth, ETH ] }; 343 key <AC04> { [ f, F ] }; 344 key <AC05> { [ g, G ] }; 345 key <AC06> { [ h, H ] }; 346 key <AC07> { [ j, J ] }; 347 key <AC08> { [ k, K ] }; 348 key <AC09> { [ l, L, oslash, Ooblique ] }; 349 key <AC10> { [ semicolon, colon, paragraph, degree ] }; 350 // XXX Not entirely sure if fourth level is quotedbl or diaeresis. 351 // The former makes a lot more sense. 352 key <AC11> { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; 353 354 key <AB01> { [ z, Z, ae, AE ] }; 355 key <AB02> { [ x, X ] }; 356 key <AB03> { [ c, C, copyright ] }; 357 key <AB04> { [ v, V ] }; 358 key <AB05> { [ b, B ] }; 359 key <AB06> { [ n, N, ntilde, Ntilde ] }; 360 key <AB07> { [ m, M, mu ] }; 361 key <AB08> { [ comma, less, ccedilla, Ccedilla ] }; 362 key <AB09> { [ period, greater ] }; 363 key <AB10> { [ slash, question, questiondown ] }; 364 365 include "level3(ralt_switch)" 366}; 367 368partial alphanumeric_keys 369xkb_symbols "us_nodeadkeys" { 370 name[Group1] = "U.S. English - no dead keys"; 371 372 include "nokia_vndr/su-8w(us_intl)" 373 374 // XXX Not entirely sure if second level is quotedbl or diaeresis. 375 // The former makes a lot more sense. 376 key <AC10> { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; 377}; 378 379 380 381default partial alphanumeric_keys 382xkb_symbols "base" { 383 // forked from from pc(pc105); madness. 384 key <ESC> { [ Escape ] }; 385 386 // the extra key on most European keyboards 387 key <LSGT> { [ less, greater, bar, brokenbar ] }; 388 389 // these keys are common to all layouts 390 key <BKSL> { [ backslash, bar ] }; 391 key <SPCE> { [ space ] }; 392 393 key <BKSP> { [ BackSpace ] }; 394 395 key <TAB> { [ Tab, ISO_Left_Tab ] }; 396 key <RTRN> { [ Return ] }; 397 // we don't ever generate this key, but the VKB needs it always. 398 key <KPEN> { [ KP_Enter ] }; 399 // generated from the headset, must always be in the map. 400 key <I29> { [ XF86Phone ] }; 401 402 key <CAPS> { [ Caps_Lock ] }; 403 404 key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] }; 405 406 key <LFSH> { [ Shift_L ] }; 407 key <LCTL> { [ Control_L ] }; 408 key <LALT> { [ Alt_L, Meta_L ] }; 409 key <LWIN> { [ Super_L ] }; 410 411 key <RTSH> { [ Shift_R ] }; 412 key <RCTL> { [ Control_R ] }; 413 key <RALT> { [ Alt_R, Meta_R ] }; 414 key <RWIN> { [ Super_R ] }; 415 416 key <MENU> { [ Menu ] }; 417 418 key <FK01> { [ F1 ] }; 419 key <FK02> { [ F2 ] }; 420 key <FK03> { [ F3 ] }; 421 key <FK04> { [ F4 ] }; 422 key <FK05> { [ F5 ] }; 423 key <FK06> { [ F6 ] }; 424 key <FK07> { [ F7 ] }; 425 key <FK08> { [ F8 ] }; 426 key <FK09> { [ F9 ] }; 427 key <FK10> { [ F11 ] }; 428 key <FK11> { [ F10 ] }; 429 key <FK12> { [ F12 ] }; 430 431 // Begin modifier mappings 432 modifier_map Shift { Shift_L, Shift_R }; 433 modifier_map Lock { Caps_Lock }; 434 modifier_map Control{ Control_L, Control_R }; 435 modifier_map Mod2 { Num_Lock }; 436 437 // Fake keys for virtual<->real modifiers mapping: 438 key <LVL3> { [ ISO_Level3_Shift ] }; 439 key <MDSW> { [ Mode_switch ] }; 440 modifier_map Mod5 { <LVL3>, <MDSW> }; 441 442 key <ALT> { [ NoSymbol, Alt_L ] }; 443 modifier_map Mod1 { <ALT>, <LALT> }; 444 445 key <META> { [ NoSymbol, Meta_L ] }; 446 modifier_map Mod1 { <META> }; 447 448 key <SUPR> { [ NoSymbol, Super_L ] }; 449 modifier_map Mod4 { <SUPR> }; 450 451 key <HYPR> { [ NoSymbol, Hyper_L ] }; 452 modifier_map Mod4 { <HYPR> }; 453 // End modifier mappings 454 455 key <INS> { [ Insert ] }; 456 key <DELE> { [ Delete ] }; 457 key <END> { [ End ] }; 458 key <UP> { [ Up ] }; 459 key <LEFT> { [ Left ] }; 460 key <DOWN> { [ Down ] }; 461 key <RGHT> { [ Right ] }; 462 463 // True for all layouts (except for ru). 464 key <TLDE> { [ grave, asterisk, asciitilde ] }; 465 466 // SU-8W uses 140 for Home, not the normal keycode. Very useful. 467 key <HOME> { [ NoSymbol ] }; 468 // Ditto LWIN/RWIN and Page Up/Page Down. 469 key <PGUP> { [ none ] }; 470 key <PGDN> { [ NoSymbol ] }; 471 472 // The LWIN & RWIN keys correspond to the 'select left' and 473 // 'select right' keys. 474 key <LWIN> { [ Prior ] }; 475 key <RWIN> { [ Next ] }; 476 477 // <FRNT> = 140 ~ <I140> 478 key <FRNT> { [ Home ] }; 479 // <PROP> = 138 ~ <I138> 480 key <PROP> { [ Menu ] }; 481 key <I163> { [ XF86Mail ] }; 482 483 // Power button. 484 key <I5E> { [ Execute ] }; 485}; 486