// // Copyright 2010 Sun Microsystems, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the // "Software"), to deal in the Software without restriction, including // without limitation the rights to use, copy, modify, merge, publish, // distribute, and/or sell copies of the Software, and to permit persons // to whom the Software is furnished to do so, provided that the above // copyright notice(s) and this permission notice appear in all copies of // the Software and that both the above copyright notice(s) and this // permission notice appear in supporting documentation. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT // OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR // HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL // INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING // FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION // WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. // // Except as contained in this notice, the name of a copyright holder // shall not be used in advertising or otherwise to promote the sale, use // or other dealings in this Software without prior written authorization // of the copyright holder. // // //Copyright 1996, 1998 The Open Group // //All Rights Reserved. // //The above copyright notice and this permission notice shall be //included in all copies or substantial portions of the Software. // //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, //EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF //MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. //IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR //OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, //ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR //OTHER DEALINGS IN THE SOFTWARE. // //Except as contained in this notice, the name of The Open Group shall //not be used in advertising or otherwise to promote the sale, use or //other dealings in this Software without prior written authorization //from The Open Group. // // // CDDL HEADER START // // The contents of this file are subject to the terms of the // Common Development and Distribution License (the "License"). // You may not use this file except in compliance with the License. // // You can obtain a copy of the license at src/OPENSOLARIS.LICENSE // or http://www.opensolaris.org/os/licensing. // See the License for the specific language governing permissions // and limitations under the License. // // When distributing Covered Code, include this CDDL HEADER in each // file and include the License file at src/OPENSOLARIS.LICENSE. // If applicable, add the following below this CDDL HEADER, with the // fields enclosed by brackets "[]" replaced with your own identifying // information: Portions Copyright [yyyy] [name of copyright owner] // // CDDL HEADER END // // Symbols shared by all Sun Keyboard layouts xkb_symbols "sunbasic" { include "srvr_ctrl(xfree86)" // Needed for left function keys and volume keys // Need to include this before us(basic) otherwise tilde is mapped to // a jp key include "inet(evdev)" include "us(basic)" include "pc(function)" include "pc(editing)" include "keypad(x11)" key { [ Escape ] }; // the extra key on most European keyboards key { [ less, greater, bar, brokenbar ] }; // these keys are common to almost all layouts key { [ backslash, bar ] }; key { [ space ] }; key { [ BackSpace ] }; key { [ Tab, ISO_Left_Tab ] }; key { [ Return ] }; key { [ Num_Lock, Pointer_EnableKeys ] }; key { [ Multi_key ] }; // End alphanumeric section key { [ Shift_L ] }; key { [ Control_L ] }; key { [ Shift_R ] }; key { [ Control_R ] }; // begin modifier mappings modifier_map Shift { Shift_L, Shift_R }; modifier_map Lock { Caps_Lock, ISO_Lock }; modifier_map Control{ Control_L, Control_R }; modifier_map Mod2 { Num_Lock }; // Fake keys for virtual<->real modifiers mapping key { [ ISO_Level3_Shift ] }; key { [ Mode_switch ] }; modifier_map Mod5 { , }; key { [ NoSymbol, Alt_L ] }; key { [ Alt_L, Alt_L ] }; key { [ Meta_L ] }; key { [ Meta_R ] }; modifier_map Mod1 { Alt_L }; modifier_map Mod4 { Meta_L, Meta_R }; // key { [ Alt_L ] }; // key { [ Mode_switch ] }; // key { [ Meta_L ] }; // key { [ Meta_R ] }; include "sun_vndr/us(left_funkeys)" include "capslock(capslock)" //include "capslock(shiftlock)" // This default section uses the same symbols as other XKB implementations // for greater compatibility & AccessX MouseKeys support, but it is // different than the traditional Sun key mappings that date back to the // Sun Type 2 keyboard, in which the right side numpad were "R" function // keys. To restore the original behavior, comment out this section and // uncomment the section below that lists the R key mappings. key { [ KP_Divide ] }; key { [ KP_Multiply ] }; key { [ KP_Subtract ] }; key { [ KP_Home, KP_7 ] }; key { [ KP_Up, KP_8 ] }; key { [ KP_Prior, KP_9 ] }; key { [ KP_Add ] }; key { [ KP_Left, KP_4 ] }; key { [ KP_Begin, KP_5 ] }; key { [ KP_Right, KP_6 ] }; key { [ KP_End, KP_1 ] }; key { [ KP_Down, KP_2 ] }; key { [ KP_Next, KP_3 ] }; key { [ KP_Enter ] }; key { [ KP_Insert, KP_0 ] }; key { [ KP_Delete, KP_Decimal ] }; // End New Keypad section - Begin Sun traditional Keypad section // key { [ R7, R7 ], [ KP_7, Home ] }; // key { [ Up, R8 ], [ KP_8 ] }; // key { [ R9, R9 ], [ KP_9, Prior ] }; // key { [ KP_Add ] }; // // key { [ Left, R10 ], [ KP_4 ] }; // key { [ R11, R11 ], [ KP_5 ] }; // key { [ Right, R12 ], [ KP_6 ] }; // // key { [ R13, R13 ], [ KP_1, End ] }; // key { [ Down, R14 ], [ KP_2 ] }; // key { [ R15, R15 ], [ KP_3, Next ] }; // key { [ KP_Enter ] }; // key { [ KP_Insert, KP_Insert], [ KP_0 ] }; // key { [ Delete, Delete ], [ KP_Decimal ] }; // End "Keypad" section }; xkb_symbols "left_funkeys" { // Suppliment to inet(evdev) for added functionality of left-funkeys //key { [ NoSymbol ], [ L1, L1 ] }; //key { [ NoSymbol ], [ L2, L2 ] }; //key { [ NoSymbol ], [ L3, L3 ] }; //key { [ NoSymbol ], [ L4, L4 ] }; //key { [ NoSymbol ], [ L5, L5 ] }; //key { [ NoSymbol ], [ L6, L6 ] }; //key { [ NoSymbol ], [ L7, L7 ] }; //key { [ NoSymbol ], [ L8, L8 ] }; //key { [ NoSymbol ], [ L9, L9 ] }; //key { [ NoSymbol ], [ L10, L10 ] }; // The above symbols were chosen for better compatibility withother xkb // mappings. The old mappings are kepy below in case someone needs them key { [ L1, L1, SunStop ] }; key { [ L2, L2, SunAgain ] }; key { [ L3, L3, SunProps ] }; key { [ L4, L4, SunUndo ] }; key { [ L5, L5, SunFront ] }; key { [ L6, L6, SunCopy ] }; key { [ L7, L7, SunOpen ] }; key { [ L8, L8, SunPaste ] }; key { [ L9, L9, SunFind ] }; key { [ L10, L10, SunCut ] }; }; hidden xkb_symbols "volumekeys" { // Suppliment to inet(evdev) for added functionality of audio keys key { [ NoSymbol, SunVideoDegauss ] }; key { [ NoSymbol, XF86MonBrightnessDown ] }; key { [ NoSymbol, XF86MonBrightnessUp ] }; // The above symbols were chosen for better compatibility withother xkb // mappings. The old mappings are kepy below in case someone needs them //key { [ SunAudioMute, SunVideoDegauss ] }; //key { [ SunAudioLowerVolume, SunVideoLowerBrightness ] }; //key { [ SunAudioRaiseVolume, SunVideoRaiseBrightness ] }; //key { [ SunPowerSwitch, SunPowerSwitchShift ] }; }; // US/ASCII layout for a Type 4 Sun keyboard xkb_symbols "type4basic" { include "sun_vndr/us(sunbasic)" // A few alphanumeric keys are different key { [ 4, dollar, EuroSign ] }; key { [ 5, percent, EuroSign ] }; key { [ e, E, EuroSign ] }; key { [ Linefeed ] }; // Begin "Editing" section key { [ R2, R2, Print ] }; key { [ R3, R3, Scroll_Lock, Break ] }; key { [ R1, R1, Pause ] }; // End "Editing" section, begin "Keypad" key { [ R4, KP_Equal, KP_Equal ] }; }; xkb_symbols "type4" { include "sun_vndr/us(type4basic)" key { [ backslash, bar, brokenbar ] }; }; // US/ASCII layout for a Type 5 Sun keyboard xkb_symbols "type5basic" { include "sun_vndr/us(sunbasic)" include "sun_vndr/us(volumekeys)" // Begin "Editing" section key { [ R2, R2, Print, SunSys_Req ] }; key { [ R3, R3, Scroll_Lock ] }; key { [ R1, R1, Pause, Break ] }; // End "Editing" section }; xkb_symbols "type5" { include "sun_vndr/us(type5basic)" // A few alphanumeric keys are different key { [ 4, dollar, EuroSign ] }; key { [ 5, percent, EuroSign ] }; key { [ e, E , EuroSign ] }; key { [ backslash, bar, brokenbar ] }; }; // US/ASCII layout for a Type 5 Sun keyboard xkb_symbols "type5hobobasic" { include "sun_vndr/us(type5basic)" }; xkb_symbols "type5hobo" { include "sun_vndr/us(type5hobobasic)" // A few alphanumeric keys are different key { [ 4, dollar, EuroSign ] }; key { [ 5, percent, EuroSign ] }; key { [ e, E, EuroSign ] }; key { [ backslash, bar, brokenbar ] }; // Here is the hobo keypad: key { [ 7, ampersand, NoSymbol, NoSymbol, KP_7 ] }; key { [ 8, asterisk, NoSymbol, NoSymbol, KP_8 ] }; key { [ 9, parenleft, NoSymbol, NoSymbol, KP_9 ] }; key { [ 0, parenright, NoSymbol, NoSymbol, KP_Multiply] }; key { [ u, U, NoSymbol, NoSymbol, KP_4 ] }; key { [ i, I, NoSymbol, NoSymbol, KP_5 ] }; key { [ o, O, NoSymbol, NoSymbol, KP_6 ] }; key { [ p, P, NoSymbol, NoSymbol, KP_Subtract] }; key { [ j, J, NoSymbol, NoSymbol, KP_1 ] }; key { [ k, K, NoSymbol, NoSymbol, KP_2 ] }; key { [ l, L, NoSymbol, NoSymbol, KP_3 ] }; key { [ semicolon, colon, NoSymbol, NoSymbol, KP_Add ] }; key { [ Return, NoSymbol, NoSymbol, KP_Enter ] }; key { [ m, M, NoSymbol, NoSymbol, KP_0 ] }; key { [ period, greater, NoSymbol, NoSymbol, KP_Decimal] }; key { [ slash, question, NoSymbol, NoSymbol, KP_Divide ] }; }; xkb_symbols "type6" { include "sun_vndr/us(sunbasic)" include "sun_vndr/us(volumekeys)" include "eurosign(4)" include "level3(ralt_switch)" key { [ SunSys_Req ]}; }; xkb_symbols "pc101" { include "us(pc101)" key { [ Mode_switch, Meta_R ] }; }; xkb_symbols "pc102" { include "us(pc102)" key { [ Mode_switch, Meta_R ] }; }; xkb_symbols "pc104" { include "us(pc104)" }; xkb_symbols "pc101currency" { key { [ 4, dollar ], [ EuroSign ] }; key { [ 5, percent ], [ EuroSign ] }; key { [ e, E ], [ EuroSign ] }; key { [ backslash, bar ], [ brokenbar ]}; }; xkb_symbols "US101A_Sun" { key { [ 4, dollar ], [ EuroSign ] }; key { [ 5, percent ], [ EuroSign ] }; key { [ e, E ], [ EuroSign ] }; key { [ backslash, bar ], [ brokenbar ]}; // Begin "Editing" section key { [ L5, L5 ], [ Print, SunSys_Req ]}; key { [ L7, L7 ], [ Scroll_Lock ]}; key { [ L1, L1 ], [ Pause, Break ]}; key { [ L8, L8 ], [ Insert ]}; key { [ L6, L6 ], [ Home ]}; key { [ L3, L3 ], [ Prior ]}; key { [ L10, L10 ], [ Delete ]}; key { [ L9, L9 ], [ End ]}; key { [ L4, L4 ], [ Next ]}; key { [ Up ] }; key { [ Left ] }; key { [ Down ] }; key { [ Right ] }; key { [ R5, R5 ], [ KP_Divide ] }; key { [ R6, R6 ], [ KP_Multiply ] }; key { [ R7, KP_7 ], [ KP_7, Home ] }; key { [ KP_Up, KP_8 ], [ KP_8 ] }; key { [ R9, KP_9 ], [ KP_9, Prior ] }; key { [ KP_Add ] }; key { [ KP_Left, KP_4 ], [ KP_4 ] }; key { [ R11, KP_5 ], [ KP_5 ] }; key { [ KP_Right, KP_6 ], [ KP_6 ] }; key { [ R13, KP_1 ], [ KP_1, End ] }; key { [ KP_Down, KP_2 ], [ KP_2 ] }; key { [ R15, KP_3 ], [ KP_3, Next ] }; key { [ KP_Enter ] }; key { [ Meta_L ] }; key { [ Alt_L ] }; key { [ Multi_key ] }; };