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 "Software"),
7 // to deal in the Software without restriction, including without limitation
8 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 // and/or sell copies of the Software, and to permit persons to whom the
10 // Software is furnished to do so, subject to the following conditions:
12 // The above copyright notice and this permission notice (including the next
13 // paragraph) shall be included in all copies or substantial portions of the
16 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 // DEALINGS IN THE SOFTWARE.
24 // $TOG: us /main/5 1998/02/10 13:45:06 kaleb $
25 // Sun: @(#)us 1.5 03/04/21 SMI
27 //Copyright 1996, 1998 The Open Group
29 //All Rights Reserved.
31 //The above copyright notice and this permission notice shall be
32 //included in all copies or substantial portions of the Software.
34 //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
36 //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
37 //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
38 //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
39 //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 //OTHER DEALINGS IN THE SOFTWARE.
42 //Except as contained in this notice, the name of The Open Group shall
43 //not be used in advertising or otherwise to promote the sale, use or
44 //other dealings in this Software without prior written authorization
45 //from The Open Group.
48 // Symbols shared by all Sun Keyboard layouts
50 xkb_symbols "sunbasic" {
51 include "srvr_ctrl(xfree86)"
53 // Needed for left function keys and volume keys
54 // Need to include this before us(basic) otherwise tilde is mapped to
59 include "pc(function)"
63 include "sun_vndr/us(left_funkeys)"
65 include "capslock(capslock)"
66 //include "capslock(shiftlock)"
68 key <LFSH> { [ Shift_L ] };
69 key <RTSH> { [ Shift_R ] };
70 key <LALT> { [ Alt_L ] };
71 key <ALGR> { [ Mode_switch ] };
72 key <LMTA> { [ Meta_L ] };
73 key <RMTA> { [ Meta_R ] };
74 key <LCTL> { [ Control_L ] };
75 key <RCTL> { [ Control_R ] };
76 key <COMP> { [ Multi_key ] };
78 key <TAB> { [ Tab, ISO_Left_Tab ] };
79 key <RTRN> { [ Return ] };
81 key <ESC> { [ Escape ] };
83 key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
84 key <SPCE> { [ space ] };
86 key <BKSP> { [ BackSpace ] };
88 // By default, we use the same symbols as other XKB implementations
89 // for greater compatibility & AccessX MouseKeys support, but it is
90 // different than the traditional Sun key mappings that date back to the
91 // Sun Type 2 keyboard, in which the right side numpad were "R" function
92 // keys. To restore the original behavior, uncomment the section below
93 // that lists the R key mappings.
94 // key <KP7> { [ R7, R7 ], [ KP_7, Home ] };
95 // key <KP8> { [ Up, R8 ], [ KP_8 ] };
96 // key <KP9> { [ R9, R9 ], [ KP_9, Prior ] };
97 // key <KPAD> { [ KP_Add ] };
99 // key <KP4> { [ Left, R10 ], [ KP_4 ] };
100 // key <KP5> { [ R11, R11 ], [ KP_5 ] };
101 // key <KP6> { [ Right, R12 ], [ KP_6 ] };
103 // key <KP1> { [ R13, R13 ], [ KP_1, End ] };
104 // key <KP2> { [ Down, R14 ], [ KP_2 ] };
105 // key <KP3> { [ R15, R15 ], [ KP_3, Next ] };
106 // key <KPEN> { [ KP_Enter ] };
107 // key <KP0> { [ KP_Insert, KP_Insert], [ KP_0 ] };
108 // key <KPDL> { [ Delete, Delete ], [ KP_Decimal ] };
110 // End "Keypad" section
112 modifier_map Control { Control_L, Control_R };
113 modifier_map Shift { Shift_R, Shift_L };
114 modifier_map Mod1 { Meta_L, Meta_R };
115 modifier_map Mod2 { Mode_switch };
116 modifier_map Mod3 { Num_Lock };
117 modifier_map Mod4 { Alt_L };
121 xkb_symbols "left_funkeys" {
122 // Suppliment to inet(evdev) for added functionality of left-funkeys
123 key <STOP> { [ NoSymbol ], [ L1, L1 ] };
124 key <AGAI> { [ NoSymbol ], [ L2, L2 ] };
125 key <PROP> { [ NoSymbol ], [ L3, L3 ] };
126 key <UNDO> { [ NoSymbol ], [ L4, L4 ] };
127 key <FRNT> { [ NoSymbol ], [ L5, L5 ] };
128 key <COPY> { [ NoSymbol ], [ L6, L6 ] };
129 key <OPEN> { [ NoSymbol ], [ L7, L7 ] };
130 key <PAST> { [ NoSymbol ], [ L8, L8 ] };
131 key <FIND> { [ NoSymbol ], [ L9, L9 ] };
132 key <CUT> { [ NoSymbol ], [ L10, L10 ] };
134 // The above symbols were chosen for better compatibility withother xkb
135 // mappings. The old mappings are kepy below in case someone needs them
136 //key <STOP> { [ L1, L1 ], [ SunStop ] };
137 //key <AGAI> { [ L2, L2 ], [ SunAgain ] };
138 //key <PROP> { [ L3, L3 ], [ SunProps ] };
139 //key <UNDO> { [ L4, L4 ], [ SunUndo ] };
140 //key <FRNT> { [ L5, L5 ], [ SunFront ] };
141 //key <COPY> { [ L6, L6 ], [ SunCopy ] };
142 //key <OPEN> { [ L7, L7 ], [ SunOpen ] };
143 //key <PAST> { [ L8, L8 ], [ SunPaste ] };
144 //key <FIND> { [ L9, L9 ], [ SunFind ] };
145 //key <CUT> { [ L10, L10 ], [ SunCut ] };
149 xkb_symbols "volumekeys" {
150 // Suppliment to inet(evdev) for added functionality of audio keys
151 key <MUTE> { [ NoSymbol, SunVideoDegauss ] };
152 key <VOL-> { [ NoSymbol, XF86MonBrightnessDown ] };
153 key <VOL+> { [ NoSymbol, XF86MonBrightnessUp ] };
155 // The above symbols were chosen for better compatibility withother xkb
156 // mappings. The old mappings are kepy below in case someone needs them
157 //key <MUTE> { [ SunAudioMute, SunVideoDegauss ] };
158 //key <VOL-> { [ SunAudioLowerVolume, SunVideoLowerBrightness ] };
159 //key <VOL+> { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] };
160 //key <POWR> { [ SunPowerSwitch, SunPowerSwitchShift ] };
163 // US/ASCII layout for a Type 4 Sun keyboard
164 xkb_symbols "type4basic" {
165 include "sun_vndr/us(sunbasic)"
167 // A few alphanumeric keys are different
168 key <AE04> { [ 4, dollar ], [ EuroSign ] };
169 key <AE05> { [ 5, percent ], [ EuroSign ] };
170 key <AD03> { [ e, E ], [ EuroSign ] };
172 key <LNFD> { [ Linefeed ] };
174 // Begin "Editing" section
175 key <PRSC> { [ R2, R2 ], [ Print ] };
176 key <SCLK> { [ R3, R3 ], [ Scroll_Lock, Break ] };
177 key <PAUS> { [ R1, R1 ], [ Pause ] };
179 // End "Editing" section, begin "Keypad"
180 key <KPEQ> { [ R4, KP_Equal ], [ KP_Equal ] };
183 xkb_symbols "type4" {
184 include "sun_vndr/us(type4basic)"
186 key <BKSL> { [ backslash, bar ], [ brokenbar ] };
189 // US/ASCII layout for a Type 5 Sun keyboard
190 xkb_symbols "type5basic" {
191 include "sun_vndr/us(sunbasic)"
192 include "sun_vndr/us(volumekeys)"
194 // Begin "Editing" section
195 key <PRSC> { [ R2, R2 ], [ Print, SunSys_Req ] };
196 key <SCLK> { [ R3, R3 ], [ Scroll_Lock ] };
197 key <PAUS> { [ R1, R1 ], [ Pause, Break ] };
198 // End "Editing" section
201 xkb_symbols "type5" {
202 include "sun_vndr/us(type5basic)"
204 // A few alphanumeric keys are different
205 key <AE04> { [ 4, dollar ], [ EuroSign ] };
206 key <AE05> { [ 5, percent ], [ EuroSign ] };
207 key <AD03> { [ e, E ], [ EuroSign ] };
208 key <BKSL> { [ backslash, bar ], [ brokenbar ] };
211 // US/ASCII layout for a Type 5 Sun keyboard
212 xkb_symbols "type5hobobasic" {
213 include "sun_vndr/us(type5basic)"
216 xkb_symbols "type5hobo" {
217 include "sun_vndr/us(type5hobobasic)"
219 // A few alphanumeric keys are different
220 key <AE04> { [ 4, dollar ], [ EuroSign ] };
221 key <AE05> { [ 5, percent ], [ EuroSign ] };
222 key <AD03> { [ e, E ], [ EuroSign ] };
223 key <BKSL> { [ backslash, bar ], [ brokenbar ] };
225 // Here is the hobo keypad:
227 key <AE07> { [ 7, ampersand ], [ NoSymbol, NoSymbol ], [ KP_7 ] };
228 key <AE08> { [ 8, asterisk ], [ NoSymbol, NoSymbol ], [ KP_8 ] };
229 key <AE09> { [ 9, parenleft ], [ NoSymbol, NoSymbol ], [ KP_9 ] };
230 key <AE10> { [ 0, parenright], [ NoSymbol, NoSymbol ], [ KP_Multiply] };
232 key <AD07> { [ u, U ], [ NoSymbol, NoSymbol ], [ KP_4 ] };
233 key <AD08> { [ i, I ], [ NoSymbol, NoSymbol ], [ KP_5 ] };
234 key <AD09> { [ o, O ], [ NoSymbol, NoSymbol ], [ KP_6 ] };
235 key <AD10> { [ p, P ], [ NoSymbol, NoSymbol ], [ KP_Subtract]};
237 key <AC07> { [ j, J ], [ NoSymbol, NoSymbol ], [ KP_1 ] };
238 key <AC08> { [ k, K ], [ NoSymbol, NoSymbol ], [ KP_2 ] };
239 key <AC09> { [ l, L ], [ NoSymbol, NoSymbol ], [ KP_3 ] };
240 key <AC10> { [ semicolon, colon], [ NoSymbol, NoSymbol], [ KP_Add ] };
242 key <RTRN> { [ Return ], [ NoSymbol, NoSymbol], [ KP_Enter ] };
244 key <AB07> { [ m, M ], [ NoSymbol, NoSymbol ], [ KP_0 ] };
246 key <AB09> { [ period, greater], [ NoSymbol, NoSymbol], [ KP_Decimal] };
247 key <AB10> { [ slash, question], [ NoSymbol, NoSymbol], [ KP_Divide ] };
250 xkb_symbols "type6" {
251 include "sun_vndr/us(sunbasic)"
252 include "sun_vndr/us(volumekeys)"
253 include "eurosign(4)"
255 key <SYRQ> { [ SunSys_Req ]};
256 key <LSGT> { [ less, greater, bar, brokenbar ] };
260 xkb_symbols "pc101" {
262 key <RALT> { [ Mode_switch, Meta_R ] };
265 xkb_symbols "pc102" {
267 key <RALT> { [ Mode_switch, Meta_R ] };
270 xkb_symbols "pc104" {
274 xkb_symbols "pc101currency" {
276 key <AE04> { [ 4, dollar ], [ EuroSign ] };
277 key <AE05> { [ 5, percent ], [ EuroSign ] };
278 key <AD03> { [ e, E ], [ EuroSign ] };
279 key <BKSL> { [ backslash, bar ], [ brokenbar ]};
282 xkb_symbols "US101A_Sun" {
284 key <AE04> { [ 4, dollar ], [ EuroSign ] };
285 key <AE05> { [ 5, percent ], [ EuroSign ] };
286 key <AD03> { [ e, E ], [ EuroSign ] };
287 key <BKSL> { [ backslash, bar ], [ brokenbar ]};
289 // Begin "Editing" section
290 key <PRSC> { [ L5, L5 ], [ Print, SunSys_Req ]};
291 key <SCLK> { [ L7, L7 ], [ Scroll_Lock ]};
292 key <PAUS> { [ L1, L1 ], [ Pause, Break ]};
293 key <INS> { [ L8, L8 ], [ Insert ]};
294 key <HOME> { [ L6, L6 ], [ Home ]};
295 key <PGUP> { [ L3, L3 ], [ Prior ]};
298 key <DELE> { [ L10, L10 ], [ Delete ]};
299 key <END> { [ L9, L9 ], [ End ]};
300 key <PGDN> { [ L4, L4 ], [ Next ]};
303 key <LEFT> { [ Left ] };
304 key <DOWN> { [ Down ] };
305 key <RGHT> { [ Right ] };
307 key <KPDV> { [ R5, R5 ], [ KP_Divide ] };
308 key <KPMU> { [ R6, R6 ], [ KP_Multiply ] };
310 key <KP7> { [ R7, KP_7 ], [ KP_7, Home ] };
311 key <KP8> { [ KP_Up, KP_8 ], [ KP_8 ] };
312 key <KP9> { [ R9, KP_9 ], [ KP_9, Prior ] };
313 key <KPAD> { [ KP_Add ] };
315 key <KP4> { [ KP_Left, KP_4 ], [ KP_4 ] };
316 key <KP5> { [ R11, KP_5 ], [ KP_5 ] };
317 key <KP6> { [ KP_Right, KP_6 ], [ KP_6 ] };
319 key <KP1> { [ R13, KP_1 ], [ KP_1, End ] };
320 key <KP2> { [ KP_Down, KP_2 ], [ KP_2 ] };
321 key <KP3> { [ R15, KP_3 ], [ KP_3, Next ] };
322 key <KPEN> { [ KP_Enter ] };
324 key <LALT> { [ Meta_L ] };
325 key <RALT> { [ Alt_L ] };
326 key <RCTL> { [ Multi_key ] };