Home | History | Annotate | Line # | Download | only in sun_vndr
us revision 1.1
      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     // By default, we use the same symbols as other XKB implementations
     93     // for greater compatibility & AccessX MouseKeys support, but it is 
     94     // different than the traditional Sun key mappings that date back to the
     95     // Sun Type 2 keyboard, in which the right side numpad were "R" function
     96     // keys.  To restore the original behavior, uncomment the section below 
     97     // that lists the R key mappings.
     98 //    key  <KP7> { [ R7,	R7		], [ KP_7, Home		] };
     99 //    key  <KP8> { [ Up, R8               ], [ KP_8               ] };
    100 //    key  <KP9> { [ R9,	R9		], [ KP_9, Prior	] };
    101 //    key <KPAD> { [ KP_Add		]			};
    102 //
    103 //    key  <KP4> { [ Left, R10		], [ KP_4		] };
    104 //    key  <KP5> { [ R11,	R11		], [ KP_5		] };
    105 //    key  <KP6> { [ Right, R12		], [ KP_6		] };
    106 //
    107 //    key  <KP1> { [ R13,	R13		], [ KP_1,	End	] };
    108 //    key  <KP2> { [ Down, R14		], [ KP_2		] };
    109 //    key  <KP3> { [ R15,	R15		], [ KP_3,	Next	] };
    110 //    key <KPEN> { [ KP_Enter		]			}; 
    111 //    key  <KP0> { [ KP_Insert, KP_Insert], [ KP_0		]	};
    112 //    key <KPDL> { [ Delete, Delete	], [ KP_Decimal ]	};
    113 
    114       // End "Keypad" section
    115 
    116     modifier_map Control { Control_L, Control_R };
    117     modifier_map Shift   { Shift_R, Shift_L };
    118     modifier_map Mod1    { Meta_L, Meta_R };
    119     modifier_map Mod2    { Mode_switch };
    120     modifier_map Mod3    { Num_Lock };
    121     modifier_map Mod4    { Alt_L };
    122 };
    123 
    124 hidden
    125 xkb_symbols "left_funkeys" {
    126     // Suppliment to inet(evdev) for added functionality of left-funkeys
    127     key <STOP> { [ NoSymbol ],      [ L1, L1   ]       };
    128     key <AGAI> { [ NoSymbol ],      [ L2, L2   ]       };
    129     key <PROP> { [ NoSymbol ],      [ L3, L3   ]       };
    130     key <UNDO> { [ NoSymbol ],      [ L4, L4   ]       };
    131     key <FRNT> { [ NoSymbol ],      [ L5, L5   ]       };
    132     key <COPY> { [ NoSymbol ],      [ L6, L6   ]       };
    133     key <OPEN> { [ NoSymbol ],      [ L7, L7   ]       };
    134     key <PAST> { [ NoSymbol ],      [ L8, L8   ]       };
    135     key <FIND> { [ NoSymbol ],      [ L9, L9   ]       };
    136     key <CUT>  { [ NoSymbol ],      [ L10, L10 ]       };
    137 
    138     // The above symbols were chosen for better compatibility withother xkb
    139     // mappings.  The old mappings are kepy below in case someone needs them
    140     //key <STOP> { [ L1,	L1		], [ SunStop	]	};
    141     //key <AGAI> { [ L2,	L2		], [ SunAgain	]	};
    142     //key <PROP> { [ L3,	L3		], [ SunProps	]	};
    143     //key <UNDO> { [ L4,	L4		], [ SunUndo	]	};
    144     //key <FRNT> { [ L5,	L5		], [ SunFront	]	};
    145     //key <COPY> { [ L6,	L6		], [ SunCopy	]	};
    146     //key <OPEN> { [ L7,	L7		], [ SunOpen	]	};
    147     //key <PAST> { [ L8,	L8		], [ SunPaste	]	};
    148     //key <FIND> { [ L9,	L9		], [ SunFind	]	};
    149     //key <CUT>  { [ L10,	L10		], [ SunCut	]	};
    150 };
    151 
    152 hidden
    153 xkb_symbols "volumekeys" {
    154     // Suppliment to inet(evdev) for added functionality of audio keys
    155     key <MUTE> { [ NoSymbol,	SunVideoDegauss		]	};
    156     key <VOL-> { [ NoSymbol,	XF86MonBrightnessDown   ]	};
    157     key <VOL+> { [ NoSymbol,	XF86MonBrightnessUp	]	};
    158 
    159     // The above symbols were chosen for better compatibility withother xkb
    160     // mappings.  The old mappings are kepy below in case someone needs them
    161     //key <MUTE> { [ SunAudioMute,	SunVideoDegauss		]	};
    162     //key <VOL-> { [ SunAudioLowerVolume,	SunVideoLowerBrightness ]	};
    163     //key <VOL+> { [ SunAudioRaiseVolume,	SunVideoRaiseBrightness	]	};
    164     //key <POWR> { [ SunPowerSwitch,	SunPowerSwitchShift	]	};
    165 };
    166 
    167 // US/ASCII layout for a Type 4 Sun keyboard
    168 xkb_symbols "type4basic" {
    169     include "sun_vndr/us(sunbasic)"
    170 
    171     // A few alphanumeric keys are different
    172     key <AE04> { [ 4, dollar		], [ EuroSign	]	};
    173     key <AE05> { [ 5, percent		], [ EuroSign	]	};
    174     key <AD03> { [ e, E			], [ EuroSign	]	};
    175 
    176     key <LNFD> { [ Linefeed		]			};
    177 
    178     // Begin "Editing" section
    179     key <PRSC> { [ R2,	R2		], [ Print		] };
    180     key <SCLK> { [ R3,	R3		], [ Scroll_Lock, Break	] };
    181     key <PAUS> { [ R1,	R1		], [ Pause		] };
    182 
    183     // End "Editing" section, begin "Keypad"
    184     key <KPEQ> { [ R4,	KP_Equal	], [ KP_Equal		] };
    185 };
    186 
    187 xkb_symbols "type4" {
    188     include "sun_vndr/us(type4basic)"
    189 
    190     key <BKSL> { [ backslash, bar	], [ brokenbar	]	};
    191 };
    192 
    193 // US/ASCII layout for a Type 5 Sun keyboard
    194 xkb_symbols "type5basic" {
    195     include "sun_vndr/us(sunbasic)"
    196     include "sun_vndr/us(volumekeys)"
    197 
    198     // Begin "Editing" section
    199     key <PRSC> { [ R2, R2 		], [ Print, SunSys_Req	]	};
    200     key <SCLK> { [ R3, R3		], [ Scroll_Lock	]	};
    201     key <PAUS> { [ R1, R1		], [ Pause, Break	]	};
    202     // End "Editing" section
    203 };
    204 
    205 xkb_symbols "type5" {
    206     include "sun_vndr/us(type5basic)"
    207 
    208     // A few alphanumeric keys are different
    209     key <AE04> { [ 4, dollar		], [ EuroSign	]	};
    210     key <AE05> { [ 5, percent		], [ EuroSign	]	};
    211     key <AD03> { [ e, E			], [ EuroSign	]	};
    212     key <BKSL> { [ backslash, bar	], [ brokenbar	]	};
    213 };
    214 
    215 // US/ASCII layout for a Type 5 Sun keyboard
    216 xkb_symbols "type5hobobasic" {
    217     include "sun_vndr/us(type5basic)"
    218 };
    219 
    220 xkb_symbols "type5hobo" {
    221     include "sun_vndr/us(type5hobobasic)"
    222 
    223     // A few alphanumeric keys are different
    224     key <AE04> { [ 4, dollar		], [ EuroSign 	]	};
    225     key <AE05> { [ 5, percent		], [ EuroSign	]	};
    226     key <AD03> { [ e, E			], [ EuroSign	]	};
    227     key <BKSL> { [ backslash, bar	], [ brokenbar	]	};
    228 
    229     // Here is the hobo keypad:
    230 
    231     key <AE07> { [ 7, ampersand	], [ NoSymbol, NoSymbol	], [ KP_7	] };
    232     key <AE08> { [ 8, asterisk	], [ NoSymbol, NoSymbol	], [ KP_8	] };
    233     key <AE09> { [ 9, parenleft	], [ NoSymbol, NoSymbol	], [ KP_9	] };
    234     key <AE10> { [ 0, parenright], [ NoSymbol, NoSymbol	], [ KP_Multiply] };
    235 
    236     key <AD07> { [ u, U		], [ NoSymbol, NoSymbol	], [ KP_4	] };
    237     key <AD08> { [ i, I		], [ NoSymbol, NoSymbol	], [ KP_5	] };
    238     key <AD09> { [ o, O		], [ NoSymbol, NoSymbol	], [ KP_6	] };
    239     key <AD10> { [ p, P		], [ NoSymbol, NoSymbol	], [ KP_Subtract]};
    240 
    241     key <AC07> { [ j, J		], [ NoSymbol, NoSymbol	], [ KP_1	] };
    242     key <AC08> { [ k, K		], [ NoSymbol, NoSymbol	], [ KP_2	] };
    243     key <AC09> { [ l, L		], [ NoSymbol, NoSymbol	], [ KP_3	] };
    244     key <AC10> { [ semicolon, colon], [ NoSymbol, NoSymbol], [ KP_Add	] };
    245 
    246     key <RTRN> { [ Return	], [ NoSymbol, NoSymbol], [ KP_Enter	] };
    247 
    248     key <AB07> { [ m, M		], [ NoSymbol, NoSymbol	], [ KP_0	] };
    249 
    250     key <AB09> { [ period, greater], [ NoSymbol, NoSymbol], [ KP_Decimal] };
    251     key <AB10> { [ slash, question], [ NoSymbol, NoSymbol], [ KP_Divide	] };
    252 };
    253 
    254 xkb_symbols "type6" {
    255     include "sun_vndr/us(sunbasic)"
    256     include "sun_vndr/us(volumekeys)"
    257     include "eurosign(4)"
    258 
    259     key <SYRQ> { [ SunSys_Req 			]};
    260 };
    261 
    262 xkb_symbols "pc101" {
    263     include "us(pc101)"
    264     key <RALT> { [ Mode_switch, Meta_R	] };
    265 };
    266 
    267 xkb_symbols "pc102" {
    268     include "us(pc102)"
    269     key <RALT> { [ Mode_switch, Meta_R	] };
    270 };
    271 
    272 xkb_symbols "pc104" {
    273     include "us(pc104)"
    274 };
    275 
    276 xkb_symbols "pc101currency" {
    277 
    278     key <AE04> { [ 4, dollar		], [ EuroSign	]	};
    279     key <AE05> { [ 5, percent		], [ EuroSign	]	};
    280     key <AD03> { [ e, E			], [ EuroSign	]	};
    281     key <BKSL> { [ backslash, bar	], [ brokenbar			]};
    282 };
    283 
    284 xkb_symbols "US101A_Sun" {
    285 
    286     key <AE04> { [ 4, dollar		], [ EuroSign	]	};
    287     key <AE05> { [ 5, percent		], [ EuroSign	]	};
    288     key <AD03> { [ e, E			], [ EuroSign	]	};
    289     key <BKSL> { [ backslash, bar	], [ brokenbar			]};
    290 
    291     // Begin "Editing" section
    292     key <PRSC> { [ L5, L5		], [ Print, SunSys_Req 		]};
    293     key <SCLK> { [ L7, L7		], [  Scroll_Lock		]};
    294     key <PAUS> { [ L1, L1		], [ Pause, Break 		]};
    295     key  <INS> { [ L8, L8		], [  Insert			]};
    296     key <HOME> { [ L6, L6		], [  Home			]};
    297     key <PGUP> { [ L3, L3		], [  Prior			]};
    298 
    299 
    300     key <DELE> { [ L10, L10		], [ Delete			]};
    301     key  <END> { [ L9, L9		], [  End			]};
    302     key <PGDN> { [ L4, L4		], [  Next			]};
    303 
    304     key   <UP> {	[  Up			]	};
    305     key <LEFT> {	[  Left			]	};
    306     key <DOWN> {	[  Down			]	};
    307     key <RGHT> {	[  Right		]	};
    308 
    309     key <KPDV> { [ R5, R5		], [ KP_Divide	]	};
    310     key <KPMU> { [ R6, R6		], [ KP_Multiply	]	};
    311 
    312     key  <KP7> { [ R7, KP_7		], [ KP_7, Home		]	};
    313     key  <KP8> { [ KP_Up, KP_8		], [ KP_8		]	};
    314     key  <KP9> { [ R9, KP_9		], [ KP_9, Prior	]	};
    315     key <KPAD> { [ KP_Add		]				};
    316 
    317     key  <KP4> { [ KP_Left, KP_4	], [ KP_4		]	};
    318     key  <KP5> { [ R11,	KP_5		], [ KP_5		]	};
    319     key  <KP6> { [ KP_Right, KP_6	], [ KP_6		]	};
    320 
    321     key  <KP1> { [ R13,	KP_1		], [ KP_1, End		]	};
    322     key  <KP2> { [ KP_Down, KP_2	], [ KP_2		]	};
    323     key  <KP3> { [ R15,	KP_3		], [ KP_3, Next		]	};
    324     key <KPEN> { [ KP_Enter		]				};
    325 
    326     key <LALT> { [ Meta_L		]				};
    327     key <RALT> { [ Alt_L		]				};
    328     key <RCTL> { [ Multi_key		]				};
    329 };
    330 
    331