// $XConsortium: us /main/4 1996/08/31 12:20:41 kaleb $
//
//Copyright (c) 1996  X Consortium
//
//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, sublicense, and/or sell copies of the Software, and to
//permit persons to whom the Software is furnished to do so, subject to
//the following conditions:
//
//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 X CONSORTIUM 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 X Consortium 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 X Consortium.
//
// US/ASCII layout for a Type 4 Sun keyboard
xkb_symbols "sun4" {
    include "us(basic)"

    // A few alphanumeric keys are different
    key <TLDE> { [     grave,	asciitilde	],	[ acute	]	};
    key <AC11> { [ apostrophe,	quotedbl	],	[ acute	]	};

    key <RTSH> { [ 	Shift_R			]	};

    key <LALT> { [	Alt_L		]	};
    key <ALGR> { [	Mode_switch	]	};
    key <LMTA> { [	Meta_L		]	};
    key <RMTA> { [	Meta_R		]	};
    key <LNFD> { [	Linefeed	]	};
    key <COMP> { [	Multi_key	]	};
    // End alphanumeric section

    // Begin "Function" section
    key <FK01> { [ F1	]				};
    key <FK02> { [ F2	]				};
    key <FK03> { [ F3	]				};
    key <FK04> { [ F4	]				};
    key <FK05> { [ F5	]				};
    key <FK06> { [ F6	]				};
    key <FK07> { [ F7	]				};
    key <FK08> { [ F8	]				};
    key <FK09> { [ F9	]				};
    key <FK10> { [ F10	]				};
    key <FK11> { [ F11	],		[ SunF36]	};
    key <FK12> { [ F12	],		[ SunF37]	};
    key <STOP> { [ Cancel	],	[ F11	]	};
    key <AGAI> { [ Redo		],	[ F12	]	};
    key <PROP> { [ SunProps	],	[ F13	]	};
    key <UNDO> { [ Undo		],	[ F14	]	};
    key <FRNT> { [ SunFront	],	[ F15	]	};
    key <COPY> { [ SunCopy	],	[ F16	]	};
    key <OPEN> { [ SunOpen	],	[ F17	]	};
    key <PAST> { [ SunPaste	],	[ F18	]	};
    key <FIND> { [ Find		],	[ F19	]	};
    key <CUT>  { [ SunCut	],	[ F20	]	};
    // End "Function" section

    // Begin "Editing" section
    key <PRSC> { [ Print			],[ 	F21	]	};
    key <SCLK> { [ Break,	Scroll_Lock	],[ 	F22	]	};
    key <PAUS> { [ Pause			],[ 	F23	]	};
    key <DELE> { [ Delete			]			};
    key <HELP> { [ Help				]			};

    // End "Editing" section, begin "Keypad"
    key <NMLK> { [ Num_Lock 		]				};
    key <KPEQ> { [ KP_Equal 		],	[	F24	]	};
    key <KPDV> { [ KP_Divide		],	[	F25	]	};
    key <KPMU> { [ KP_Multiply		],	[	F26	]	};
    key <KPSU> { [ KP_Subtract		]				};

    key  <KP7> { [  KP_Home,	KP_7	],	[	F27	]	};
    key  <KP8> { [  KP_Up,	KP_8	],	[	F28	]	};
    key  <KP9> { [  KP_Prior,	KP_9	],	[	F29	]	};
    key <KPAD> { [  	KP_Add		]				};

    key  <KP4> { [  KP_Left,	KP_4	],	[	F30	]	};
    key  <KP5> { [  KP_Begin,	KP_5	],	[	F31	]	};
    key  <KP6> { [  KP_Right,	KP_6	],	[	F32	]	};

    key  <KP1> { [  KP_End,	KP_1	],	[	F33	]	};
    key  <KP2> { [  KP_Down,	KP_2	],	[	F34	]	};
    key  <KP3> { [  KP_Next,	KP_3	],	[	F35	]	};
    key <KPEN> { [  	KP_Enter	]				}; 
    key  <KP0> { [  KP_Insert,	KP_0	]	};
    key <KPDL> { [  KP_Delete,	KP_Decimal ]	};
    // End "Keypad" section


    // begin modifier mappings
    modifier_map Shift  	{ Shift_R };
    modifier_map Mod1   	{ Meta_L, Meta_R };
    modifier_map Mod2   	{ Alt_L };
    modifier_map Mod3   	{ Mode_switch };
    modifier_map Mod4   	{ Num_Lock };
    modifier_map Mod5   	{ F13, F18, F20 };
};

hidden partial function_keys xkb_symbols "broken_openlook_map" {
    key <STOP> { [ F11	],	[ Cancel	]	};
    key <AGAI> { [ F12	],	[ Redo		]	};
    key <PROP> { [ F13	],	[ SunProps	]	};
    key <UNDO> { [ F14	],	[ Undo		]	};
    key <FRNT> { [ F15	],	[ SunFront	]	};
    key <COPY> { [ F16	],	[ SunCopy	]	};
    key <OPEN> { [ F17	],	[ SunOpen	]	};
    key <PAST> { [ F18	],	[ SunPaste	]	};
    key <FIND> { [ F19	],	[ Find		]	};
    key <CUT>  { [ F20	],	[ SunCut	]	};
};

