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