apple revision c067fea9
1154daed1Smrg//
2154daed1Smrg// Keyboard modification for Apple keyboards
3154daed1Smrg//
4154daed1Smrg// $XFree86: xc/programs/xkbcomp/symbols/apple,v 1.2 2003/10/24 20:38:20 tsi Exp $
5154daed1Smrg
6154daed1Smrgpartial default modifier_keys
7154daed1Smrgxkb_symbols "extended" {
8154daed1Smrg
9154daed1Smrg    key <KPEQ> { [ KP_Equal ] }; 
10154daed1Smrg
11154daed1Smrg// The key in the PC's Insert position is sometimes engraved Help (at least
12154daed1Smrg// in Switzerland and Great Britain), with Insert sometimes above. But in the
13154daed1Smrg// US and Canada, it remains Insert. So this should probably be an XkbOption,
14154daed1Smrg// but I have to do more research.
15154daed1Smrg// Perhaps Help should be the primary symbol with Insert in the 1st shift-level
16154daed1Smrg//    key  <INS> { [ Help, Insert ] };
17154daed1Smrg// The keys next to F12, labeled F13, F14, & F15 generate codes that XFree86
18154daed1Smrg// claims not to generate. I think they should be equivalent to the PC keys
19154daed1Smrg// Print Screen / SysRq, Scroll Lock, and Pause. Linux kernel bug?
20154daed1Smrg//    key <PRSC> { [ F13 ] }; // should be keycode 93 or
21154daed1Smrg//    key <FK13> { [ F13 ] }; // should be keycode 118
22154daed1Smrg//    key <SCLK> { [ F14 ] }; // should be keycode 123 or
23154daed1Smrg//    key <FK14> { [ F14 ] }; // should be keycode 119
24154daed1Smrg//    key <PAUS> { [ F15 ] }; // should be keycode 127 or
25154daed1Smrg//    key <FK15> { [ F15 ] }; // should be keycode 120
26154daed1Smrg};
27154daed1Smrg
28154daed1Smrgpartial modifier_keys
29154daed1Smrgxkb_symbols "laptop" {
30154daed1Smrg
31154daed1Smrg    include "macintosh_vndr/apple(extended)"
32154daed1Smrg
33154daed1Smrg    // The real numlock key on the iBook (shared with F5) works internally to
34154daed1Smrg    // the keyboard. It illuminates the Num_Lock led and locks the fn-key to
35154daed1Smrg    // type only the keypad keys on the letter keys (U=4, I=5, O=6, P=*, etc.).
36154daed1Smrg    // The key in the Num_lock position is engraved with Clear.
37154daed1Smrg    override key <NMLK> { [ Clear ] };
38154daed1Smrg    // The key engraved Delete sends BKSP. To get Delete, use Shift-Delete
39154daed1Smrg    override key <BKSP> { [ BackSpace, Delete ] };
40154daed1Smrg    // These keyboards only generate a <RALT> when pressing fn+Alt. This makes
41154daed1Smrg    // it impossible to get to the third shift level on keys that are on
42154daed1Smrg    // the fn-keypad, so use the Enter key (right of <SPC>) for Mode_switch,
43154daed1Smrg    // and use fn+Enter (Apple's code for Menu) for KP_Enter.
44154daed1Smrg    replace key <KPEN> { [ ISO_Level3_Shift ] };
45154daed1Smrg    modifier_map Mod5  { ISO_Level3_Shift };	
46154daed1Smrg    // Linux kernel bug with Menu on macs means this doesn't work yet
47154daed1Smrg//    replace key <MENU> { [ KP_Enter ] }; // should be keycode 117
48154daed1Smrg};
49154daed1Smrg
50154daed1Smrgpartial modifier_keys
51154daed1Smrgxkb_symbols "laptop_bad_switch" {
52154daed1Smrg    // Kept for backward compatibility
53154daed1Smrg    include "macintosh_vndr/apple(laptop)"
54154daed1Smrg};
55c067fea9Sghen
56c067fea9Sghen// Long Aluminium Keyboards
57c067fea9Sghenpartial function_keys
58c067fea9Sghenxkb_symbols "alukbd" {
59c067fea9Sghen    // The base is a inet PC keyboard
60c067fea9Sghen    include "pc"
61c067fea9Sghen
62c067fea9Sghen    // Additional Fxx keys
63c067fea9Sghen    key <FK13> { [ F13 ] };
64c067fea9Sghen    key <FK14> { [ F14 ] };
65c067fea9Sghen    key <FK15> { [ F15 ] };
66c067fea9Sghen    key <FK16> { [ F16 ] };
67c067fea9Sghen    key <FK17> { [ F17 ] };
68c067fea9Sghen    key <FK18> { [ F18 ] };
69c067fea9Sghen    key <FK19> { [ F19 ] };
70c067fea9Sghen
71c067fea9Sghen    // On aluminium keyboards, Num_Lock is replace by Clear
72c067fea9Sghen    replace key <NMLK> { [ XF86Clear ] };
73c067fea9Sghen    // CAPS key is always Caps_Lock, even for JIS keyboards
74c067fea9Sghen    replace key <CAPS> { [ Caps_Lock ] };
75c067fea9Sghen
76c067fea9Sghen    // F1..F12 are multimedia keys when used with the 'Fn' key
77c067fea9Sghen    // Make those multimedia actions available via ISO_Level3_Shift too,
78c067fea9Sghen    // it is useful when the Fn key is remapped to something else (e.g. Insert)
79c067fea9Sghen    key <FK01> {
80c067fea9Sghen      type= "FOUR_LEVEL_X",
81c067fea9Sghen      symbols[Group1]= [ NoSymbol, XF86KbdBrightnessDown, NoSymbol, XF86_Switch_VT_1 ]
82c067fea9Sghen    };
83c067fea9Sghen    key <FK02> {
84c067fea9Sghen      type= "FOUR_LEVEL_X",
85c067fea9Sghen      symbols[Group1]= [ NoSymbol, XF86KbdBrightnessUp, NoSymbol, XF86_Switch_VT_2 ]
86c067fea9Sghen    };
87c067fea9Sghen    key <FK03> {
88c067fea9Sghen      type= "FOUR_LEVEL_X",
89c067fea9Sghen      symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_3 ]
90c067fea9Sghen    };
91c067fea9Sghen    key <FK04> {
92c067fea9Sghen      type= "FOUR_LEVEL_X",
93c067fea9Sghen      symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_4 ]
94c067fea9Sghen    };
95c067fea9Sghen    key <FK05> {
96c067fea9Sghen      type= "FOUR_LEVEL_X",
97c067fea9Sghen      symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_5 ]
98c067fea9Sghen    };
99c067fea9Sghen    key <FK06> {
100c067fea9Sghen      type= "FOUR_LEVEL_X",
101c067fea9Sghen      symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_6 ]
102c067fea9Sghen    };
103c067fea9Sghen    key <FK07> {
104c067fea9Sghen      type= "FOUR_LEVEL_X",
105c067fea9Sghen      symbols[Group1]= [ NoSymbol, XF86AudioPrev, NoSymbol, XF86_Switch_VT_7 ]
106c067fea9Sghen    };
107c067fea9Sghen    key <FK08> {
108c067fea9Sghen      type= "FOUR_LEVEL_X",
109c067fea9Sghen      symbols[Group1]= [ NoSymbol, XF86AudioPlay, NoSymbol, XF86_Switch_VT_8 ]
110c067fea9Sghen    };
111c067fea9Sghen    key <FK09> {
112c067fea9Sghen      type= "FOUR_LEVEL_X",
113c067fea9Sghen      symbols[Group1]= [ NoSymbol, XF86AudioNext, NoSymbol, XF86_Switch_VT_9 ]
114c067fea9Sghen    };
115c067fea9Sghen    key <FK10> {
116c067fea9Sghen      type= "FOUR_LEVEL_X",
117c067fea9Sghen      symbols[Group1]= [ NoSymbol, XF86AudioMute, NoSymbol, XF86_Switch_VT_10 ]
118c067fea9Sghen    };
119c067fea9Sghen    key <FK11> {
120c067fea9Sghen      type= "FOUR_LEVEL_X",
121c067fea9Sghen      symbols[Group1]= [ NoSymbol, XF86AudioLowerVolume, NoSymbol, XF86_Switch_VT_11 ]
122c067fea9Sghen    };
123c067fea9Sghen    key <FK12> {
124c067fea9Sghen      type= "FOUR_LEVEL_X",
125c067fea9Sghen      symbols[Group1]= [ NoSymbol, XF86AudioRaiseVolume, NoSymbol, XF86_Switch_VT_12 ]
126c067fea9Sghen    };
127c067fea9Sghen};
128c067fea9Sghen
129c067fea9Sghen// Aluminium Keyboard: make F13, F14, F15 PC-ish (Print, Scroll_Lock, Pause)
130c067fea9Sghenpartial function_keys keypad_keys
131c067fea9Sghenxkb_symbols "alupckeys" {
132c067fea9Sghen    key <FK13> {
133c067fea9Sghen      type= "PC_ALT_LEVEL2",
134c067fea9Sghen      symbols[Group1]= [ Print, Sys_Req ]
135c067fea9Sghen    };
136c067fea9Sghen    key <FK14> { [ Scroll_Lock ] };
137c067fea9Sghen    key <FK15> {
138c067fea9Sghen      type= "PC_CONTROL_LEVEL2",
139c067fea9Sghen      symbols[Group1]= [ Pause, Break ]
140c067fea9Sghen    };
141c067fea9Sghen    override key <NMLK> { [ Num_Lock, Pointer_EnableKeys ] };
142c067fea9Sghen};
143