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