1// Copyright (c) 2010, 2012, Oracle and/or its affiliates. All rights reserved.
2//
3//Copyright 1996, 1998  The Open Group
4//
5//Permission to use, copy, modify, distribute, and sell this software and its
6//documentation for any purpose is hereby granted without fee, provided that
7//the above copyright notice appear in all copies and that both that
8//copyright notice and this permission notice appear in supporting
9//documentation.
10//
11//The above copyright notice and this permission notice shall be
12//included in all copies or substantial portions of the Software.
13//
14//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
18//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20//OTHER DEALINGS IN THE SOFTWARE.
21//
22//Except as contained in this notice, the name of The Open Group shall
23//not be used in advertising or otherwise to promote the sale, use or
24//other dealings in this Software without prior written authorization
25//from The Open Group.
26//
27
28xkb_keycodes "type6" {
29
30    minimum= 8;
31    maximum= 132;
32
33    <ESC>  = 36;
34    <AE01> = 37;
35    <AE02> = 38;
36    <AE03> = 39;
37    <AE04> = 40;
38    <AE05> = 41;
39    <AE06> = 42;
40    <AE07> = 43;
41    <AE08> = 44;
42    <AE09> = 45;
43    <AE10> = 46;
44    <AE11> = 47;
45    <AE12> = 48;
46    <TLDE> = 49;
47    <BKSP> = 50;
48
49    <TAB>  = 60;
50    <AD01> = 61;
51    <AD02> = 62;
52    <AD03> = 63;
53    <AD04> = 64;
54    <AD05> = 65;
55    <AD06> = 66;
56    <AD07> = 67;
57    <AD08> = 68;
58    <AD09> = 69;
59    <AD10> = 70;
60    <AD11> = 71;
61    <AD12> = 72;
62    <DELE> = 73;
63    <COMP> = 74;
64    <ALGR> = 20;
65    alias <RALT> = <ALGR>;
66
67    <LCTL> = 83;
68    <AC01> = 84;
69    <AC02> = 85;
70    <AC03> = 86;
71    <AC04> = 87;
72    <AC05> = 88;
73    <AC06> = 89;
74    <AC07> = 90;
75    <AC08> = 91;
76    <AC09> = 92;
77    <AC10> = 93;
78    <AC11> = 94;
79    <BKSL> = 95;
80    <RTRN> = 96;
81
82    <LFSH> = 106;
83    <AB01> = 107;
84    <AB02> = 108;
85    <AB03> = 109;
86    <AB04> = 110;
87    <AB05> = 111;
88    <AB06> = 112;
89    <AB07> = 113;
90    <AB08> = 114;
91    <AB09> = 115;
92    <AB10> = 116;
93    <RTSH> = 117;
94
95    <LALT> = 26;
96    <CAPS> = 126;
97    <LMTA> = 127;
98    <SPCE> = 128;
99    <RMTA> = 129;
100
101    <FK01> = 12;
102    <FK02> = 13;
103    <FK03> = 15;
104    <FK04> = 17;
105    <FK05> = 19;
106    <FK06> = 21;
107    <FK07> = 23;
108    <FK08> = 24;
109    <FK09> = 25;
110    <FK10> = 14;
111    <FK11> = 16;
112    <FK12> = 18;
113    <STOP> = 8;
114    <AGAI> = 10;
115    <PROP> = 32;
116    <UNDO> = 33;
117    <FRNT> = 56;
118    <COPY> = 58;
119    <OPEN> = 79;
120    <PAST> = 80;
121    <FIND> = 102;
122    <CUT>  = 104;
123
124    <PRSC> = 29;
125    <SCLK> = 30;
126    <PAUS> = 28;
127
128    <NMLK> = 105;
129    <KPDV> = 53;
130    <KPMU> = 54;
131    <KPSU> = 78;
132
133    <KP7>  = 75;
134    <KP8>  = 76;
135    <KP9>  = 77;
136    <KPAD> = 132;
137
138    <KP4>  = 98;
139    <KP5>  = 99;
140    <KP6>  = 100;
141
142    <KP1>  = 119;
143    <KP2>  = 120;
144    <KP3>  = 121;
145    <KPEN> = 97;
146
147    <KP0>  = 101;
148    <KPDL> = 57;
149
150    <UP>   = 27;
151    <LEFT> = 31;
152    <DOWN> = 34;
153    <RGHT> = 35;
154
155    <INS>  = 51;
156    <HOME> = 59;
157    <END>  = 81;
158    <PGUP> = 103;
159    <PGDN> = 130;
160    <HELP> = 125;
161
162    <MUTE> = 52;
163    <VOL-> = 9;
164    <VOL+> = 11;
165    <POWR> = 55;
166    indicator 4 = "Caps Lock";
167    indicator 3 = "Compose";
168    indicator 2 = "Scroll Lock";
169    indicator 1 = "Num Lock";
170};
171
172
173xkb_keycodes "type6tuv" {
174    include "sun(type6)"
175    <LSGT> = 131;
176};
177
178xkb_keycodes "type6_jp" {
179    include "sun(type6)"
180    <EXEC> = 122;
181    <KANJ> = 123;
182    <HENK> = 124;
183    <UNDR> = 118;
184};
185
186xkb_keycodes "type6_euro" {
187    include "sun(type6)"
188    <LSGT> = 131;
189};
190
191xkb_keycodes "type6unix" {
192    include "sun(type6)"
193};
194
195// Even though this is labeled as _usb, I verified these keycodes as accurate
196// on my type5 serial and type6 serial keyboards as well on linux-2.6 boxes.
197// I'm not sure where the "type6" keycodes above are coming from...
198default xkb_keycodes "type6_usb" {
199    include "xfree86"
200
201//    <STOP> = 232;
202//    <AGAI> = 133;
203//    <PROP> = 134;
204//    <UNDO> = 135;
205//    <FRNT> = 140;
206//    <COPY> = 248;
207//    <OPEN> = 191;
208//    <PAST> = 192;
209//    <FIND> = 122;
210//    <CUT>  = 188;
211
212 //   <HELP> = 245;
213
214    // The blank has keycode 239 on my type6 serial kb, but 134 on
215    // my type6 usb keyboard (same as <PROP>)
216//    <BLNK> = 239;
217
218    // AltGr + PrScr actually sends a different keycode
219//    <SYRQ> = 92;
220
221//    <MUTE> = 160;
222//    <VOL-> = 174;
223//    <VOL+> = 176;
224//    <POWR> = 222;
225
226      <I150> = 155;
227      <I160> = 160;
228      <I235> = 235;
229
230    indicator 4 = "Compose";
231};
232
233xkb_keycodes "type6tuv_usb" {
234    include "sun(type6_usb)"
235//    <LSGT> = 94;
236//    <BKSL> = 51;
237};
238
239xkb_keycodes "type6_jp_usb" {
240    include "sun(type6_usb)"
241    alias <UNDR> = <KPDC>;  // 123
242    alias <EXEC> = <NFER>;  // 131
243    alias <KANJ> = <XFER>;  // 129
244    alias <HENK> = <HKTG>;  // 208
245    indicator 5 = "Kana";
246};
247