3 // Copyright 2004 Sun Microsystems, Inc. All rights reserved.
5 // Permission is hereby granted, free of charge, to any person obtaining a
6 // copy of this software and associated documentation files (the
7 // "Software"), to deal in the Software without restriction, including
8 // without limitation the rights to use, copy, modify, merge, publish,
9 // distribute, and/or sell copies of the Software, and to permit persons
10 // to whom the Software is furnished to do so, provided that the above
11 // copyright notice(s) and this permission notice appear in all copies of
12 // the Software and that both the above copyright notice(s) and this
13 // permission notice appear in supporting documentation.
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
18 // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
19 // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
20 // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
21 // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
22 // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
23 // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
25 // Except as contained in this notice, the name of a copyright holder
26 // shall not be used in advertising or otherwise to promote the sale, use
27 // or other dealings in this Software without prior written authorization
28 // of the copyright holder.
30 // $TOG: us /main/5 1998/02/10 13:45:06 kaleb $
31 // Sun: @(#)us 1.5 03/04/21 SMI
33 //Copyright 1996, 1998 The Open Group
35 //All Rights Reserved.
37 //The above copyright notice and this permission notice shall be
38 //included in all copies or substantial portions of the Software.
40 //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41 //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
42 //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
43 //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
44 //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
45 //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 //OTHER DEALINGS IN THE SOFTWARE.
48 //Except as contained in this notice, the name of The Open Group shall
49 //not be used in advertising or otherwise to promote the sale, use or
50 //other dealings in this Software without prior written authorization
51 //from The Open Group.
54 // Symbols shared by all Sun Keyboard layouts
55 xkb_symbols "sunbasic" {
56 include "srvr_ctrl(stdkeypad)"
59 key <RTSH> { [ Shift_R ] };
60 key <LALT> { [ Alt_L ] };
61 key <ALGR> { [ Mode_switch ] };
62 key <LMTA> { [ Meta_L ] };
63 key <RMTA> { [ Meta_R ] };
64 key <RCTL> { [ Control_R ] };
65 key <COMP> { [ Multi_key ] };
66 // End alphanumeric section
68 // Begin "Function" section
69 key <FK01> { [ F1 ] };
70 key <FK02> { [ F2 ] };
71 key <FK03> { [ F3 ] };
72 key <FK04> { [ F4 ] };
73 key <FK05> { [ F5 ] };
74 key <FK06> { [ F6 ] };
75 key <FK07> { [ F7 ] };
76 key <FK08> { [ F8 ] };
77 key <FK09> { [ F9 ] };
78 key <FK10> { [ F10 ] };
79 key <FK11> { [ SunF36 ] };
80 key <FK12> { [ SunF37 ] };
81 key <STOP> { [ L1, L1 ], [ SunStop ] };
82 key <AGAI> { [ L2, L2 ], [ SunAgain ] };
83 key <PROP> { [ L3, L3 ], [ SunProps ] };
84 key <UNDO> { [ L4, L4 ], [ SunUndo ] };
85 key <FRNT> { [ L5, L5 ], [ SunFront ] };
86 key <COPY> { [ L6, L6 ], [ SunCopy ] };
87 key <OPEN> { [ L7, L7 ], [ SunOpen ] };
88 key <PAST> { [ L8, L8 ], [ SunPaste ] };
89 key <FIND> { [ L9, L9 ], [ SunFind ] };
90 key <CUT> { [ L10, L10 ], [ SunCut ] };
91 // End "Function" section
93 // Begin "Editing" section
94 key <DELE> { [ Delete ] };
95 key <HELP> { [ Help ] };
97 // End "Editing" section, begin "Keypad"
99 key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
101 // This default section uses the same symbols as other XKB implementations
102 // for greater compatibility & AccessX MouseKeys support, but it is
103 // different than the traditional Sun key mappings that date back to the
104 // Sun Type 2 keyboard, in which the right side numpad were "R" function
105 // keys. To restore the original behavior, comment out this section and
106 // uncomment the section below that lists the R key mappings.
107 key <KPDV> { [ KP_Divide ] };
108 key <KPMU> { [ KP_Multiply ] };
109 key <KPSU> { [ KP_Subtract ] };
111 key <KP7> { [ KP_Home, KP_7 ] };
112 key <KP8> { [ KP_Up, KP_8 ] };
113 key <KP9> { [ KP_Prior, KP_9 ] };
114 key <KPAD> { [ KP_Add ] };
116 key <KP4> { [ KP_Left, KP_4 ] };
117 key <KP5> { [ KP_Begin, KP_5 ] };
118 key <KP6> { [ KP_Right, KP_6 ] };
120 key <KP1> { [ KP_End, KP_1 ] };
121 key <KP2> { [ KP_Down, KP_2 ] };
122 key <KP3> { [ KP_Next, KP_3 ] };
123 key <KPEN> { [ KP_Enter ] };
125 key <KP0> { [ KP_Insert, KP_0 ] };
126 key <KPDL> { [ KP_Delete, KP_Decimal ] };
128 // End New Keypad section - Begin Sun traditional Keypad section
130 // key <KP7> { [ R7, R7 ], [ KP_7, Home ] };
131 // key <KP8> { [ Up, R8 ], [ KP_8 ] };
132 // key <KP9> { [ R9, R9 ], [ KP_9, Prior ] };
133 // key <KPAD> { [ KP_Add ] };
135 // key <KP4> { [ Left, R10 ], [ KP_4 ] };
136 // key <KP5> { [ R11, R11 ], [ KP_5 ] };
137 // key <KP6> { [ Right, R12 ], [ KP_6 ] };
139 // key <KP1> { [ R13, R13 ], [ KP_1, End ] };
140 // key <KP2> { [ Down, R14 ], [ KP_2 ] };
141 // key <KP3> { [ R15, R15 ], [ KP_3, Next ] };
142 // key <KPEN> { [ KP_Enter ] };
143 // key <KP0> { [ KP_Insert, KP_Insert], [ KP_0 ] };
144 // key <KPDL> { [ Delete, Delete ], [ KP_Decimal ] };
146 // End "Keypad" section
148 modifier_map Control{ Control_R };
152 // US/ASCII layout for a Type 4 Sun keyboard
153 xkb_symbols "type4basic" {
154 include "sun/us(sunbasic)"
156 // A few alphanumeric keys are different
157 key <AE04> { [ 4, dollar ], [ EuroSign ] };
158 key <AE05> { [ 5, percent ], [ EuroSign ] };
159 key <AD03> { [ e, E ], [ EuroSign ] };
161 key <LNFD> { [ Linefeed ] };
163 // Begin "Editing" section
164 key <PRSC> { [ R2, R2 ], [ Print ] };
165 key <SCLK> { [ R3, R3 ], [ Scroll_Lock, Break ] };
166 key <PAUS> { [ R1, R1 ], [ Pause ] };
168 // End "Editing" section, begin "Keypad"
169 key <KPEQ> { [ R4, KP_Equal ], [ KP_Equal ] };
171 // begin modifier mappings
172 modifier_map Shift { Shift_R, Shift_L };
173 modifier_map Mod1 { Meta_L, Meta_R };
174 modifier_map Mod2 { Mode_switch };
175 modifier_map Mod3 { Num_Lock };
176 modifier_map Mod4 { Alt_L };
180 xkb_symbols "type4" {
181 include "sun/us(type4basic)"
183 key <BKSL> { [ backslash, bar ], [ brokenbar ] };
186 // US/ASCII layout for a Type 5 Sun keyboard
187 xkb_symbols "type5basic" {
188 include "sun/us(sunbasic)"
190 // Begin "Editing" section
191 key <PRSC> { [ R2, R2 ], [ Print, SunSys_Req ] };
192 key <SCLK> { [ R3, R3 ], [ Scroll_Lock ] };
193 key <PAUS> { [ R1, R1 ], [ Pause, Break ] };
195 key <LEFT> { [ Left ] };
196 key <RGHT> { [ Right ] };
198 key <DOWN> { [ Down ] };
200 key <DELE> { [ Delete ] };
201 key <INS> { [ Insert ] };
202 key <PGUP> { [ Prior ] };
203 key <PGDN> { [ Next ] };
204 key <HOME> { [ Home ] };
205 key <END> { [ End ] };
206 key <HELP> { [ Help ] };
208 // End "Editing" section
210 // begin "four keys up on the right"
211 key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
212 key <VOL-> { [ SunAudioLowerVolume, SunVideoLowerBrightness ] };
213 key <VOL+> { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] };
214 key <POWR> { [ SunPowerSwitch, SunPowerSwitchShift ] };
216 // begin modifier mappings
217 modifier_map Shift { Shift_R, Shift_L };
218 modifier_map Mod1 { Alt_L };
219 modifier_map Mod2 { Alt_R, Mode_switch };
220 modifier_map Mod3 { Num_Lock };
221 modifier_map Mod4 { Meta_L, Meta_R };
224 xkb_symbols "type5" {
225 include "sun/us(type5basic)"
227 // A few alphanumeric keys are different
228 key <AE04> { [ 4, dollar ], [ EuroSign ] };
229 key <AE05> { [ 5, percent ], [ EuroSign ] };
230 key <AD03> { [ e, E ], [ EuroSign ] };
231 key <BKSL> { [ backslash, bar ], [ brokenbar ] };
234 xkb_symbols "type6" {
235 include "sun/us(type5)"
239 // US/ASCII layout for a Type 5 Sun keyboard
240 xkb_symbols "type5hobobasic" {
241 include "sun/us(type5basic)"
244 xkb_symbols "type5hobo" {
245 include "sun/us(type5hobobasic)"
247 // A few alphanumeric keys are different
248 key <AE04> { [ 4, dollar ], [ EuroSign ] };
249 key <AE05> { [ 5, percent ], [ EuroSign ] };
250 key <AD03> { [ e, E ], [ EuroSign ] };
251 key <BKSL> { [ backslash, bar ], [ brokenbar ] };
253 // Here is the hobo keypad:
255 key <AE07> { [ 7, ampersand ], [ NoSymbol, NoSymbol ], [ KP_7 ] };
256 key <AE08> { [ 8, asterisk ], [ NoSymbol, NoSymbol ], [ KP_8 ] };
257 key <AE09> { [ 9, parenleft ], [ NoSymbol, NoSymbol ], [ KP_9 ] };
258 key <AE10> { [ 0, parenright], [ NoSymbol, NoSymbol ], [ KP_Multiply] };
260 key <AD07> { [ u, U ], [ NoSymbol, NoSymbol ], [ KP_4 ] };
261 key <AD08> { [ i, I ], [ NoSymbol, NoSymbol ], [ KP_5 ] };
262 key <AD09> { [ o, O ], [ NoSymbol, NoSymbol ], [ KP_6 ] };
263 key <AD10> { [ p, P ], [ NoSymbol, NoSymbol ], [ KP_Subtract]};
265 key <AC07> { [ j, J ], [ NoSymbol, NoSymbol ], [ KP_1 ] };
266 key <AC08> { [ k, K ], [ NoSymbol, NoSymbol ], [ KP_2 ] };
267 key <AC09> { [ l, L ], [ NoSymbol, NoSymbol ], [ KP_3 ] };
268 key <AC10> { [ semicolon, colon], [ NoSymbol, NoSymbol], [ KP_Add ] };
270 key <RTRN> { [ Return ], [ NoSymbol, NoSymbol], [ KP_Enter ] };
272 key <AB07> { [ m, M ], [ NoSymbol, NoSymbol ], [ KP_0 ] };
274 key <AB09> { [ period, greater], [ NoSymbol, NoSymbol], [ KP_Decimal] };
275 key <AB10> { [ slash, question], [ NoSymbol, NoSymbol], [ KP_Divide ] };
279 xkb_symbols "pc101" {
281 key <RALT> { [ Mode_switch, Meta_R ] };
284 xkb_symbols "pc102" {
286 key <RALT> { [ Mode_switch, Meta_R ] };
289 xkb_symbols "pc104" {
293 xkb_symbols "pc101currency" {
295 key <AE04> { [ 4, dollar ], [ EuroSign ] };
296 key <AE05> { [ 5, percent ], [ EuroSign ] };
297 key <AD03> { [ e, E ], [ EuroSign ] };
298 key <BKSL> { [ backslash, bar ], [ brokenbar ]};
301 xkb_symbols "US101A_Sun" {
303 key <AE04> { [ 4, dollar ], [ EuroSign ] };
304 key <AE05> { [ 5, percent ], [ EuroSign ] };
305 key <AD03> { [ e, E ], [ EuroSign ] };
306 key <BKSL> { [ backslash, bar ], [ brokenbar ]};
308 // Begin "Editing" section
309 key <PRSC> { [ L5, L5 ], [ Print, SunSys_Req ]};
310 key <SCLK> { [ L7, L7 ], [ Scroll_Lock ]};
311 key <PAUS> { [ L1, L1 ], [ Pause, Break ]};
312 key <INS> { [ L8, L8 ], [ Insert ]};
313 key <HOME> { [ L6, L6 ], [ Home ]};
314 key <PGUP> { [ L3, L3 ], [ Prior ]};
317 key <DELE> { [ L10, L10 ], [ Delete ]};
318 key <END> { [ L9, L9 ], [ End ]};
319 key <PGDN> { [ L4, L4 ], [ Next ]};
322 key <LEFT> { [ Left ] };
323 key <DOWN> { [ Down ] };
324 key <RGHT> { [ Right ] };
326 key <KPDV> { [ R5, R5 ], [ KP_Divide ] };
327 key <KPMU> { [ R6, R6 ], [ KP_Multiply ] };
329 key <KP7> { [ R7, KP_7 ], [ KP_7, Home ] };
330 key <KP8> { [ KP_Up, KP_8 ], [ KP_8 ] };
331 key <KP9> { [ R9, KP_9 ], [ KP_9, Prior ] };
332 key <KPAD> { [ KP_Add ] };
334 key <KP4> { [ KP_Left, KP_4 ], [ KP_4 ] };
335 key <KP5> { [ R11, KP_5 ], [ KP_5 ] };
336 key <KP6> { [ KP_Right, KP_6 ], [ KP_6 ] };
338 key <KP1> { [ R13, KP_1 ], [ KP_1, End ] };
339 key <KP2> { [ KP_Down, KP_2 ], [ KP_2 ] };
340 key <KP3> { [ R15, KP_3 ], [ KP_3, Next ] };
341 key <KPEN> { [ KP_Enter ] };
343 key <LALT> { [ Meta_L ] };
344 key <RALT> { [ Alt_L ] };
345 key <RCTL> { [ Multi_key ] };