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