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