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