//
// Keyboard modification for Apple keyboards
//
// $XFree86: xc/programs/xkbcomp/symbols/apple,v 1.2 2003/10/24 20:38:20 tsi Exp $

partial default modifier_keys
xkb_symbols "extended" {

    key <KPEQ> { [ KP_Equal ] }; 

// The key in the PC's Insert position is sometimes engraved Help (at least
// in Switzerland and Great Britain), with Insert sometimes above. But in the
// US and Canada, it remains Insert. So this should probably be an XkbOption,
// but I have to do more research.
// Perhaps Help should be the primary symbol with Insert in the 1st shift-level
//    key  <INS> { [ Help, Insert ] };
// The keys next to F12, labeled F13, F14, & F15 generate codes that XFree86
// claims not to generate. I think they should be equivalent to the PC keys
// Print Screen / SysRq, Scroll Lock, and Pause. Linux kernel bug?
//    key <PRSC> { [ F13 ] }; // should be keycode 93 or
//    key <FK13> { [ F13 ] }; // should be keycode 118
//    key <SCLK> { [ F14 ] }; // should be keycode 123 or
//    key <FK14> { [ F14 ] }; // should be keycode 119
//    key <PAUS> { [ F15 ] }; // should be keycode 127 or
//    key <FK15> { [ F15 ] }; // should be keycode 120
};

partial modifier_keys
xkb_symbols "laptop" {

    include "apple(extended)"

    // The real numlock key on the iBook (shared with F5) works internally to
    // the keyboard. It illuminates the Num_Lock led and locks the fn-key to
    // type only the keypad keys on the letter keys (U=4, I=5, O=6, P=*, etc.).
    // The key in the Num_lock position is engraved with Clear.
    override key <NMLK> { [ Clear ] };
    // The key engraved Delete sends BKSP. To get Delete, use Shift-Delete
    override key <BKSP> { [ BackSpace, Delete ] };
    // These keyboards only generate a <RALT> when pressing fn+Alt. This makes
    // it impossible to get to the third shift level on keys that are on
    // the fn-keypad, so use the Enter key (right of <SPC>) for Mode_switch,
    // and use fn+Enter (Apple's code for Menu) for KP_Enter.
    replace key <KPEN> { [ ISO_Level3_Shift ] };
    modifier_map Mod2  { ISO_Level3_Shift };	
    // Linux kernel bug with Menu on macs means this doesn't work yet
//    replace key <MENU> { [ KP_Enter ] }; // should be keycode 117
};

partial modifier_keys
xkb_symbols "laptop_bad_switch" {
    include "apple(laptop)"

    // Before XFree86 4.3, most keymaps were configured to generate the 
    // third-level shift from the second group as opposed to the third-level
    // of the first group. These keymaps require this mapping to work as
    // expected.
    replace key <KPEN> { [ Mode_switch ] };
    modifier_map Mod2  { Mode_switch };	
};
