1// 2// khmer unicode keyboard for XFree86 4.3 or XOrg 3// (might work with older versions, not tested) 4// 5// layout defined by National Information Communications Technology Development Authority (NiDA) 6// http://www.nida.gov.kh 7// 8// version: 1.0.1 9// 10// date: 14.09.2005 11// 12// author: Jens Herden (jens at khmeros.info) 13// 14// 15// understanding the symbols: 16// 17// 0x100yyyy = unicode, yyyy is hexcode 18// codes that are not assigned in unicode (0x10017fb-0x10017ff), 19// are used to make compositions for special vowels 20// 21// voidsymbol = no symbol for this combination 22// 23// all other symbol are defined in: /usr/X11/include/X11/keysymdef.h 24// but with a leading 'XK_' 25// 26 27default partial alphanumeric_keys 28xkb_symbols "basic" { 29 name[Group1]= "Khmer (Cambodia)"; 30 31// there are four levels defined: 32// 33// normal shift right-alt right-alt + shift 34// 35 36// keys: `1234567890-=\ 37 key <TLDE> { [ guillemotleft, guillemotright, 0x100200d, voidsymbol ] }; 38 key <AE01> { [ 0x10017e1, exclam, 0x100200c, 0x10017f1 ] }; 39 key <AE02> { [ 0x10017e2, 0x10017d7, at, 0x10017f2 ] }; 40 key <AE03> { [ 0x10017e3, quotedbl, 0x10017d1, 0x10017f3 ] }; 41 key <AE04> { [ 0x10017e4, 0x10017db, dollar, 0x10017f4 ] }; 42 key <AE05> { [ 0x10017e5, percent, EuroSign, 0x10017f5 ] }; 43 key <AE06> { [ 0x10017e6, 0x10017cd, 0x10017d9, 0x10017f6 ] }; 44 key <AE07> { [ 0x10017e7, 0x10017d0, 0x10017da, 0x10017f7 ] }; 45 key <AE08> { [ 0x10017e8, 0x10017cf, asterisk, 0x10017f8 ] }; 46 key <AE09> { [ 0x10017e9, parenleft, braceleft, 0x10017f9 ] }; 47 key <AE10> { [ 0x10017e0, parenright, braceright, 0x10017f0 ] }; 48 key <AE11> { [ 0x10017a5, 0x10017cc, x, voidsymbol ] }; 49 key <AE12> { [ 0x10017b2, equal, 0x10017ce, voidsymbol ] }; 50 key <BKSL> { [ 0x10017ae, 0x10017ad, backslash, voidsymbol ] }; 51 52// keys: qwertyuiop[] 53 key <AD01> { [ 0x1001786, 0x1001788, 0x10017dc, 0x10019e0 ] }; 54 key <AD02> { [ 0x10017b9, 0x10017ba, 0x10017dd, 0x10019e1 ] }; 55 key <AD03> { [ 0x10017c1, 0x10017c2, 0x10017af, 0x10019e2 ] }; 56 key <AD04> { [ 0x100179a, 0x10017ac, 0x10017ab, 0x10019e3 ] }; 57 key <AD05> { [ 0x100178f, 0x1001791, 0x10017a8, 0x10019e4 ] }; 58 key <AD06> { [ 0x1001799, 0x10017bd, voidsymbol, 0x10019e5 ] }; 59 key <AD07> { [ 0x10017bb, 0x10017bc, voidsymbol, 0x10019e6 ] }; 60 key <AD08> { [ 0x10017b7, 0x10017b8, 0x10017a6, 0x10019e7 ] }; 61 key <AD09> { [ 0x10017c4, 0x10017c5, 0x10017b1, 0x10019e8 ] }; 62 key <AD10> { [ 0x1001795, 0x1001797, 0x10017b0, 0x10019e9 ] }; 63 key <AD11> { [ 0x10017c0, 0x10017bf, 0x10017a9, 0x10019ea ] }; 64 key <AD12> { [ 0x10017aa, 0x10017a7, 0x10017b3, 0x10019eb ] }; 65 66// keys: asdfghjkl;' 67 key <AC01> { [ 0x10017b6, 0x10017ff, voidsymbol, 0x10019ec ] }; 68 key <AC02> { [ 0x100179f, 0x10017c3, voidsymbol, 0x10019ed ] }; 69 key <AC03> { [ 0x100178a, 0x100178c, voidsymbol, 0x10019ee ] }; 70 key <AC04> { [ 0x1001790, 0x1001792, voidsymbol, 0x10019ef ] }; 71 key <AC05> { [ 0x1001784, 0x10017a2, voidsymbol, 0x10019f0 ] }; 72 key <AC06> { [ 0x10017a0, 0x10017c7, voidsymbol, 0x10019f1 ] }; 73 key <AC07> { [ 0x10017d2, 0x1001789, voidsymbol, 0x10019f2 ] }; 74 key <AC08> { [ 0x1001780, 0x1001782, 0x100179d, 0x10019f3 ] }; 75 key <AC09> { [ 0x100179b, 0x10017a1, voidsymbol, 0x10019f4 ] }; 76 key <AC10> { [ 0x10017be, 0x10017fe, 0x10017d6, 0x10019f5 ] }; 77 key <AC11> { [ 0x10017cb, 0x10017c9, 0x10017c8, 0x10019f6 ] }; 78 79// keys: zxcvbnm,./ 80 key <AB01> { [ 0x100178b, 0x100178d, voidsymbol, 0x10019f7 ] }; 81 key <AB02> { [ 0x1001781, 0x1001783, voidsymbol, 0x10019f8 ] }; 82 key <AB03> { [ 0x1001785, 0x1001787, voidsymbol, 0x10019f9 ] }; 83 key <AB04> { [ 0x100179c, 0x10017fd, voidsymbol, 0x10019fa ] }; 84 key <AB05> { [ 0x1001794, 0x1001796, 0x100179e, 0x10019fb ] }; 85 key <AB06> { [ 0x1001793, 0x100178e, voidsymbol, 0x10019fc ] }; 86 key <AB07> { [ 0x1001798, 0x10017c6, voidsymbol, 0x10019fd ] }; 87 key <AB08> { [ 0x10017fc, 0x10017fb, comma, 0x10019fe ] }; 88 key <AB09> { [ 0x10017d4, 0x10017d5, period, 0x10019ff ] }; 89 key <AB10> { [ 0x10017ca, question, slash, voidsymbol ] }; 90 91 key <SPCE> { [ 0x100200b, space, 0x10000a0, voidsymbol ] }; 92 key <RALT> { [ Alt_R ] }; 93 94// third level with right-Alt 95 include "level3(ralt_switch)" 96}; 97 98partial alphanumeric_keys 99xkb_symbols "olpc" { 100 include "kh(basic)" 101 102// Contact Walter@laptop.org 103 104 key <AC10> { [ 0x10017be, 0x10017c8, 0x10017d6, 0x10019f5 ] }; 105 key <AE01> { [ 0x10017e1, 0x100200c, exclam, 0x10017f1 ] }; 106 key <AE03> { [ 0x10017e3, 0x10017d1, quotedbl, 0x10017f3 ] }; 107 key <AE05> { [ 0x10017e5, EuroSign, percent, 0x10017f5 ] }; 108 key <AE12> { [ 0x10017b2, 0x10017ce, equal, voidsymbol ] }; 109 110 //language key 111 include "group(olpc)" 112}; 113