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