us revision 154daed1
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 55hidden 56xkb_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 124hidden 125xkb_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 152hidden 153xkb_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 168xkb_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 187xkb_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 194xkb_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 205xkb_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 216xkb_symbols "type5hobobasic" { 217 include "sun_vndr/us(type5basic)" 218}; 219 220xkb_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 254xkb_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 262xkb_symbols "pc101" { 263 include "us(pc101)" 264 key <RALT> { [ Mode_switch, Meta_R ] }; 265}; 266 267xkb_symbols "pc102" { 268 include "us(pc102)" 269 key <RALT> { [ Mode_switch, Meta_R ] }; 270}; 271 272xkb_symbols "pc104" { 273 include "us(pc104)" 274}; 275 276xkb_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 284xkb_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