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