1 // 2 // Keyboard modification for Apple keyboards 3 // 4 5 partial default modifier_keys 6 xkb_symbols "extended" { 7 8 key <KPEQ> { [ KP_Equal ] }; 9 10 // The key in the PC's Insert position is sometimes engraved Help (at least 11 // in Switzerland and Great Britain), with Insert sometimes above. But in the 12 // US and Canada, it remains Insert. So this should probably be an XkbOption, 13 // but I have to do more research. 14 // Perhaps Help should be the primary symbol with Insert in the 1st shift-level 15 // key <INS> { [ Help, Insert ] }; 16 // The keys next to F12, labeled F13, F14, & F15 generate codes that XFree86 17 // claims not to generate. I think they should be equivalent to the PC keys 18 // Print Screen / SysRq, Scroll Lock, and Pause. Linux kernel bug? 19 // key <PRSC> { [ F13 ] }; // should be keycode 93 or 20 // key <FK13> { [ F13 ] }; // should be keycode 118 21 // key <SCLK> { [ F14 ] }; // should be keycode 123 or 22 // key <FK14> { [ F14 ] }; // should be keycode 119 23 // key <PAUS> { [ F15 ] }; // should be keycode 127 or 24 // key <FK15> { [ F15 ] }; // should be keycode 120 25 }; 26 27 partial modifier_keys 28 xkb_symbols "laptop" { 29 30 include "macintosh_vndr/apple(extended)" 31 32 // The real numlock key on the iBook (shared with F5) works internally to 33 // the keyboard. It illuminates the Num_Lock led and locks the fn-key to 34 // type only the keypad keys on the letter keys (U=4, I=5, O=6, P=*, etc.). 35 // The key in the Num_lock position is engraved with Clear. 36 override key <NMLK> { [ Clear ] }; 37 // The key engraved Delete sends BKSP. To get Delete, use Shift-Delete 38 override key <BKSP> { [ BackSpace, Delete ] }; 39 // These keyboards only generate a <RALT> when pressing fn+Alt. This makes 40 // it impossible to get to the third shift level on keys that are on 41 // the fn-keypad, so use the Enter key (right of <SPC>) for Mode_switch, 42 // and use fn+Enter (Apple's code for Menu) for KP_Enter. 43 replace key <KPEN> { [ ISO_Level3_Shift ] }; 44 modifier_map Mod5 { ISO_Level3_Shift }; 45 // Linux kernel bug with Menu on macs means this doesn't work yet 46 // replace key <MENU> { [ KP_Enter ] }; // should be keycode 117 47 }; 48 49 partial modifier_keys 50 xkb_symbols "laptop_bad_switch" { 51 // Kept for backward compatibility 52 include "macintosh_vndr/apple(laptop)" 53 }; 54 55 // Long Aluminium Keyboards 56 partial function_keys 57 xkb_symbols "alukbd" { 58 // The base is a inet PC keyboard 59 include "pc" 60 61 // Additional Fxx keys 62 key <FK13> { [ F13 ] }; 63 key <FK14> { [ F14 ] }; 64 key <FK15> { [ F15 ] }; 65 key <FK16> { [ F16 ] }; 66 key <FK17> { [ F17 ] }; 67 key <FK18> { [ F18 ] }; 68 key <FK19> { [ F19 ] }; 69 70 // On aluminium keyboards, Num_Lock is replace by Clear 71 replace key <NMLK> { [ Clear ] }; 72 // CAPS key is always Caps_Lock, even for JIS keyboards 73 replace key <CAPS> { [ Caps_Lock ] }; 74 75 // F1..F12 are multimedia keys when used with the 'Fn' key 76 // Make those multimedia actions available via ISO_Level3_Shift too, 77 // it is useful when the Fn key is remapped to something else (e.g. Insert) 78 key <FK01> { 79 type= "FOUR_LEVEL_X", 80 symbols[Group1]= [ NoSymbol, XF86KbdBrightnessDown, NoSymbol, XF86_Switch_VT_1 ] 81 }; 82 key <FK02> { 83 type= "FOUR_LEVEL_X", 84 symbols[Group1]= [ NoSymbol, XF86KbdBrightnessUp, NoSymbol, XF86_Switch_VT_2 ] 85 }; 86 key <FK03> { 87 type= "FOUR_LEVEL_X", 88 symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_3 ] 89 }; 90 key <FK04> { 91 type= "FOUR_LEVEL_X", 92 symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_4 ] 93 }; 94 key <FK05> { 95 type= "FOUR_LEVEL_X", 96 symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_5 ] 97 }; 98 key <FK06> { 99 type= "FOUR_LEVEL_X", 100 symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_6 ] 101 }; 102 key <FK07> { 103 type= "FOUR_LEVEL_X", 104 symbols[Group1]= [ NoSymbol, XF86AudioPrev, NoSymbol, XF86_Switch_VT_7 ] 105 }; 106 key <FK08> { 107 type= "FOUR_LEVEL_X", 108 symbols[Group1]= [ NoSymbol, XF86AudioPlay, NoSymbol, XF86_Switch_VT_8 ] 109 }; 110 key <FK09> { 111 type= "FOUR_LEVEL_X", 112 symbols[Group1]= [ NoSymbol, XF86AudioNext, NoSymbol, XF86_Switch_VT_9 ] 113 }; 114 key <FK10> { 115 type= "FOUR_LEVEL_X", 116 symbols[Group1]= [ NoSymbol, XF86AudioMute, NoSymbol, XF86_Switch_VT_10 ] 117 }; 118 key <FK11> { 119 type= "FOUR_LEVEL_X", 120 symbols[Group1]= [ NoSymbol, XF86AudioLowerVolume, NoSymbol, XF86_Switch_VT_11 ] 121 }; 122 key <FK12> { 123 type= "FOUR_LEVEL_X", 124 symbols[Group1]= [ NoSymbol, XF86AudioRaiseVolume, NoSymbol, XF86_Switch_VT_12 ] 125 }; 126 }; 127 128 // Aluminium Keyboard: make F13, F14, F15 PC-ish (Print, Scroll_Lock, Pause) 129 partial function_keys keypad_keys 130 xkb_symbols "alupckeys" { 131 key <FK13> { 132 type= "PC_ALT_LEVEL2", 133 symbols[Group1]= [ Print, Sys_Req ] 134 }; 135 key <FK14> { [ Scroll_Lock ] }; 136 key <FK15> { 137 type= "PC_CONTROL_LEVEL2", 138 symbols[Group1]= [ Pause, Break ] 139 }; 140 override key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] }; 141 }; 142