// US/ASCII layout for a Type 4 Sun keyboard w/ broken OpenLook keymap
xkb_symbols "sun4ol" {
    override "sun/us(sun4)"
    include "sun/us(broken_openlook_map)"
};

// US/ASCII layout for a Type 5 Sun keyboard
xkb_symbols "sun5" {
    augment "us(basic)"

    // A alphanumeric keys are different
    key <TLDE> { [     grave,	asciitilde	],	[ acute	]	};
    key <AC11> { [ apostrophe,	quotedbl	],	[ acute	]	};

    key <RTSH> { [ 	Shift_R			]	};

    key <LALT> { [	Alt_L		]	};
    key <ALGR> { [	Mode_switch	]	};
    key <LMTA> { [	Meta_L		]	};
    key <RMTA> { [	Meta_R		]	};
    key <COMP> { [	Multi_key	]	};
    // End alphanumeric section

    // Begin "Function" section
    key <FK01> { [ F1	]				};
    key <FK02> { [ F2	]				};
    key <FK03> { [ F3	]				};
    key <FK04> { [ F4	]				};
    key <FK05> { [ F5	]				};
    key <FK06> { [ F6	]				};
    key <FK07> { [ F7	]				};
    key <FK08> { [ F8	]				};
    key <FK09> { [ F9	]				};
    key <FK10> { [ F10	]				};
    key <FK11> { [ F11	],	[ SunF36	]	};
    key <FK12> { [ F12	],	[ SunF37	]	};
    key <STOP>  { [ Cancel ],	[ F11		]	};
    key <AGAI> { [Redo	],	[ F12		]	};
    key <PROP> { [ SunProps	],	[ F13	]	};
    key <UNDO>  { [ Undo	],	[ F14	]	};
    key <FRNT> { [ SunFront	],	[ F15	]	};
    key <COPY>  { [ SunCopy	],	[ F16	]	};
    key <OPEN>  { [ SunOpen	],	[ F17	]	};
    key <PAST> { [ SunPaste	],	[ F18	]	};
    key <FIND>  { [ Find	],	[ F19	]	};
    key <CUT>   { [ SunCut	],	[ F20	]	};
    // End "Function" section

    // Begin "Editing" section
    key <PRSC> { [ Print 		],	[ Sys_Req, SunSys_Req ]	};
    key <SCLK> { [ Scroll_Lock		]				};
    key <PAUS> { [ Pause		],	[	Break	]	};
    key <LEFT> { [ Left			]			};
    key <RGHT> { [ Right			]			};
    key <UP>   { [ Up			]			};
    key <DOWN> { [ Down			]			};

    key <DELE> { [ Delete		]			};
    key <INS>  { [ Insert		]			};
    key <PGUP> { [ Prior			]			};
    key <PGDN> { [ Next			]			};
    key <HOME> { [ Home			]			};
    key <END>  { [ End			]			};
    key <HELP> { [ Help			]			};

    // End "Editing" section, begin "Keypad"
    key <NMLK> { [ Num_Lock 		]				};
    key <KPDV> { [ KP_Divide		],	[	F25	]	};
    key <KPMU> { [ KP_Multiply		],	[	F26	]	};
    key <KPSU> { [ KP_Subtract		]				};

    key  <KP7> { [  KP_Home,	KP_7	],	[	F27	]	};
    key  <KP8> { [  KP_Up,	KP_8	],	[	F28	]	};
    key  <KP9> { [  KP_Prior,	KP_9	],	[	F29	]	};
    key <KPAD> { [  	KP_Add		]				};

    key  <KP4> { [  KP_Left,	KP_4	],	[	F30	]	};
    key  <KP5> { [  KP_Begin,	KP_5	],	[	F31	]	};
    key  <KP6> { [  KP_Right,	KP_6	],	[	F32	]	};

    key  <KP1> { [  KP_End,	KP_1	],	[	F33	]	};
    key  <KP2> { [  KP_Down,	KP_2	],	[	F34	]	};
    key  <KP3> { [  KP_Next,	KP_3	],	[	F35	]	};
    key <KPEN> { [  	KP_Enter	]				};

    key  <KP0> { [  KP_Insert,	KP_0	]	};
    key <KPDL> { [  KP_Delete,	KP_Decimal ]	};
    // End "Keypad" section, 
    // begin "four keys up on the right"

    key <MUTE> { [  SunAudioMute,	SunVideoDegauss		]	};
    key <VOL-> { [  SunAudioLowerVolume,SunVideoLowerBrightness ]	};
    key <VOL+> { [  SunAudioRaiseVolume,SunVideoRaiseBrightness	]	};
    key <POWR> { [  SunPowerSwitch,	SunPowerSwitchShift	]	};

    // begin modifier mappings
    modifier_map Shift  { Shift_R };
    modifier_map Mod1	{ Meta_L, Meta_R };
    modifier_map Mod2	{ Alt_L };
    modifier_map Mod3	{ Mode_switch };
    modifier_map Mod4	{ Num_Lock };
};

// US/ASCII layout for a Type 5 Sun keyboard w/ broken OpenLook keymap
xkb_symbols "sun5ol" {
    override "sun/us(sun5)"
    include "sun/us(broken_openlook_map)"
};

