1// New style XKB layout for some widely used Hungarian keyboard layouts 2// 3// Based on old style 'xkb/symbols/hu" 4// 5// (C) 2002-2004 Soós Péter <sp@osb.hu> 6// (C) 2010 Andras Timar <timar@fsf.hu> 7// 8// Permission is granted to anyone to use, distribute and modify 9// this file in any way, provided that the above copyright notice 10// is left intact and the author of the modification summarizes 11// the changes in this header. 12// 13// This file is distributed without any expressed or implied warranty. 14// 15// Changes: 16// 2004-04-17 - Moved to new style (only Unicode based layouts) 17// - Added consistent dead key support 18// - Fixed abovedot 19// - Added adiaeresis 20// - Added EuroSign and cent symbol 21// 2010-04-23 - Added doublelowquotemark 22// - Added rightdoublequotemark 23// - Added endash 24// 2010-05-13 - Added ellipsis 25 26 27// Default layout 28default partial 29xkb_symbols "basic" { 30 include "hu(102_qwertz_comma_dead)" 31 name[Group1] = "Hungarian"; 32}; 33 34// Standard layout 35partial 36xkb_symbols "standard" { 37 include "hu(102_qwertz_comma_dead)" 38 name[Group1] = "Hungarian (standard)"; 39}; 40 41// Standard layout without dead key support 42partial 43xkb_symbols "nodeadkeys" { 44 include "hu(102_qwertz_comma_nodead)" 45 name[Group1] = "Hungarian (no dead keys)"; 46}; 47 48// Qwerty layout 49partial 50xkb_symbols "qwerty" { 51 include "hu(101_qwerty_comma_dead)" 52 name[Group1] = "Hungarian (QWERTY)"; 53}; 54 55// Main layouts 56 57// 101_qwertz_comma_dead 58// 101 key qwertz layout 59// with decimal comma on keypad 60// and with dead key support 61partial 62xkb_symbols "101_qwertz_comma_dead" { 63 name[Group1] = "Hungarian (101/QWERTZ/comma/dead keys)"; 64 include "latin" 65 include "hu(def_101)" 66 include "hu(def_qwertz)" 67 include "kpdl(comma)" 68 include "hu(def_dead)" 69 include "hu(def_common)" 70 include "level3(ralt_switch)" 71}; 72 73// 101_qwertz_comma_nodead 74// 101 key qwertz layout 75// with decimal comma on keypad 76// and without dead key support 77partial 78xkb_symbols "101_qwertz_comma_nodead" { 79 name[Group1] = "Hungarian (101/QWERTZ/comma/no dead keys)"; 80 include "latin" 81 include "hu(def_101)" 82 include "hu(def_qwertz)" 83 include "kpdl(comma)" 84 include "hu(def_nodead)" 85 include "hu(def_common)" 86 include "level3(ralt_switch)" 87}; 88 89// 101_qwertz_dot_dead 90// 101 key qwertz layout 91// with decimal dot on keypad 92// and with dead key support 93partial 94xkb_symbols "101_qwertz_dot_dead" { 95 name[Group1] = "Hungarian (101/QWERTZ/dot/dead keys)"; 96 include "latin" 97 include "hu(def_101)" 98 include "hu(def_qwertz)" 99 include "hu(def_dot)" 100 include "hu(def_dead)" 101 include "hu(def_common)" 102 include "level3(ralt_switch)" 103}; 104 105// 101_qwertz_dot_nodead 106// 101 key qwertz layout 107// with decimal dot on keypad 108// and without dead key support 109partial 110xkb_symbols "101_qwertz_dot_nodead" { 111 name[Group1] = "Hungarian (101/QWERTZ/dot/no dead keys)"; 112 include "latin" 113 include "hu(def_101)" 114 include "hu(def_qwertz)" 115 include "hu(def_dot)" 116 include "hu(def_nodead)" 117 include "hu(def_common)" 118 include "level3(ralt_switch)" 119}; 120 121// 101_qwerty_comma_dead 122// 101 key qwerty layout 123// with decimal comma on keypad 124// and with dead key support 125partial 126xkb_symbols "101_qwerty_comma_dead" { 127 name[Group1] = "Hungarian (101/QWERTY/comma/dead keys)"; 128 include "latin" 129 include "hu(def_101)" 130 include "hu(def_qwerty)" 131 include "kpdl(comma)" 132 include "hu(def_dead)" 133 include "hu(def_common)" 134 include "level3(ralt_switch)" 135}; 136 137// 101_qwerty_comma_nodead 138// 101 key qwerty layout 139// with decimal comma on keypad 140// and without dead key support 141partial 142xkb_symbols "101_qwerty_comma_nodead" { 143 name[Group1] = "Hungarian (101/QWERTY/comma/no dead keys)"; 144 include "latin" 145 include "hu(def_101)" 146 include "hu(def_qwerty)" 147 include "kpdl(comma)" 148 include "hu(def_nodead)" 149 include "hu(def_common)" 150 include "level3(ralt_switch)" 151}; 152 153// 101_qwerty_dot_dead 154// 101 key qwerty layout 155// with decimal dot on keypad 156// and with dead key support 157partial 158xkb_symbols "101_qwerty_dot_dead" { 159 name[Group1] = "Hungarian (101/QWERTY/dot/dead keys)"; 160 include "latin" 161 include "hu(def_101)" 162 include "hu(def_qwerty)" 163 include "hu(def_dot)" 164 include "hu(def_dead)" 165 include "hu(def_common)" 166 include "level3(ralt_switch)" 167}; 168 169// 101_qwerty_dot_nodead 170// 101 key qwerty layout 171// with decimal dot on keypad 172// and without dead key support 173partial 174xkb_symbols "101_qwerty_dot_nodead" { 175 name[Group1] = "Hungarian (101/QWERTY/dot/no dead keys)"; 176 include "latin" 177 include "hu(def_101)" 178 include "hu(def_qwerty)" 179 include "hu(def_dot)" 180 include "hu(def_nodead)" 181 include "hu(def_common)" 182 include "level3(ralt_switch)" 183}; 184 185// 102_qwertz_comma_dead 186// 102 key qwertz layout 187// with decimal comma on keypad 188// and with dead key support 189partial 190xkb_symbols "102_qwertz_comma_dead" { 191 name[Group1] = "Hungarian (102/QWERTZ/comma/dead keys)"; 192 include "latin" 193 include "hu(def_102)" 194 include "hu(def_qwertz)" 195 include "kpdl(comma)" 196 include "hu(def_dead)" 197 include "hu(def_common)" 198 include "level3(ralt_switch)" 199}; 200 201// 102_qwertz_comma_nodead 202// 102 key qwertz layout 203// with decimal comma on keypad 204// and without dead key support 205partial 206xkb_symbols "102_qwertz_comma_nodead" { 207 name[Group1] = "Hungarian (102/QWERTZ/comma/no dead keys)"; 208 include "latin" 209 include "hu(def_102)" 210 include "hu(def_qwertz)" 211 include "kpdl(comma)" 212 include "hu(def_nodead)" 213 include "hu(def_common)" 214 include "level3(ralt_switch)" 215}; 216 217// 102_qwertz_dot_dead 218// 102 key qwertz layout 219// with decimal dot on keypad 220// and with dead key support 221partial 222xkb_symbols "102_qwertz_dot_dead" { 223 name[Group1] = "Hungarian (102/QWERTZ/dot/dead keys)"; 224 include "latin" 225 include "hu(def_102)" 226 include "hu(def_qwertz)" 227 include "hu(def_dot)" 228 include "hu(def_dead)" 229 include "hu(def_common)" 230 include "level3(ralt_switch)" 231}; 232 233// 102_qwertz_dot_nodead 234// 102 key qwertz layout 235// with decimal dot on keypad 236// and without dead key support 237partial 238xkb_symbols "102_qwertz_dot_nodead" { 239 name[Group1] = "Hungarian (102/QWERTZ/dot/no dead keys)"; 240 include "latin" 241 include "hu(def_102)" 242 include "hu(def_qwertz)" 243 include "hu(def_dot)" 244 include "hu(def_nodead)" 245 include "hu(def_common)" 246 include "level3(ralt_switch)" 247}; 248 249// 102_qwerty_comma_dead 250// 102 key qwerty layout 251// with decimal comma on keypad 252// and with dead key support 253partial 254xkb_symbols "102_qwerty_comma_dead" { 255 name[Group1] = "Hungarian (102/QWERTY/comma/dead keys)"; 256 include "latin" 257 include "hu(def_102)" 258 include "hu(def_qwerty)" 259 include "kpdl(comma)" 260 include "hu(def_dead)" 261 include "hu(def_common)" 262 include "level3(ralt_switch)" 263}; 264 265// 102_qwerty_comma_nodead 266// 102 key qwerty layout 267// with decimal comma on keypad 268// and without dead key support 269partial 270xkb_symbols "102_qwerty_comma_nodead" { 271 name[Group1] = "Hungarian (102/QWERTY/comma/no dead keys)"; 272 include "latin" 273 include "hu(def_102)" 274 include "hu(def_qwerty)" 275 include "kpdl(comma)" 276 include "hu(def_nodead)" 277 include "hu(def_common)" 278 include "level3(ralt_switch)" 279}; 280 281// 102_qwerty_dot_dead 282// 102 key qwerty layout 283// with decimal dot on keypad 284// and with dead key support 285partial 286xkb_symbols "102_qwerty_dot_dead" { 287 name[Group1] = "Hungarian (102/QWERTY/dot/dead keys)"; 288 include "latin" 289 include "hu(def_102)" 290 include "hu(def_qwerty)" 291 include "hu(def_dot)" 292 include "hu(def_dead)" 293 include "hu(def_common)" 294 include "level3(ralt_switch)" 295}; 296 297// 102_qwerty_dot_nodead 298// 102 key qwerty layout 299// with decimal dot on keypad 300// and without dead key support 301partial 302xkb_symbols "102_qwerty_dot_nodead" { 303 name[Group1] = "Hungarian (102/QWERTY/dot/no dead keys)"; 304 include "latin" 305 include "hu(def_102)" 306 include "hu(def_qwerty)" 307 include "hu(def_dot)" 308 include "hu(def_nodead)" 309 include "hu(def_common)" 310 include "level3(ralt_switch)" 311}; 312 313// Partial layouts 314 315// def_102: 316// The standard Hungarian 102 key layout 317hidden partial alphanumeric_keys 318xkb_symbols "def_102" { 319 key <TLDE> { [ 0, section, notsign ] }; 320 key <LSGT> { [ iacute, Iacute, less, greater ] }; 321 322}; 323 324// def_101: 325// An alternative layout for 101 key keyboards 326hidden partial alphanumeric_keys 327xkb_symbols "def_101" { 328 key <TLDE> { [ iacute, Iacute, 0, section ] }; 329 key <LSGT> { [ less, greater ] }; 330}; 331 332// def_qwertz: 333// The standard Hungaryan qwertz layout 334hidden partial alphanumeric_keys 335xkb_symbols "def_qwertz" { 336 key <AD06> { [ z, Z, endash ] }; 337 key <AB01> { [ y, Y, greater ] }; 338}; 339 340 341// def_qwerty: 342// The qwerty layout for people who familiar with the standard US layout 343hidden partial alphanumeric_keys 344xkb_symbols "def_qwerty" { 345 key <AD06> { [ y, Y, endash ] }; 346 key <AB01> { [ z, Z, greater ] }; 347}; 348 349// def_dot: 350// The Hungarian standard is the comma on the keypad not decimal dot, 351// but programmers hate it 352hidden partial keypad_keys 353xkb_symbols "def_dot" { 354 key <KPDL> { [ KP_Delete, KP_Decimal ] }; 355}; 356 357 358// def_dead: 359// Dead keys support part 360hidden partial alphanumeric_keys 361xkb_symbols "def_dead" { 362 key <AE01> { [ 1, apostrophe, asciitilde, dead_tilde ] }; 363 key <AE02> { [ 2, quotedbl, dead_caron, caron ] }; 364 key <AE03> { [ 3, plus, asciicircum, dead_circumflex ] }; 365 key <AE04> { [ 4, exclam, dead_breve, breve ] }; 366 key <AE05> { [ 5, percent, dead_abovering, degree ] }; 367 key <AE06> { [ 6, slash, dead_ogonek, ogonek ] }; 368 key <AE07> { [ 7, equal, grave, dead_grave ] }; 369 key <AE08> { [ 8, parenleft, dead_abovedot, abovedot ] }; 370 key <AE09> { [ 9, parenright, dead_acute, acute ] }; 371 key <AE10> { [ odiaeresis, Odiaeresis, dead_doubleacute, doubleacute ] }; 372 key <AE11> { [ udiaeresis, Udiaeresis, dead_diaeresis, diaeresis ] }; 373 key <AE12> { [ oacute, Oacute, dead_cedilla, cedilla ] }; 374}; 375 376// def_nodead: 377// Without dead keys support 378hidden partial alphanumeric_keys 379xkb_symbols "def_nodead" { 380 key <AE01> { [ 1, apostrophe, asciitilde ] }; 381 key <AE02> { [ 2, quotedbl, caron ] }; 382 key <AE03> { [ 3, plus, asciicircum ] }; 383 key <AE04> { [ 4, exclam, breve ] }; 384 key <AE05> { [ 5, percent, degree ] }; 385 key <AE06> { [ 6, slash, ogonek ] }; 386 key <AE07> { [ 7, equal, grave ] }; 387 key <AE08> { [ 8, parenleft, abovedot ] }; 388 key <AE09> { [ 9, parenright, acute ] }; 389 key <AE10> { [ odiaeresis, Odiaeresis, doubleacute ] }; 390 key <AE11> { [ udiaeresis, Udiaeresis, diaeresis ] }; 391 key <AE12> { [ oacute, Oacute, cedilla ] }; 392}; 393 394 395// def_common: 396// The common part of all Hungarian layout above 397hidden partial alphanumeric_keys 398xkb_symbols "def_common" { 399 key <AD01> { [ q, Q, backslash ] }; 400 key <AD02> { [ w, W, bar ] }; 401 key <AD03> { [ e, E, Adiaeresis ] }; 402 key <AD07> { [ u, U, EuroSign ] }; 403 key <AD08> { [ i, I, Iacute, iacute ] }; 404 key <AD09> { [ o, O, doublelowquotemark ] }; 405 key <AD10> { [ p, P, rightdoublequotemark ] }; 406 key <AD11> { [ odoubleacute, Odoubleacute, division ] }; 407 key <AD12> { [ uacute, Uacute, multiply ] }; 408 409 key <AC01> { [ a, A, adiaeresis, Adiaeresis ] }; 410 key <AC02> { [ s, S, dstroke ] }; 411 key <AC03> { [ d, D, Dstroke ] }; 412 key <AC04> { [ f, F, bracketleft ] }; 413 key <AC05> { [ g, G, bracketright ] }; 414 key <AC07> { [ j, J, iacute, Iacute ] }; 415 key <AC08> { [ k, K, lstroke ] }; 416 key <AC09> { [ l, L, Lstroke ] }; 417 key <AC10> { [ eacute, Eacute, dollar, cent ] }; 418 key <AC11> { [ aacute, Aacute, ssharp ] }; 419 420 key <BKSL> { [ udoubleacute, Udoubleacute, currency ] }; 421 422 key <AB02> { [ x, X, numbersign ] }; 423 key <AB03> { [ c, C, ampersand ] }; 424 key <AB04> { [ v, V, at ] }; 425 key <AB05> { [ b, B, braceleft ] }; 426 key <AB06> { [ n, N, braceright ] }; 427 key <AB07> { [ m, M, less ] }; 428 key <AB08> { [ comma, question, semicolon ] }; 429 key <AB09> { [ period, colon, greater ] }; 430 key <AB10> { [ minus, underscore, asterisk ] }; 431 432}; 433 434// EXTRAS: 435 436// New style XKB layout used Old Hungarian keyboard layouts 437// 438// 439// 440// (C) 2013 Andras Tisza 441// (C) 2017 Viktor Kovacs <kovacs.viktor.dev@gmail.com> 442// 443// Permission is granted to anyone to use, distribute and modify 444// this file in any way, provided that the above copyright notice 445// is left intact and the author of the modification summarizes 446// the changes in this header. 447// 448// This file is distributed without any expressed or implied warranty. 449// 450// Changes: 451// 2013 - Planned Old Hungarian layout 452// 2017 - Added Old Hungarian layout 453 454partial alphanumeric_keys 455xkb_symbols "oldhun" { 456name[Group1]="Old Hungarian"; 457include "level3(caps_switch_latch)" 458include "level3(ralt_switch)" 459key.type[Group1]="FOUR_LEVEL_SEMIALPHABETIC"; 460// In the remarks you can read characters displayed only Unicode point 461 key <AE01> {[U10CFA, apostrophe, 1, asciitilde ]}; 462//Old Hungarian one 463 464 key <AE02> {[ U10CFB, quotedbl, 2,quotedbl]}; 465//Old Hungarian five 466 467 key <AE03> {[ U10CFC, plus, 3, plus]}; 468//Old Hungarian ten 469 470 key <AE04> {[ U10CFD, exclam, 4, exclam]}; 471//Old Hungarian fifty 472 473 key <AE05> {[ U10CFE, percent, 5, percent]}; 474//Old Hungarian hundred 475 476 key <AE06> {[ U10CFF, slash, 6, slash]}; 477//Old Hungarian thousand 478 479 key <AE07> {[U10CC6, U10C86, 7, equal]}; 480//Old Hungarian cs, Cs 481 482 key <AE08> {[ U10CDA, U10C9A, 8, parenleft]}; 483//Old Hungarian ny, Ny 484 485 key <AE09> {[U10CE8, U10CA8, 9, parenright]}; 486//Old Hungarian ty, Ty 487 488 key <AE10> {[ U10CDE, U10C9E, U10CDD, U10C9D ]}; 489//Old Hungarian Rudimenta oe, Oe, Nikolsburg oe, Oe 490 491 key <AE11> {[U10CED, U10CAD ]}; 492//Old Hungarian ue , Ue 493 494 key <AE12> {[U10CDC, U10C9C ]}; 495//Old Hungarian oo, OO 496 497 key <AD01> {[U10CCE, U10C8E, backslash ]}; 498//Old-Hungarian gy, Gy 499 500 key <AD02> {[U10CF0, U10CB0 ]}; 501//Old Hungarian zs, Zs 502 503 key <AD03> {[U10CC9, U10C89, U10CCA, U10C8A ]}; 504 //Old Hungarian e, E, close e, close E 505 506 key <AD04> {[U10CE2, U10CA2, U10CE3, U10CA3 ]}; 507//Old Hungarian r, R, short r, short R 508 509 key <AD05> {[ U10CE6, U10CA6, U10CF1, U10CB1 ]}; 510//Old Hungarian t, T, ent-sharped sign,Ent-sharped sign 511 512 key <AD06> {[U10CEF, U10CAF ]}; 513//Old Hungarian z, Z 514 515 key <AD07> {[U10CEA, U10CAA, U10CF2, U10CB2 ]}; 516//Old Hungarian u, U, Old Hungarian us, Us 517 518 key <AD08> {[U10CD0, U10C90 ]}; 519//Old Hungarian i, I 520 521 key <AD09> {[U10CDB, U10C9B ]}; 522//Old Hungarian o, O 523 524 key <AD10> {[U10CE0, U10CA0 ]}; 525//Old Hungarian p, P 526 527 key <AD11> {[U10CDF, U10C9F ]}; 528//Old Hungarian oee, Oee 529 530 key <AD12> {[ U10CEB, U10CAB, U10CD5, U10C95]}; 531//Old Hungarian uu,Uu,unk,Unk 532 533 key <AC01> {[ U10CC0 , U10C80, U10CC3, U10C83 ]}; 534//Old Hungarian a,A,amb,Amb 535 536 key <AC02> {[U10CE4, U10CA4, U10CE1, U10CA1 ]}; 537//Old Hungarian s,S,emp,Emp 538 539 key <AC03> {[ U10CC7, U10C87, U10CE7, U10CA7 ]}; 540//Old Hungarian d,D, ent/ant/int, Ent/Ant/Int 541 542 key <AC04> {[U10CCC, U10C8C, U10CE9, U10CA9]}; 543//Old Hungarian f,F ech, Ech 544 545 key <AC05> {[ U10CCD, U10C8D, bracketleft ]}; 546//Old Hungarian g, G 547 548 key <AC06> {[ U10CCF, U10C8F, bracketright ]}; 549//Old Hungarian h, H 550 551 552 key <AC07> {[ U10CD2, U10C92, backslash ]}; 553//Old Hungarian j, J 554 555 key <AC08> {[U10CD3, U10C93, U10CD4, U10C94 ]}; 556//Old Hungarian open k, open K, close k, close K 557 558 key <AC09> {[U10CD6, U10C96 ]}; 559//Old Hungarian l, L 560 561 key <AC10> {[U10CCB, U10C8B ]}; 562//Old Hungarian ee, EE 563 564 key <AC11> {[U10CC1, U10C81 , U10CC8, U10C88]}; 565//Old Hungarian aa, AA, and And 566 567 568 key <BKSL> {[U10CEC, U10CAC ]}; 569//Old Hungarian ue, Ue 570 571 key <AB01> {[ U10CD7, U10C97, greater ]}; 572//Old Hungarian ly, Ly 573 574 key <AB02> {[ U10CE5, U10CA5, numbersign ]}; 575//Old Hungarian sz, Sz 576 577 key <AB03> {[ U10CC4, U10C84, U10CC5, U10C85 ]}; 578//Old Hungarian c,C, enc, Enc 579 580 key <AB04> {[U10CEE, U10CAE, at ]}; 581//Old Hungarian v,V 582 583 key <AB05> {[U10CC2, U10C82, braceleft ]}; 584//Old Hungarian b, B 585 586 key <AB06> { [ U10CD9, U10C99 , braceright ]}; 587//Old Hungarian n, N 588 589 key <AB07> {[ U10CD8, U10C98 , less ]}; 590//Old Hungarian m, M 591 592 key <AB08> {[U2E41, U2E2E, U204F ]}; 593//reserved question mark,reserved semicolon, reserved comma 594 595 key <AB09> {[period, colon, greater ]}; 596 597 key <AB10> {[minus, underscore, asterisk ]}; 598 599 key <LSGT> {[U10CD1, U10C91, less ]}; 600//Old Hungarian ii,II 601 602 key <TLDE> {[ section, U200F, 0, U200E]}; 603//Right to left mark, left to right mark 604 605 }; 606