[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#236086: Patch for Sun Keyboard VT Switching



tags 236086 + patch
thanks

Forewarning: This is my first Debian patch. Forgive me if I screw this
up. I'm just trying to help as best as I know how.

The VT switching for Sun keyboards was broken because important keysym
information was missing from /etc/X11/xkb/symbols/sun/us.

I fixed this problem by creating the following fixed version of the
file, which I will paste below, as well as attach to my message. The
edits necessary to make this work are between the "// mhall" comments,
so that whomever is responsible for the keyboard description files will
know where to look.

I hope somebody finds this helpful. Thanks in advance, X developers, for
having some understanding if I have created a mess. I appreciate your
hard work and just want to help.

// $Xorg: us,v 1.4 2001/02/09 02:05:53 xorgcvs Exp $
//
//Copyright 1996, 1998  The Open Group
//
//Permission to use, copy, modify, distribute, and sell this software
and its
//documentation for any purpose is hereby granted without fee, provided
that
//the above copyright notice appear in all copies and that both that
//copyright notice and this permission notice appear in supporting
//documentation.
//
//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.
//
// $XFree86: xc/programs/xkbcomp/symbols/sun/us,v 1.6 2001/12/14
20:02:05 dawes Exp $
//
// 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
    // mhall
    key <FK01> { type="CTRL+ALT", symbols[Group1]= [ F1,
XF86_Switch_VT_1 ] };
    key <FK02> { type="CTRL+ALT", symbols[Group1]= [ F2,
XF86_Switch_VT_2 ] };
    key <FK03> { type="CTRL+ALT", symbols[Group1]= [ F3,
XF86_Switch_VT_3 ] };
    key <FK04> { type="CTRL+ALT", symbols[Group1]= [ F4,
XF86_Switch_VT_4 ] };
    key <FK05> { type="CTRL+ALT", symbols[Group1]= [ F5,
XF86_Switch_VT_5 ] };
    key <FK06> { type="CTRL+ALT", symbols[Group1]= [ F6,
XF86_Switch_VT_6 ] };
    key <FK07> { type="CTRL+ALT", symbols[Group1]= [ F7,
XF86_Switch_VT_7 ] };
    key <FK08> { type="CTRL+ALT", symbols[Group1]= [ F8,
XF86_Switch_VT_8 ] };
    key <FK09> { type="CTRL+ALT", symbols[Group1]= [ F9,
XF86_Switch_VT_9 ] };
    key <FK10> { type="CTRL+ALT", symbols[Group1]= [ F10,
XF86_Switch_VT_10 ] };
    // mhall
    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
    // mhall
    key <FK01> { type="CTRL+ALT", symbols[Group1]= [ F1,
XF86_Switch_VT_1 ] };
    key <FK02> { type="CTRL+ALT", symbols[Group1]= [ F2,
XF86_Switch_VT_2 ] };
    key <FK03> { type="CTRL+ALT", symbols[Group1]= [ F3,
XF86_Switch_VT_3 ] };
    key <FK04> { type="CTRL+ALT", symbols[Group1]= [ F4,
XF86_Switch_VT_4 ] };
    key <FK05> { type="CTRL+ALT", symbols[Group1]= [ F5,
XF86_Switch_VT_5 ] };
    key <FK06> { type="CTRL+ALT", symbols[Group1]= [ F6,
XF86_Switch_VT_6 ] };
    key <FK07> { type="CTRL+ALT", symbols[Group1]= [ F7,
XF86_Switch_VT_7 ] };
    key <FK08> { type="CTRL+ALT", symbols[Group1]= [ F8,
XF86_Switch_VT_8 ] };
    key <FK09> { type="CTRL+ALT", symbols[Group1]= [ F9,
XF86_Switch_VT_9 ] };
    key <FK10> { type="CTRL+ALT", symbols[Group1]= [ F10,
XF86_Switch_VT_10 ] };
    // mhall
    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  { Alt_L };
    modifier_map Mod2  { Num_Lock };
    modifier_map Mod3  { Mode_switch };
    modifier_map Mod4  { Meta_L, Meta_R};
    modifier_map Mod5  { Scroll_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)"
};

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

    key <RTSH> { [ Shift_R  ] };
    key <LALT> { [ Alt_L  ] };
    key <RCTL> { [ Control_R ] };
    key <RALT> { [ Alt_R  ] };
    key <LMTA> { [ Meta_L  ] };
    key <RMTA> { [ Meta_R  ] };
    key <COMP> { [ Multi_key ] };

    // 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 ] };
    key <FK12> { [ F12 ] };
    // End "Function" section

    // Begin "Editing" section
    key <PRSC> {
       type= "PC_SYSRQ",
       symbols[Group1]= [ Print, Execute ]
    };
    key <SCLK> { [ Scroll_Lock ] };
    key <PAUS> {
       type= "PC_BREAK",
       symbols[Group1]= [ Pause, Break ]
    };
    key  <INS> { [ Insert ] };
    key <HOME> { [ Home ] };
    key <PGUP> { [ Prior ] };
    key <DELE> { [ Delete ] };
    key  <END> { [ End ] };
    key <PGDN> { [ Next ] };

    key   <UP> { [ Up ] };
    key <LEFT> { [ Left ] };
    key <DOWN> { [ Down ] };
    key <RGHT> { [ Right ] };

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

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

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

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

    key  <KP0> { [ KP_Insert, KP_0  ] };
    key <KPDL> { [ KP_Delete, KP_Decimal ] };
    // End "Keypad" section

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

    // from symbols/sun/us(type5)
    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  ] };
    key <HELP> { [ Help  ] };

    // 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 6 Sun keyboard w/ broken OpenLook keymap
xkb_symbols "sun6ol" {
    override "sun/us(sun6)"
    include "sun/us(broken_openlook_map)"
};


-------------------------------
Regards,

Matt R Hall
m_hall@pacific.edu
-------------------------------
Student of Computer Science
-------------------------------
The University of the Pacific
Stockton, CA
United States of America

Attachment: xkb-symbols-sun-us
Description: Binary data


Reply to: