us revision 154daed1
1154daed1Smrg// $XdotOrg: $
2154daed1Smrg//
3154daed1Smrg// Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
4154daed1Smrg//
5154daed1Smrg// Permission is hereby granted, free of charge, to any person obtaining a
6154daed1Smrg// copy of this software and associated documentation files (the
7154daed1Smrg// "Software"), to deal in the Software without restriction, including
8154daed1Smrg// without limitation the rights to use, copy, modify, merge, publish,
9154daed1Smrg// distribute, and/or sell copies of the Software, and to permit persons
10154daed1Smrg// to whom the Software is furnished to do so, provided that the above
11154daed1Smrg// copyright notice(s) and this permission notice appear in all copies of
12154daed1Smrg// the Software and that both the above copyright notice(s) and this
13154daed1Smrg// permission notice appear in supporting documentation.
14154daed1Smrg// 
15154daed1Smrg// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16154daed1Smrg// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17154daed1Smrg// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
18154daed1Smrg// OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
19154daed1Smrg// HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
20154daed1Smrg// INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
21154daed1Smrg// FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
22154daed1Smrg// NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
23154daed1Smrg// WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
24154daed1Smrg// 
25154daed1Smrg// Except as contained in this notice, the name of a copyright holder
26154daed1Smrg// shall not be used in advertising or otherwise to promote the sale, use
27154daed1Smrg// or other dealings in this Software without prior written authorization
28154daed1Smrg// of the copyright holder.
29154daed1Smrg//
30154daed1Smrg// $TOG: us /main/5 1998/02/10 13:45:06 kaleb $
31154daed1Smrg// Sun: @(#)us	1.5	03/04/21 SMI
32154daed1Smrg//
33154daed1Smrg//Copyright 1996, 1998  The Open Group
34154daed1Smrg//
35154daed1Smrg//All Rights Reserved.
36154daed1Smrg//
37154daed1Smrg//The above copyright notice and this permission notice shall be
38154daed1Smrg//included in all copies or substantial portions of the Software.
39154daed1Smrg//
40154daed1Smrg//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
41154daed1Smrg//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
42154daed1Smrg//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
43154daed1Smrg//IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
44154daed1Smrg//OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
45154daed1Smrg//ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46154daed1Smrg//OTHER DEALINGS IN THE SOFTWARE.
47154daed1Smrg//
48154daed1Smrg//Except as contained in this notice, the name of The Open Group shall
49154daed1Smrg//not be used in advertising or otherwise to promote the sale, use or
50154daed1Smrg//other dealings in this Software without prior written authorization
51154daed1Smrg//from The Open Group.
52154daed1Smrg//
53154daed1Smrg
54154daed1Smrg// Symbols shared by all Sun Keyboard layouts
55154daed1Smrghidden
56154daed1Smrgxkb_symbols "sunbasic" {
57154daed1Smrg    include "srvr_ctrl(xfree86)"
58154daed1Smrg
59154daed1Smrg    // Needed for left function keys and volume keys
60154daed1Smrg    // Need to include this before us(basic) otherwise tilde is mapped to 
61154daed1Smrg    // a jp key
62154daed1Smrg    include "inet(evdev)"
63154daed1Smrg
64154daed1Smrg    include "us(basic)"
65154daed1Smrg    include "pc(function)"
66154daed1Smrg    include "pc(editing)"
67154daed1Smrg    include "keypad(x11)"
68154daed1Smrg
69154daed1Smrg    include "sun_vndr/us(left_funkeys)"
70154daed1Smrg
71154daed1Smrg    include "capslock(capslock)"
72154daed1Smrg    //include "capslock(shiftlock)"
73154daed1Smrg
74154daed1Smrg    key <LFSH> { [ Shift_L		]			};
75154daed1Smrg    key <RTSH> { [ Shift_R		]			};
76154daed1Smrg    key <LALT> { [ Alt_L		]			};
77154daed1Smrg    key <ALGR> { [ Mode_switch		]			};
78154daed1Smrg    key <LMTA> { [ Meta_L		]			};
79154daed1Smrg    key <RMTA> { [ Meta_R		]			};
80154daed1Smrg    key <LCTL> { [ Control_L		]			};
81154daed1Smrg    key <RCTL> { [ Control_R		]			};
82154daed1Smrg    key <COMP> { [ Multi_key		]			};
83154daed1Smrg
84154daed1Smrg    key  <TAB> { [ Tab,  ISO_Left_Tab	]			};
85154daed1Smrg    key <RTRN> { [ Return		]			};
86154daed1Smrg
87154daed1Smrg    key <ESC>  { [ Escape		]			}; 
88154daed1Smrg
89154daed1Smrg    key <NMLK> { [ Num_Lock, Pointer_EnableKeys	] };
90154daed1Smrg    key <SPCE> { [ space                        ] };
91154daed1Smrg
92154daed1Smrg    // By default, we use the same symbols as other XKB implementations
93154daed1Smrg    // for greater compatibility & AccessX MouseKeys support, but it is 
94154daed1Smrg    // different than the traditional Sun key mappings that date back to the
95154daed1Smrg    // Sun Type 2 keyboard, in which the right side numpad were "R" function
96154daed1Smrg    // keys.  To restore the original behavior, uncomment the section below 
97154daed1Smrg    // that lists the R key mappings.
98154daed1Smrg//    key  <KP7> { [ R7,	R7		], [ KP_7, Home		] };
99154daed1Smrg//    key  <KP8> { [ Up, R8               ], [ KP_8               ] };
100154daed1Smrg//    key  <KP9> { [ R9,	R9		], [ KP_9, Prior	] };
101154daed1Smrg//    key <KPAD> { [ KP_Add		]			};
102154daed1Smrg//
103154daed1Smrg//    key  <KP4> { [ Left, R10		], [ KP_4		] };
104154daed1Smrg//    key  <KP5> { [ R11,	R11		], [ KP_5		] };
105154daed1Smrg//    key  <KP6> { [ Right, R12		], [ KP_6		] };
106154daed1Smrg//
107154daed1Smrg//    key  <KP1> { [ R13,	R13		], [ KP_1,	End	] };
108154daed1Smrg//    key  <KP2> { [ Down, R14		], [ KP_2		] };
109154daed1Smrg//    key  <KP3> { [ R15,	R15		], [ KP_3,	Next	] };
110154daed1Smrg//    key <KPEN> { [ KP_Enter		]			}; 
111154daed1Smrg//    key  <KP0> { [ KP_Insert, KP_Insert], [ KP_0		]	};
112154daed1Smrg//    key <KPDL> { [ Delete, Delete	], [ KP_Decimal ]	};
113154daed1Smrg
114154daed1Smrg      // End "Keypad" section
115154daed1Smrg
116154daed1Smrg    modifier_map Control { Control_L, Control_R };
117154daed1Smrg    modifier_map Shift   { Shift_R, Shift_L };
118154daed1Smrg    modifier_map Mod1    { Meta_L, Meta_R };
119154daed1Smrg    modifier_map Mod2    { Mode_switch };
120154daed1Smrg    modifier_map Mod3    { Num_Lock };
121154daed1Smrg    modifier_map Mod4    { Alt_L };
122154daed1Smrg};
123154daed1Smrg
124154daed1Smrghidden
125154daed1Smrgxkb_symbols "left_funkeys" {
126154daed1Smrg    // Suppliment to inet(evdev) for added functionality of left-funkeys
127154daed1Smrg    key <STOP> { [ NoSymbol ],      [ L1, L1   ]       };
128154daed1Smrg    key <AGAI> { [ NoSymbol ],      [ L2, L2   ]       };
129154daed1Smrg    key <PROP> { [ NoSymbol ],      [ L3, L3   ]       };
130154daed1Smrg    key <UNDO> { [ NoSymbol ],      [ L4, L4   ]       };
131154daed1Smrg    key <FRNT> { [ NoSymbol ],      [ L5, L5   ]       };
132154daed1Smrg    key <COPY> { [ NoSymbol ],      [ L6, L6   ]       };
133154daed1Smrg    key <OPEN> { [ NoSymbol ],      [ L7, L7   ]       };
134154daed1Smrg    key <PAST> { [ NoSymbol ],      [ L8, L8   ]       };
135154daed1Smrg    key <FIND> { [ NoSymbol ],      [ L9, L9   ]       };
136154daed1Smrg    key <CUT>  { [ NoSymbol ],      [ L10, L10 ]       };
137154daed1Smrg
138154daed1Smrg    // The above symbols were chosen for better compatibility withother xkb
139154daed1Smrg    // mappings.  The old mappings are kepy below in case someone needs them
140154daed1Smrg    //key <STOP> { [ L1,	L1		], [ SunStop	]	};
141154daed1Smrg    //key <AGAI> { [ L2,	L2		], [ SunAgain	]	};
142154daed1Smrg    //key <PROP> { [ L3,	L3		], [ SunProps	]	};
143154daed1Smrg    //key <UNDO> { [ L4,	L4		], [ SunUndo	]	};
144154daed1Smrg    //key <FRNT> { [ L5,	L5		], [ SunFront	]	};
145154daed1Smrg    //key <COPY> { [ L6,	L6		], [ SunCopy	]	};
146154daed1Smrg    //key <OPEN> { [ L7,	L7		], [ SunOpen	]	};
147154daed1Smrg    //key <PAST> { [ L8,	L8		], [ SunPaste	]	};
148154daed1Smrg    //key <FIND> { [ L9,	L9		], [ SunFind	]	};
149154daed1Smrg    //key <CUT>  { [ L10,	L10		], [ SunCut	]	};
150154daed1Smrg};
151154daed1Smrg
152154daed1Smrghidden
153154daed1Smrgxkb_symbols "volumekeys" {
154154daed1Smrg    // Suppliment to inet(evdev) for added functionality of audio keys
155154daed1Smrg    key <MUTE> { [ NoSymbol,	SunVideoDegauss		]	};
156154daed1Smrg    key <VOL-> { [ NoSymbol,	XF86MonBrightnessDown   ]	};
157154daed1Smrg    key <VOL+> { [ NoSymbol,	XF86MonBrightnessUp	]	};
158154daed1Smrg
159154daed1Smrg    // The above symbols were chosen for better compatibility withother xkb
160154daed1Smrg    // mappings.  The old mappings are kepy below in case someone needs them
161154daed1Smrg    //key <MUTE> { [ SunAudioMute,	SunVideoDegauss		]	};
162154daed1Smrg    //key <VOL-> { [ SunAudioLowerVolume,	SunVideoLowerBrightness ]	};
163154daed1Smrg    //key <VOL+> { [ SunAudioRaiseVolume,	SunVideoRaiseBrightness	]	};
164154daed1Smrg    //key <POWR> { [ SunPowerSwitch,	SunPowerSwitchShift	]	};
165154daed1Smrg};
166154daed1Smrg
167154daed1Smrg// US/ASCII layout for a Type 4 Sun keyboard
168154daed1Smrgxkb_symbols "type4basic" {
169154daed1Smrg    include "sun_vndr/us(sunbasic)"
170154daed1Smrg
171154daed1Smrg    // A few alphanumeric keys are different
172154daed1Smrg    key <AE04> { [ 4, dollar		], [ EuroSign	]	};
173154daed1Smrg    key <AE05> { [ 5, percent		], [ EuroSign	]	};
174154daed1Smrg    key <AD03> { [ e, E			], [ EuroSign	]	};
175154daed1Smrg
176154daed1Smrg    key <LNFD> { [ Linefeed		]			};
177154daed1Smrg
178154daed1Smrg    // Begin "Editing" section
179154daed1Smrg    key <PRSC> { [ R2,	R2		], [ Print		] };
180154daed1Smrg    key <SCLK> { [ R3,	R3		], [ Scroll_Lock, Break	] };
181154daed1Smrg    key <PAUS> { [ R1,	R1		], [ Pause		] };
182154daed1Smrg
183154daed1Smrg    // End "Editing" section, begin "Keypad"
184154daed1Smrg    key <KPEQ> { [ R4,	KP_Equal	], [ KP_Equal		] };
185154daed1Smrg};
186154daed1Smrg
187154daed1Smrgxkb_symbols "type4" {
188154daed1Smrg    include "sun_vndr/us(type4basic)"
189154daed1Smrg
190154daed1Smrg    key <BKSL> { [ backslash, bar	], [ brokenbar	]	};
191154daed1Smrg};
192154daed1Smrg
193154daed1Smrg// US/ASCII layout for a Type 5 Sun keyboard
194154daed1Smrgxkb_symbols "type5basic" {
195154daed1Smrg    include "sun_vndr/us(sunbasic)"
196154daed1Smrg    include "sun_vndr/us(volumekeys)"
197154daed1Smrg
198154daed1Smrg    // Begin "Editing" section
199154daed1Smrg    key <PRSC> { [ R2, R2 		], [ Print, SunSys_Req	]	};
200154daed1Smrg    key <SCLK> { [ R3, R3		], [ Scroll_Lock	]	};
201154daed1Smrg    key <PAUS> { [ R1, R1		], [ Pause, Break	]	};
202154daed1Smrg    // End "Editing" section
203154daed1Smrg};
204154daed1Smrg
205154daed1Smrgxkb_symbols "type5" {
206154daed1Smrg    include "sun_vndr/us(type5basic)"
207154daed1Smrg
208154daed1Smrg    // A few alphanumeric keys are different
209154daed1Smrg    key <AE04> { [ 4, dollar		], [ EuroSign	]	};
210154daed1Smrg    key <AE05> { [ 5, percent		], [ EuroSign	]	};
211154daed1Smrg    key <AD03> { [ e, E			], [ EuroSign	]	};
212154daed1Smrg    key <BKSL> { [ backslash, bar	], [ brokenbar	]	};
213154daed1Smrg};
214154daed1Smrg
215154daed1Smrg// US/ASCII layout for a Type 5 Sun keyboard
216154daed1Smrgxkb_symbols "type5hobobasic" {
217154daed1Smrg    include "sun_vndr/us(type5basic)"
218154daed1Smrg};
219154daed1Smrg
220154daed1Smrgxkb_symbols "type5hobo" {
221154daed1Smrg    include "sun_vndr/us(type5hobobasic)"
222154daed1Smrg
223154daed1Smrg    // A few alphanumeric keys are different
224154daed1Smrg    key <AE04> { [ 4, dollar		], [ EuroSign 	]	};
225154daed1Smrg    key <AE05> { [ 5, percent		], [ EuroSign	]	};
226154daed1Smrg    key <AD03> { [ e, E			], [ EuroSign	]	};
227154daed1Smrg    key <BKSL> { [ backslash, bar	], [ brokenbar	]	};
228154daed1Smrg
229154daed1Smrg    // Here is the hobo keypad:
230154daed1Smrg
231154daed1Smrg    key <AE07> { [ 7, ampersand	], [ NoSymbol, NoSymbol	], [ KP_7	] };
232154daed1Smrg    key <AE08> { [ 8, asterisk	], [ NoSymbol, NoSymbol	], [ KP_8	] };
233154daed1Smrg    key <AE09> { [ 9, parenleft	], [ NoSymbol, NoSymbol	], [ KP_9	] };
234154daed1Smrg    key <AE10> { [ 0, parenright], [ NoSymbol, NoSymbol	], [ KP_Multiply] };
235154daed1Smrg
236154daed1Smrg    key <AD07> { [ u, U		], [ NoSymbol, NoSymbol	], [ KP_4	] };
237154daed1Smrg    key <AD08> { [ i, I		], [ NoSymbol, NoSymbol	], [ KP_5	] };
238154daed1Smrg    key <AD09> { [ o, O		], [ NoSymbol, NoSymbol	], [ KP_6	] };
239154daed1Smrg    key <AD10> { [ p, P		], [ NoSymbol, NoSymbol	], [ KP_Subtract]};
240154daed1Smrg
241154daed1Smrg    key <AC07> { [ j, J		], [ NoSymbol, NoSymbol	], [ KP_1	] };
242154daed1Smrg    key <AC08> { [ k, K		], [ NoSymbol, NoSymbol	], [ KP_2	] };
243154daed1Smrg    key <AC09> { [ l, L		], [ NoSymbol, NoSymbol	], [ KP_3	] };
244154daed1Smrg    key <AC10> { [ semicolon, colon], [ NoSymbol, NoSymbol], [ KP_Add	] };
245154daed1Smrg
246154daed1Smrg    key <RTRN> { [ Return	], [ NoSymbol, NoSymbol], [ KP_Enter	] };
247154daed1Smrg
248154daed1Smrg    key <AB07> { [ m, M		], [ NoSymbol, NoSymbol	], [ KP_0	] };
249154daed1Smrg
250154daed1Smrg    key <AB09> { [ period, greater], [ NoSymbol, NoSymbol], [ KP_Decimal] };
251154daed1Smrg    key <AB10> { [ slash, question], [ NoSymbol, NoSymbol], [ KP_Divide	] };
252154daed1Smrg};
253154daed1Smrg
254154daed1Smrgxkb_symbols "type6" {
255154daed1Smrg    include "sun_vndr/us(sunbasic)"
256154daed1Smrg    include "sun_vndr/us(volumekeys)"
257154daed1Smrg    include "eurosign(4)"
258154daed1Smrg
259154daed1Smrg    key <SYRQ> { [ SunSys_Req 			]};
260154daed1Smrg};
261154daed1Smrg
262154daed1Smrgxkb_symbols "pc101" {
263154daed1Smrg    include "us(pc101)"
264154daed1Smrg    key <RALT> { [ Mode_switch, Meta_R	] };
265154daed1Smrg};
266154daed1Smrg
267154daed1Smrgxkb_symbols "pc102" {
268154daed1Smrg    include "us(pc102)"
269154daed1Smrg    key <RALT> { [ Mode_switch, Meta_R	] };
270154daed1Smrg};
271154daed1Smrg
272154daed1Smrgxkb_symbols "pc104" {
273154daed1Smrg    include "us(pc104)"
274154daed1Smrg};
275154daed1Smrg
276154daed1Smrgxkb_symbols "pc101currency" {
277154daed1Smrg
278154daed1Smrg    key <AE04> { [ 4, dollar		], [ EuroSign	]	};
279154daed1Smrg    key <AE05> { [ 5, percent		], [ EuroSign	]	};
280154daed1Smrg    key <AD03> { [ e, E			], [ EuroSign	]	};
281154daed1Smrg    key <BKSL> { [ backslash, bar	], [ brokenbar			]};
282154daed1Smrg};
283154daed1Smrg
284154daed1Smrgxkb_symbols "US101A_Sun" {
285154daed1Smrg
286154daed1Smrg    key <AE04> { [ 4, dollar		], [ EuroSign	]	};
287154daed1Smrg    key <AE05> { [ 5, percent		], [ EuroSign	]	};
288154daed1Smrg    key <AD03> { [ e, E			], [ EuroSign	]	};
289154daed1Smrg    key <BKSL> { [ backslash, bar	], [ brokenbar			]};
290154daed1Smrg
291154daed1Smrg    // Begin "Editing" section
292154daed1Smrg    key <PRSC> { [ L5, L5		], [ Print, SunSys_Req 		]};
293154daed1Smrg    key <SCLK> { [ L7, L7		], [  Scroll_Lock		]};
294154daed1Smrg    key <PAUS> { [ L1, L1		], [ Pause, Break 		]};
295154daed1Smrg    key  <INS> { [ L8, L8		], [  Insert			]};
296154daed1Smrg    key <HOME> { [ L6, L6		], [  Home			]};
297154daed1Smrg    key <PGUP> { [ L3, L3		], [  Prior			]};
298154daed1Smrg
299154daed1Smrg
300154daed1Smrg    key <DELE> { [ L10, L10		], [ Delete			]};
301154daed1Smrg    key  <END> { [ L9, L9		], [  End			]};
302154daed1Smrg    key <PGDN> { [ L4, L4		], [  Next			]};
303154daed1Smrg
304154daed1Smrg    key   <UP> {	[  Up			]	};
305154daed1Smrg    key <LEFT> {	[  Left			]	};
306154daed1Smrg    key <DOWN> {	[  Down			]	};
307154daed1Smrg    key <RGHT> {	[  Right		]	};
308154daed1Smrg
309154daed1Smrg    key <KPDV> { [ R5, R5		], [ KP_Divide	]	};
310154daed1Smrg    key <KPMU> { [ R6, R6		], [ KP_Multiply	]	};
311154daed1Smrg
312154daed1Smrg    key  <KP7> { [ R7, KP_7		], [ KP_7, Home		]	};
313154daed1Smrg    key  <KP8> { [ KP_Up, KP_8		], [ KP_8		]	};
314154daed1Smrg    key  <KP9> { [ R9, KP_9		], [ KP_9, Prior	]	};
315154daed1Smrg    key <KPAD> { [ KP_Add		]				};
316154daed1Smrg
317154daed1Smrg    key  <KP4> { [ KP_Left, KP_4	], [ KP_4		]	};
318154daed1Smrg    key  <KP5> { [ R11,	KP_5		], [ KP_5		]	};
319154daed1Smrg    key  <KP6> { [ KP_Right, KP_6	], [ KP_6		]	};
320154daed1Smrg
321154daed1Smrg    key  <KP1> { [ R13,	KP_1		], [ KP_1, End		]	};
322154daed1Smrg    key  <KP2> { [ KP_Down, KP_2	], [ KP_2		]	};
323154daed1Smrg    key  <KP3> { [ R15,	KP_3		], [ KP_3, Next		]	};
324154daed1Smrg    key <KPEN> { [ KP_Enter		]				};
325154daed1Smrg
326154daed1Smrg    key <LALT> { [ Meta_L		]				};
327154daed1Smrg    key <RALT> { [ Alt_L		]				};
328154daed1Smrg    key <RCTL> { [ Multi_key		]				};
329154daed1Smrg};
330154daed1Smrg
331