mr_schyte

Hungarian Colemak

Mar 6th, 2012
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.00 KB | None | 0 0
  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 <[email protected]>
  6. // (C) 2010 Andras Timar <[email protected]>
  7. // (C) 2012 Kasza Péter <[email protected]>
  8. //
  9. // Permission is granted to anyone to use, distribute and modify
  10. // this file in any way, provided that the above copyright notice
  11. // is left intact and the author of the modification summarizes
  12. // the changes in this header.
  13. //
  14. // This file is distributed without any expressed or implied warranty.
  15. //
  16. // Changes:
  17. // 2004-04-17 - Moved to new style (only Unicode based layouts)
  18. // - Added consistent dead key support
  19. // - Fixed abovedot
  20. // - Added adiaeresis
  21. // - Added EuroSign and cent symbol
  22. // 2010-04-23 - Added doublelowquotemark
  23. // - Added rightdoublequotemark
  24. // - Added endash
  25. // 2010-05-13 - Added ellipsis
  26. // 2012-03-09 - Added hungarian colemak variants
  27.  
  28.  
  29. // Default layout
  30. default partial
  31. xkb_symbols "basic" {
  32. include "hu(102_qwertz_comma_dead)"
  33. name[Group1] = "Hungarian";
  34. };
  35.  
  36. // Default layout with colemak keys
  37. partial
  38. xkb_symbols "basic_colemak" {
  39. include "hu(102_qwertz_comma_dead)"
  40. include "hu(colemak)"
  41. name[Group1] = "Hungarian Colemak";
  42. };
  43.  
  44.  
  45. // Standard layout
  46. partial
  47. xkb_symbols "standard" {
  48. include "hu(102_qwertz_comma_dead)"
  49. name[Group1] = "Hungarian (standard)";
  50. };
  51.  
  52. // Standard layout with colemak keys
  53. partial
  54. xkb_symbols "standard_colemak" {
  55. include "hu(102_qwertz_comma_dead)"
  56. include "hu(colemak)"
  57. name[Group1] = "Hungarian Colemak (standard)";
  58. };
  59.  
  60. // Standard layout without dead key support
  61. partial
  62. xkb_symbols "nodeadkeys" {
  63. include "hu(102_qwertz_comma_nodead)"
  64. name[Group1] = "Hungarian (eliminate dead keys)";
  65. };
  66.  
  67. // Standard layout without dead key support with colemak keys
  68. partial
  69. xkb_symbols "nodeadkeys" {
  70. include "hu(102_qwertz_comma_nodead)"
  71. include "hu(colemak)"
  72. name[Group1] = "Hungarian Colemak (eliminate dead keys)";
  73. };
  74.  
  75. // Qwerty layout
  76. partial
  77. xkb_symbols "qwerty" {
  78. include "hu(101_qwerty_comma_dead)"
  79. name[Group1] = "Hungarian (qwerty)";
  80. };
  81.  
  82. // Main layouts
  83.  
  84. // 101_qwertz_comma_dead
  85. // 101 key qwertz layout
  86. // with decimal comma on keypad
  87. // and with dead key support
  88. partial
  89. xkb_symbols "101_qwertz_comma_dead" {
  90. name[Group1] = "Hungarian (101/qwertz/comma/dead keys)";
  91. include "latin"
  92. include "hu(def_101)"
  93. include "hu(def_qwertz)"
  94. include "kpdl(comma)"
  95. include "hu(def_dead)"
  96. include "hu(def_common)"
  97. include "level3(ralt_switch)"
  98. };
  99.  
  100. // 101_qwertz_comma_nodead
  101. // 101 key qwertz layout
  102. // with decimal comma on keypad
  103. // and without dead key support
  104. partial
  105. xkb_symbols "101_qwertz_comma_nodead" {
  106. name[Group1] = "Hungarian (101/qwertz/comma/eliminate dead keys)";
  107. include "latin"
  108. include "hu(def_101)"
  109. include "hu(def_qwertz)"
  110. include "kpdl(comma)"
  111. include "hu(def_nodead)"
  112. include "hu(def_common)"
  113. include "level3(ralt_switch)"
  114. };
  115.  
  116. // 101_qwertz_dot_dead
  117. // 101 key qwertz layout
  118. // with decimal dot on keypad
  119. // and with dead key support
  120. partial
  121. xkb_symbols "101_qwertz_dot_dead" {
  122. name[Group1] = "Hungarian (101/qwertz/dot/dead keys)";
  123. include "latin"
  124. include "hu(def_101)"
  125. include "hu(def_qwertz)"
  126. include "hu(def_dot)"
  127. include "hu(def_dead)"
  128. include "hu(def_common)"
  129. include "level3(ralt_switch)"
  130. };
  131.  
  132. // 101_qwertz_dot_nodead
  133. // 101 key qwertz layout
  134. // with decimal dot on keypad
  135. // and without dead key support
  136. partial
  137. xkb_symbols "101_qwertz_dot_nodead" {
  138. name[Group1] = "Hungarian (101/qwertz/dot/eliminate dead keys)";
  139. include "latin"
  140. include "hu(def_101)"
  141. include "hu(def_qwertz)"
  142. include "hu(def_dot)"
  143. include "hu(def_nodead)"
  144. include "hu(def_common)"
  145. include "level3(ralt_switch)"
  146. };
  147.  
  148. // 101_qwerty_comma_dead
  149. // 101 key qwerty layout
  150. // with decimal comma on keypad
  151. // and with dead key support
  152. partial
  153. xkb_symbols "101_qwerty_comma_dead" {
  154. name[Group1] = "Hungarian (101/qwerty/comma/dead keys)";
  155. include "latin"
  156. include "hu(def_101)"
  157. include "hu(def_qwerty)"
  158. include "kpdl(comma)"
  159. include "hu(def_dead)"
  160. include "hu(def_common)"
  161. include "level3(ralt_switch)"
  162. };
  163.  
  164. // 101_qwerty_comma_nodead
  165. // 101 key qwerty layout
  166. // with decimal comma on keypad
  167. // and without dead key support
  168. partial
  169. xkb_symbols "101_qwerty_comma_nodead" {
  170. name[Group1] = "Hungarian (101/qwerty/comma/eliminate dead keys)";
  171. include "latin"
  172. include "hu(def_101)"
  173. include "hu(def_qwerty)"
  174. include "kpdl(comma)"
  175. include "hu(def_nodead)"
  176. include "hu(def_common)"
  177. include "level3(ralt_switch)"
  178. };
  179.  
  180. // 101_qwerty_dot_dead
  181. // 101 key qwerty layout
  182. // with decimal dot on keypad
  183. // and with dead key support
  184. partial
  185. xkb_symbols "101_qwerty_dot_dead" {
  186. name[Group1] = "Hungarian (101/qwerty/dot/dead keys)";
  187. include "latin"
  188. include "hu(def_101)"
  189. include "hu(def_qwerty)"
  190. include "hu(def_dot)"
  191. include "hu(def_dead)"
  192. include "hu(def_common)"
  193. include "level3(ralt_switch)"
  194. };
  195.  
  196. // 101_qwerty_dot_nodead
  197. // 101 key qwerty layout
  198. // with decimal dot on keypad
  199. // and without dead key support
  200. partial
  201. xkb_symbols "101_qwerty_dot_nodead" {
  202. name[Group1] = "Hungarian (101/qwerty/dot/eliminate dead keys)";
  203. include "latin"
  204. include "hu(def_101)"
  205. include "hu(def_qwerty)"
  206. include "hu(def_dot)"
  207. include "hu(def_nodead)"
  208. include "hu(def_common)"
  209. include "level3(ralt_switch)"
  210. };
  211.  
  212. // 102_qwertz_comma_dead
  213. // 102 key qwertz layout
  214. // with decimal comma on keypad
  215. // and with dead key support
  216. partial
  217. xkb_symbols "102_qwertz_comma_dead" {
  218. name[Group1] = "Hungarian (102/qwertz/comma/dead keys)";
  219. include "latin"
  220. include "hu(def_102)"
  221. include "hu(def_qwertz)"
  222. include "kpdl(comma)"
  223. include "hu(def_dead)"
  224. include "hu(def_common)"
  225. include "level3(ralt_switch)"
  226. };
  227.  
  228. // 102_qwertz_comma_nodead
  229. // 102 key qwertz layout
  230. // with decimal comma on keypad
  231. // and without dead key support
  232. partial
  233. xkb_symbols "102_qwertz_comma_nodead" {
  234. name[Group1] = "Hungarian (102/qwertz/comma/eliminate dead keys)";
  235. include "latin"
  236. include "hu(def_102)"
  237. include "hu(def_qwertz)"
  238. include "kpdl(comma)"
  239. include "hu(def_nodead)"
  240. include "hu(def_common)"
  241. include "level3(ralt_switch)"
  242. };
  243.  
  244. // 102_qwertz_dot_dead
  245. // 102 key qwertz layout
  246. // with decimal dot on keypad
  247. // and with dead key support
  248. partial
  249. xkb_symbols "102_qwertz_dot_dead" {
  250. name[Group1] = "Hungarian (102/qwertz/dot/dead keys)";
  251. include "latin"
  252. include "hu(def_102)"
  253. include "hu(def_qwertz)"
  254. include "hu(def_dot)"
  255. include "hu(def_dead)"
  256. include "hu(def_common)"
  257. include "level3(ralt_switch)"
  258. };
  259.  
  260. // 102_qwertz_dot_nodead
  261. // 102 key qwertz layout
  262. // with decimal dot on keypad
  263. // and without dead key support
  264. partial
  265. xkb_symbols "102_qwertz_dot_nodead" {
  266. name[Group1] = "Hungarian (102/qwertz/dot/eliminate dead keys)";
  267. include "latin"
  268. include "hu(def_102)"
  269. include "hu(def_qwertz)"
  270. include "hu(def_dot)"
  271. include "hu(def_nodead)"
  272. include "hu(def_common)"
  273. include "level3(ralt_switch)"
  274. };
  275.  
  276. // 102_qwerty_comma_dead
  277. // 102 key qwerty layout
  278. // with decimal comma on keypad
  279. // and with dead key support
  280. partial
  281. xkb_symbols "102_qwerty_comma_dead" {
  282. name[Group1] = "Hungarian (102/qwerty/comma/dead keys)";
  283. include "latin"
  284. include "hu(def_102)"
  285. include "hu(def_qwerty)"
  286. include "kpdl(comma)"
  287. include "hu(def_dead)"
  288. include "hu(def_common)"
  289. include "level3(ralt_switch)"
  290. };
  291.  
  292. // 102_qwerty_comma_nodead
  293. // 102 key qwerty layout
  294. // with decimal comma on keypad
  295. // and without dead key support
  296. partial
  297. xkb_symbols "102_qwerty_comma_nodead" {
  298. name[Group1] = "Hungarian (102/qwerty/comma/eliminate dead keys)";
  299. include "latin"
  300. include "hu(def_102)"
  301. include "hu(def_qwerty)"
  302. include "kpdl(comma)"
  303. include "hu(def_nodead)"
  304. include "hu(def_common)"
  305. include "level3(ralt_switch)"
  306. };
  307.  
  308. // 102_qwerty_dot_dead
  309. // 102 key qwerty layout
  310. // with decimal dot on keypad
  311. // and with dead key support
  312. partial
  313. xkb_symbols "102_qwerty_dot_dead" {
  314. name[Group1] = "Hungarian (102/qwerty/dot/dead keys)";
  315. include "latin"
  316. include "hu(def_102)"
  317. include "hu(def_qwerty)"
  318. include "hu(def_dot)"
  319. include "hu(def_dead)"
  320. include "hu(def_common)"
  321. include "level3(ralt_switch)"
  322. };
  323.  
  324. // 102_qwerty_dot_nodead
  325. // 102 key qwerty layout
  326. // with decimal dot on keypad
  327. // and without dead key support
  328. partial
  329. xkb_symbols "102_qwerty_dot_nodead" {
  330. name[Group1] = "Hungarian (102/qwerty/dot/eliminate dead keys)";
  331. include "latin"
  332. include "hu(def_102)"
  333. include "hu(def_qwerty)"
  334. include "hu(def_dot)"
  335. include "hu(def_nodead)"
  336. include "hu(def_common)"
  337. include "level3(ralt_switch)"
  338. };
  339.  
  340. // Partial layouts
  341.  
  342. // def_102:
  343. // The standard Hungarian 102 key layout
  344. hidden partial alphanumeric_keys
  345. xkb_symbols "def_102" {
  346. key <TLDE> { [ 0, section, notsign ] };
  347. key <LSGT> { [ iacute, Iacute, less, greater ] };
  348.  
  349. };
  350.  
  351. // def_101:
  352. // An alternative layout for 101 key keyboards
  353. hidden partial alphanumeric_keys
  354. xkb_symbols "def_101" {
  355. key <TLDE> { [ iacute, Iacute, 0, section ] };
  356. key <LSGT> { [ less, greater ] };
  357. };
  358.  
  359. // def_qwertz:
  360. // The standard Hungaryan qwertz layout
  361. hidden partial alphanumeric_keys
  362. xkb_symbols "def_qwertz" {
  363. key <AD06> { [ z, Z, endash ] };
  364. key <AB01> { [ y, Y, greater ] };
  365. };
  366.  
  367.  
  368. // def_qwerty:
  369. // The qwerty layout for people who familiar with the standard US layout
  370. hidden partial alphanumeric_keys
  371. xkb_symbols "def_qwerty" {
  372. key <AD06> { [ y, Y, endash ] };
  373. key <AB01> { [ z, Z, greater ] };
  374. };
  375.  
  376. // def_dot:
  377. // The Hungarian standard is the comma on the keypad not decimal dot,
  378. // but programmers hate it
  379. hidden partial keypad_keys
  380. xkb_symbols "def_dot" {
  381. key <KPDL> { [ KP_Delete, KP_Decimal ] };
  382. };
  383.  
  384.  
  385. // def_dead:
  386. // Dead keys support part
  387. hidden partial alphanumeric_keys
  388. xkb_symbols "def_dead" {
  389. key <AE01> { [ 1, apostrophe, asciitilde, dead_tilde ] };
  390. key <AE02> { [ 2, quotedbl, dead_caron, caron ] };
  391. key <AE03> { [ 3, plus, asciicircum, dead_circumflex ] };
  392. key <AE04> { [ 4, exclam, dead_breve, breve ] };
  393. key <AE05> { [ 5, percent, dead_abovering, degree ] };
  394. key <AE06> { [ 6, slash, dead_ogonek, ogonek ] };
  395. key <AE07> { [ 7, equal, grave, dead_grave ] };
  396. key <AE08> { [ 8, parenleft, dead_abovedot, abovedot ] };
  397. key <AE09> { [ 9, parenright, dead_acute, acute ] };
  398. key <AE10> { [ odiaeresis, Odiaeresis, dead_doubleacute, doubleacute ] };
  399. key <AE11> { [ udiaeresis, Udiaeresis, dead_diaeresis, diaeresis ] };
  400. key <AE12> { [ oacute, Oacute, dead_cedilla, cedilla ] };
  401. };
  402.  
  403. // def_nodead:
  404. // Without dead keys support
  405. hidden partial alphanumeric_keys
  406. xkb_symbols "def_nodead" {
  407. key <AE01> { [ 1, apostrophe, asciitilde ] };
  408. key <AE02> { [ 2, quotedbl, caron ] };
  409. key <AE03> { [ 3, plus, asciicircum ] };
  410. key <AE04> { [ 4, exclam, breve ] };
  411. key <AE05> { [ 5, percent, degree ] };
  412. key <AE06> { [ 6, slash, ogonek ] };
  413. key <AE07> { [ 7, equal, grave ] };
  414. key <AE08> { [ 8, parenleft, abovedot ] };
  415. key <AE09> { [ 9, parenright, acute ] };
  416. key <AE10> { [ odiaeresis, Odiaeresis, doubleacute ] };
  417. key <AE11> { [ udiaeresis, Udiaeresis, diaeresis ] };
  418. key <AE12> { [ oacute, Oacute, cedilla ] };
  419. };
  420.  
  421.  
  422. // def_common:
  423. // The common part of all Hungarian layout above
  424. hidden partial alphanumeric_keys
  425. xkb_symbols "def_common" {
  426. key <AD01> { [ q, Q, backslash ] };
  427. key <AD02> { [ w, W, bar ] };
  428. key <AD07> { [ u, U, EuroSign ] };
  429. key <AD08> { [ i, I, Iacute, iacute ] };
  430. key <AD09> { [ o, O, doublelowquotemark ] };
  431. key <AD10> { [ p, P, rightdoublequotemark ] };
  432. key <AD11> { [ odoubleacute, Odoubleacute, division ] };
  433. key <AD12> { [ uacute, Uacute, multiply ] };
  434.  
  435. key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
  436. key <AC02> { [ s, S, dstroke ] };
  437. key <AC03> { [ d, D, Dstroke ] };
  438. key <AC04> { [ f, F, bracketleft ] };
  439. key <AC05> { [ g, G, bracketright ] };
  440. key <AC07> { [ j, J, iacute, Iacute ] };
  441. key <AC08> { [ k, K, lstroke ] };
  442. key <AC09> { [ l, L, Lstroke ] };
  443. key <AC10> { [ eacute, Eacute, dollar, cent ] };
  444. key <AC11> { [ aacute, Aacute, ssharp ] };
  445.  
  446. key <BKSL> { [ udoubleacute, Udoubleacute, currency ] };
  447.  
  448. key <AB02> { [ x, X, numbersign ] };
  449. key <AB03> { [ c, C, ampersand ] };
  450. key <AB04> { [ v, V, at ] };
  451. key <AB05> { [ b, B, braceleft ] };
  452. key <AB06> { [ n, N, braceright ] };
  453. key <AB07> { [ m, M, less ] };
  454. key <AB08> { [ comma, question, semicolon ] };
  455. key <AB09> { [ period, colon, greater ] };
  456. key <AB10> { [ minus, underscore, asterisk ] };
  457.  
  458. };
  459.  
  460. // Hungarian colemak variant
  461. hidden partial alphanumeric_keys
  462. xkb_symbols "colemak" {
  463.  
  464. // Alphanumeric section
  465. key <AD01> { [ q, Q ] };
  466. key <AD02> { [ w, W ] };
  467. key <AD03> { [ f, F ] };
  468. key <AD04> { [ p, P ] };
  469. key <AD05> { [ g, G ] };
  470. key <AD06> { [ j, J ] };
  471. key <AD07> { [ l, L ] };
  472. key <AD08> { [ u, U ] };
  473. key <AD09> { [ y, Y ] };
  474. key <AD10> { [ eacute, Eacute ] };
  475.  
  476. key <AC01> { [ a, A ] };
  477. key <AC02> { [ r, R ] };
  478. key <AC03> { [ s, S ] };
  479. key <AC04> { [ t, T ] };
  480. key <AC05> { [ d, D ] };
  481. key <AC06> { [ h, H ] };
  482. key <AC07> { [ n, N ] };
  483. key <AC08> { [ e, E ] };
  484. key <AC09> { [ i, I ] };
  485. key <AC10> { [ o, O ] };
  486.  
  487. key <AB01> { [ z, Z ] };
  488. key <AB02> { [ x, X ] };
  489. key <AB03> { [ c, C ] };
  490. key <AB04> { [ v, V ] };
  491. key <AB05> { [ b, B ] };
  492. key <AB06> { [ k, K ] };
  493. key <AB07> { [ m, M ] };
  494.  
  495. key <CAPS> { [ BackSpace, BackSpace, BackSpace, BackSpace ] };
  496. };
Advertisement
Add Comment
Please, Sign In to add comment