macintosh revision 154daed1
1// $XFree86: xc/programs/xkbcomp/geometry/macintosh,v 1.3 2003/08/09 14:30:47 pascal Exp $
2//
3// Some modifications (<eqdar@castalie.org>) :
4// - Added a <LSGT> key
5// - Fixed the shape of the <RTRN> key
6// - Moved <BKSL> to the 'AC' row
7// - Added a special Macintosh sysctl key
8// - Minor changes (Function keys shape, LED position...)
9
10// Minor changes
11// - Mail address above is no longer valid
12// - Changed {L,R}MTA to {L,R}WIN, which are defined
13// 2005/10 -- Simon Vallet <svallet@gmail.com>
14
15default xkb_geometry "macintosh" {
16
17    description= "Apple Extended Keyboard II";
18    width = 475;
19    height = 194;
20
21    shape.cornerRadius= 1;
22    shape "NORM" { { [ 18,18] }, { [2,1], [ 16,17] } };
23    shape "TLDE" { { [ 23,18] }, { [2,1], [ 21,17] } };
24    shape "BKSP" { { [ 33,18] }, { [2,1], [ 31,17] } };
25    shape "TAB"  { { [ 33,18] }, { [2,1], [ 31,17] } };
26    shape "RTRN" { 
27        { [0,0],[23,0],[23,37],[4,37],[4,18],[0,18] }, 
28        { [2,1],[21,1],[21,36],[6,36],[6,17],[2,17] } };
29    shape "CAPS" { { [ 37,18] }, { [2,1], [ 35,17] } };
30    shape "LCTL" { { [ 28,18] }, { [2,1], [ 26,17] } };
31    shape "LALT" { { [ 22,18] }, { [2,1], [ 20,17] } };
32    shape "LMTA" { { [ 28,18] }, { [2,1], [ 26,17] } };
33    shape "LFSH" { { [ 28,18] }, { [2,1], [ 26,17] } };
34    shape "RCTL" { { [ 28,18] }, { [2,1], [ 26,17] } };
35    shape "RALT" { { [ 22,18] }, { [2,1], [ 20,17] } };
36    shape "RMTA" { { [ 28,18] }, { [2,1], [ 26,17] } };
37    shape "RTSH" { { [ 47,18] }, { [2,1], [ 45,17] } };
38    shape "SPCE" { { [123,18] }, { [2,1], [121,17] } };
39    shape "KP0"  { { [ 37,18] }, { [2,1], [ 35,17] } };
40    shape "KPEN" { { [ 18,37] }, { [2,1], [ 16,36] } };
41    // Macintosh keyboards have a special sysctl key at the top right
42    shape "AAPL" { 
43        { [ 0,0], [ 18,0], [ 18,18], [ 0,18] },
44        { [ 1,1], [ 17,1], [ 17,17], [ 1,17] },
45        { [ 8,5], [ 8,12], [  2,9] } };
46
47    shape "LEDS" { cornerRadius = 0, { [ 55,19] } };
48    shape "LED"  { cornerRadius = 0, { [  8, 2] } };
49
50    solid "LedPanel" {
51	shape= "LEDS";
52        top = 48;
53        left = 378;
54    };
55
56    indicator.onColor= "green";
57    indicator.offColor= "green30";
58    indicator.top = 50;
59    indicator.shape= "LED";
60    indicator "NumLock"    { left = 381; };
61    indicator "CapsLock"   { left = 398; };
62    indicator "ScrollLock" { left = 415; };
63    text.top= 55;
64    text.color= "black";
65    text "NumLockLabel"    { left = 381; text = "Num\nLock";    };
66    text "CapsLockLabel"   { left = 398; text = "Caps\nLock";   };
67    text "ScrollLockLabel" { left = 415; text = "Scroll\nLock"; };
68
69    section.left= 19;
70    row.left= 1;
71    key.shape= "NORM";
72    key.gap=  1;
73
74    section "Function" {
75        top = 48;
76	row {
77	    top= 1;
78            keys { <ESC>, 
79                   { <FK01>, 20 }, <FK02>, <FK03>, <FK04>,
80                   { <FK05>, 11 }, <FK06>, <FK07>, <FK08>,
81                   { <FK09>, 11 }, <FK10>, <FK11>, <FK12>,
82                   { <PRSC>, 10 }, <SCLK>, <PAUS>,
83                   // This is the sysctl key on macintosh keyboards
84                   // keycode is 222 with a 4.21 kernel, which is <I5E>
85                   { <I5E>, "AAPL", 67 }
86	    };
87	};
88    }; // End of "Function" section
89
90    section "Alpha" {
91        top = 87;
92	row {
93	    top= 1;
94            keys { { <TLDE>, "TLDE" }, <AE01>, <AE02>, <AE03>,
95                   <AE04>, <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
96		   <AE10>, <AE11>, <AE12>, { <BKSP>, "BKSP" }
97	    };
98	};
99	row {
100	    top= 20;
101	    keys { { <TAB>, "TAB" },  <AD01>, <AD02>, <AD03>,
102                   <AD04>, <AD05>, <AD06>, <AD07>, <AD08>, <AD09>,
103                   <AD10>, <AD11>, <AD12>, { <RTRN>, "RTRN" }
104	    };
105	};
106	row {
107	    top= 39;
108	    keys { { <CAPS>, "CAPS" }, <AC01>, <AC02>, <AC03>,
109                   <AC04>, <AC05>, <AC06>, <AC07>, <AC08>, <AC09>,
110                   <AC10>, <AC11>, <BKSL>
111	    };
112	};
113	row {
114	    top= 58;
115            keys { { <LFSH>, "LFSH" }, <LSGT>, <AB01>, <AB02>,
116                   <AB03>, <AB04>, <AB05>, <AB06>, <AB07>, <AB08>,
117                   <AB09>, <AB10>, { <RTSH>, "RTSH" }
118	    };
119	};
120	row {
121	    top= 77;
122	    keys { { <LCTL>, "LCTL" }, { <LALT>, "LALT" },
123                   { <LWIN>, "LMTA" },
124                   { <SPCE>, "SPCE" }, 
125                   { <RWIN>, "RMTA" },
126	           { <RALT>, "RALT" }, { <RCTL>, "RCTL" }
127	    };
128	};
129    }; // End of "Alpha" section
130
131    section "Editing" {
132        top = 87;
133        left = 314;
134	row {
135	    top= 1;
136	    keys { <INS>, <HOME>, <PGUP> };
137	};
138        row {
139	    top= 20;
140	    keys { <DELE>, <END>, <PGDN> };
141	};
142	row {
143	    top= 58;
144	    left= 20;
145	    keys { <UP> };
146	};
147	row {
148	    top= 77;
149	    keys { <LEFT>, <DOWN>, <RGHT> };
150	};
151    }; // End of "Editing" section
152
153    // Begin of "Keypad" section
154    section "Keypad" {
155        top = 87;
156        left = 380;
157	row {
158	    top= 1;
159            keys { <NMLK>, <KPEQ>, <KPDV>, <KPMU> };
160	};
161	row {
162	    top= 20;
163	    keys { <KP7>, <KP8>, <KP9>, <KPSU> };
164	};
165	row {
166	    top= 39;
167	    keys { <KP4>, <KP5>, <KP6>, <KPAD> };
168	};
169	row {
170	    top= 58;
171	    keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPEN" } };
172	};
173	row {
174	    top= 77;
175	    keys { { <KP0>, "KP0" },  <KPDL> };
176	};
177    }; // End of "Keypad" section
178
179}; // End of "default" geometry
180
181
182// This section describes the geometry of the "Apple Pro" keyboard
183// included with NewWorld desktop machines
184//
185// It adds four new keysyms, labeled SDDN, SDUP, SDNO, EJCT.
186//
187// 2005/10 -- Simon Vallet <svallet@gmail.com>
188
189xkb_geometry "applepro" {
190
191    description= "Apple Pro Keyboard";
192    width = 455;
193    height = 150;
194
195    shape.cornerRadius= 1;
196    shape "NORM" { { [ 18, 18] }, { [2, 1], [ 16, 15] } };
197    shape "FUNC" { { [ 18, 21] }, { [2, 1], [ 16, 16] } };
198    shape "BKSP" { { [ 38, 18] }, { [2, 1], [ 36, 15] } };
199    shape "TAB"  { { [ 29, 18] }, { [2, 1], [ 26, 15] } };
200    shape "LFSH" { { [ 28, 18] }, { [2, 1], [ 26, 15] } };
201    shape "RTSH" { { [ 47, 18] }, { [2, 1], [ 45, 15] } };
202
203    shape "RTRN" {
204        { [0,0],[27,0],[27,37],[4,37],[4,18],[0,18] }, 
205        { [2,1],[25,1],[25,34],[6,34],[6,15],[2,15] } };
206
207    shape "CAPS" { { [ 32, 18] }, { [2, 1], [ 26, 15] } };
208    shape "LCTL" { { [ 28, 20] }, { [2, 1], [ 26, 17] } };
209    shape "RCTL" { { [ 28, 20] }, { [2, 1], [ 26, 17] } };
210    shape "LALT" { { [ 23, 20] }, { [2, 1], [ 21, 17] } };
211    shape "RALT" { { [ 23, 20] }, { [2, 1], [ 21, 17] } };
212    shape "LMTA" { { [ 28, 20] }, { [2, 1], [ 26, 17] } };
213    shape "RMTA" { { [ 28, 20] }, { [2, 1], [ 26, 17] } };
214    shape "SPCE" { { [121, 20] }, { [3, 1], [118, 17] } };
215    shape "BOTM" { { [ 18, 20] }, { [2, 1], [ 16, 17] } }; 
216
217    shape "KP0"  { { [ 37, 20] }, { [2, 1], [ 35, 17] } };
218    shape "KPEN" { { [ 18, 39] }, { [2, 1], [ 16, 36] } };
219
220    section.left = 7;
221    row.left = 1;
222    key.gap =  1;
223    key.shape = "NORM";
224
225    section "Function" {
226       key.shape = "FUNC";
227        top = 26;
228       row {
229           top= 1;
230            keys { <ESC>, 
231                   { <FK01>, 14 }, <FK02>, <FK03>, <FK04>,
232                   { <FK05>, 14 }, <FK06>, <FK07>, <FK08>,
233                   { <FK09>, 14 }, <FK10>, <FK11>, <FK12>,
234                   { <PRSC>, 11 }, <SCLK>, <PAUS>,
235                  { <SDDN>, 11 }, <SDUP>, <SDNO>, <EJCT>
236            };
237       };
238    }; // End of "Function" section
239
240
241    section "Alpha" {
242        top = 48;
243       row {
244           top= 1;
245            keys { <TLDE>, <AE01>, <AE02>, <AE03>,
246                   <AE04>, <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
247                  <AE10>, <AE11>, <AE12>, { <BKSP>, "BKSP" }
248           };
249       };
250       row {
251           top= 20;
252           keys { { <TAB>, "TAB" },  <AD01>, <AD02>, <AD03>,
253                   <AD04>, <AD05>, <AD06>, <AD07>, <AD08>, <AD09>,
254                   <AD10>, <AD11>, <AD12>, { <RTRN>, "RTRN" }
255           };
256       };
257       row {
258           top= 39;
259           keys { { <CAPS>, "CAPS" }, <AC01>, <AC02>, <AC03>,
260                   <AC04>, <AC05>, <AC06>, <AC07>, <AC08>, <AC09>,
261                   <AC10>, <AC11>, <BKSL>
262           };
263       };
264       row {
265           top= 58;
266           keys { { <LFSH>, "LFSH" }, <LSGT>, <AB01>, <AB02>,
267                   <AB03>, <AB04>, <AB05>, <AB06>, <AB07>, <AB08>,
268                   <AB09>, <AB10>, { <RTSH>, "RTSH" }
269           };
270       };
271       row {
272           top= 77;
273           keys { { <LCTL>, "LCTL" }, { <LALT>, "LALT" },
274                       { <LWIN>, "LMTA" },
275                       { <SPCE>, "SPCE" }, 
276                       { <RWIN>, "RMTA" },
277                       { <RALT>, "RALT" }, { <RCTL>, "RCTL" }
278           };
279       };
280    }; // End of "Alpha" section
281
282    section "Editing" {
283        top = 48;
284        left = 303;
285       row {
286           top= 1;
287           keys { <INS>, <HOME>, <PGUP> };
288       };
289        row {
290           top= 20;
291           keys { <DELE>, <END>, <PGDN> };
292       };
293       row {
294           top= 58;
295           left= 20;
296           keys { <UP> };
297       };
298       row {
299           top= 77;
300           key.shape = "BOTM";
301           keys { <LEFT>, <DOWN>, <RGHT> };
302       };
303    }; // End of "Editing" section
304
305    // Begin of "Keypad" section
306    section "Keypad" {
307        top = 48;
308        left = 370;
309       row {
310           top= 1;
311            keys { <NMLK>, <KPEQ>, <KPDV>, <KPMU> };
312       };
313       row {
314           top= 20;
315           keys { <KP7>, <KP8>, <KP9>, <KPSU> };
316       };
317       row {
318           top= 39;
319           keys { <KP4>, <KP5>, <KP6>, <KPAD> };
320       };
321       row {
322           top= 58;
323           keys { <KP1>, <KP2>, <KP3>, { <KPEN>, "KPEN" } };
324       };
325       row {
326           top= 77;
327           keys { { <KP0>, "KP0" },  { <KPDL>, "BOTM" } };
328       };
329    }; // End of "Keypad" section
330
331}; // End of "applepro" geometry
332
333xkb_geometry "macbook78" {
334
335    description= "Apple Laptop 78-key (US)";
336    width= 273;
337    height= 110;
338
339    shape.cornerRadius= 0;
340    shape "ESC"  { { [ 21,9] }, cornerRadius=1, { [0,1], [ 19,8] } };
341    shape "FUNC" { { [ 18,9] }, cornerRadius=1, { [2,1], [ 16,8] } };
342    shape "EJCT" { { [ 20,9] }, cornerRadius=1, { [2,1], [ 20,8] } };
343    shape "DEGR" { { [ 16,18] }, cornerRadius=1, { [0,2], [ 14,16] } };
344    shape "NORM" { { [ 18,18] }, cornerRadius=1, { [2,2], [ 16,16] } };
345    shape "BKSP" { { [ 25,18] }, cornerRadius=1, { [2,2], [ 25,16] } };
346    shape "TABK" { { [ 24,18] }, cornerRadius=1, { [0,2], [ 22,16] } };
347    shape "BKSL" { { [ 17,18] }, cornerRadius=1, { [2,2], [17,16] } };
348    shape "RTRN" { { [ 31,18] }, cornerRadius=1, { [2,2], [31,16] } };
349    shape "CAPS" { { [ 29,18] }, cornerRadius=1, { [0,2], [ 27,16] } };
350    shape "LFSH" { { [ 40,18] }, cornerRadius=1, { [0,2], [ 38,16] } };
351    shape "RTSH" { { [ 39,18] }, cornerRadius=1, { [2,2], [ 39,16] } };
352    shape "APPL" { { [ 23,18] }, cornerRadius=1, { [2,2], [ 21,16] } };
353    shape "SPCE" { { [ 94,18] }, cornerRadius=1, { [2,2], [ 92,16] } };
354    shape "ARRO" { { [ 17,9] }, cornerRadius=1, { [2,1], [ 15,8] } };
355
356    shape "LED"  { cornerRadius= 1, { [  2,  2 ] } };
357
358    indicator.onColor= "green";
359    indicator.offColor= "gray";
360    indicator.shape= "LED";
361    indicator "Num Lock"   { top=4; left= 119; };
362    indicator "Caps Lock"  { top=53; left= 4; };
363
364    section.left=0;
365    row.left= 1;
366    key.shape= "FUNC";
367    key.gap= 1;
368    section "Function" {
369	top= 0;
370	row {
371	    top= 1;
372	    keys {  {<ESC>, "ESC" },
373		    <FK01>, <FK02>, <FK03>, <FK04>,
374		    <FK05>, <FK06>, <FK07>, <FK08>,
375		    <FK09>, <FK10>, <FK11>, <FK12>,
376                    {<K6C>, "EJCT" }
377	    };
378	};
379    }; // End of "Function" section
380
381    key.shape= "NORM";
382    section "Alpha" {
383	top= 10;
384	row {
385	    top= 1;
386	    keys { {<TLDE>, "DEGR"},
387                   <AE01>, <AE02>, <AE03>, <AE04>,
388		   <AE05>, <AE06>, <AE07>, <AE08>,
389                   <AE09>, <AE10>, <AE11>, <AE12>,
390		   { <BKSP>, "BKSP" }
391	    };
392	};
393	row {
394	    top= 20;
395	    keys { { <TAB>, "TABK"},
396		   <AD01>, <AD02>, <AD03>, <AD04>, <AD05>, 
397		   <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, 
398		   <AD11>, <AD12>, 
399                   { <BKSL>, "BKSL" }
400	    };
401	};
402	row {
403	    top= 39;
404	    keys { { <CAPS>, "CAPS" },
405		   <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, 
406		   <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, 
407		   <AC11>, 
408                   { <RTRN>, "RTRN" }
409	    };
410        };
411	row {
412	    top= 58;
413	    keys { { <LFSH>, "LFSH"},
414		   <AB01>, <AB02>, <AB03>, <AB04>, <AB05>, 
415		   <AB06>, <AB07>, <AB08>, <AB09>, <AB10>, 
416		   { <RTSH>, "RTSH" }
417	    };
418	};
419	row {
420	    top= 77;
421	    keys { {<FN>, "DEGR"}, 
422                   <LCTL>, <LALT>, 
423                   {<LMTA>, "APPL"},
424                   {<SPCE>, "SPCE" }, 
425                   {<RMTA>, "APPL"},
426                   <KPEN>
427	    };
428	};
429
430    }; // End of "Alpha" section
431
432    key.shape= "ARRO";
433    section "Editing" {
434        top = 86;
435        left = 217;
436	row {
437	    top= 1;
438	    left= 19;
439	    keys { <UP> };
440	};
441	row {
442	    top= 10;
443	    keys { <LEFT>, <DOWN>, <RGHT> };
444	};
445    }; // End of "Editing" section
446
447    alias <AC00> = <CAPS>;
448    alias <AA00> = <LCTL>;
449
450};
451
452xkb_geometry "macbook79" {
453
454    description= "Apple Laptop 79-key (Intl)";
455    width= 273;
456    height= 110;
457
458    shape.cornerRadius= 0;
459    shape "ESC"  { { [ 21,9] }, cornerRadius=1, { [0,1], [ 19,8] } };
460    shape "FUNC" { { [ 18,9] }, cornerRadius=1, { [2,1], [ 16,8] } };
461    shape "EJCT" { { [ 20,9] }, cornerRadius=1, { [2,1], [ 20,8] } };
462    shape "DEGR" { { [ 16,18] }, cornerRadius=1, { [0,2], [ 14,16] } };
463    shape "NORM" { { [ 18,18] }, cornerRadius=1, { [2,2], [ 16,16] } };
464    shape "BKSP" { { [ 25,18] }, cornerRadius=1, { [2,2], [ 25,16] } };
465    shape "TABK" { { [ 24,18] }, cornerRadius=1, { [0,2], [ 22,16] } };
466    shape "RTRN" { { [ 0,0], [17,0], [17,37], [5,37], [5, 18], [0,18], [0,0] },
467                   cornerRadius=1, 
468	           { [ 2,2], [15,2], [15,35], [7,35], [7, 16], [2,16] } 
469                 };
470    shape "CAPS" { { [ 29,18] }, cornerRadius=1, { [0,2], [ 27,16] } };
471    shape "LFSH" { { [ 21,18] }, cornerRadius=1, { [0,2], [ 19,16] } };
472    shape "RTSH" { { [ 39,18] }, cornerRadius=1, { [2,2], [ 39,16] } };
473    shape "APPL" { { [ 23,18] }, cornerRadius=1, { [2,2], [ 21,16] } };
474    shape "SPCE" { { [ 94,18] }, cornerRadius=1, { [2,2], [ 92,16] } };
475    shape "ARRO" { { [ 17,9] }, cornerRadius=1, { [2,1], [ 15,8] } };
476
477    shape "LED"  { cornerRadius= 1, { [  2,  2 ] } };
478
479    indicator.onColor= "green";
480    indicator.offColor= "gray";
481    indicator.shape= "LED";
482    indicator "Num Lock"   { top=4; left= 119; };
483    indicator "Caps Lock"  { top=53; left= 4; };
484
485    section.left=0;
486    row.left= 1;
487    key.shape= "FUNC";
488    key.gap= 1;
489    section "Function" {
490	top= 0;
491	row {
492	    top= 1;
493	    keys {  {<ESC>, "ESC" },
494		    <FK01>, <FK02>, <FK03>, <FK04>,
495		    <FK05>, <FK06>, <FK07>, <FK08>,
496		    <FK09>, <FK10>, <FK11>, <FK12>,
497                    {<K6C>, "EJCT" }
498	    };
499	};
500    }; // End of "Function" section
501
502    key.shape= "NORM";
503    section "Alpha" {
504	top= 10;
505	row {
506	    top= 1;
507	    keys { {<TLDE>, "DEGR"},
508                   <AE01>, <AE02>, <AE03>, <AE04>,
509		   <AE05>, <AE06>, <AE07>, <AE08>,
510                   <AE09>, <AE10>, <AE11>, <AE12>,
511		   { <BKSP>, "BKSP" }
512	    };
513	};
514	row {
515	    top= 20;
516	    keys { { <TAB>, "TABK"},
517		   <AD01>, <AD02>, <AD03>, <AD04>, <AD05>, 
518		   <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, 
519		   <AD11>, <AD12>, { <RTRN>, "RTRN" }
520	    };
521	};
522	row {
523	    top= 39;
524	    keys { { <CAPS>, "CAPS" },
525		   <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, 
526		   <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, 
527		   <AC11>, <BKSL>
528	    };
529        };
530	row {
531	    top= 58;
532	    keys { { <LFSH>, "LFSH"},
533		   <LSGT>, <AB01>, <AB02>, <AB03>, <AB04>, <AB05>, 
534		   <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
535		   { <RTSH>, "RTSH" }
536	    };
537	};
538	row {
539	    top= 77;
540	    keys { {<FN>, "DEGR"}, 
541                   <LCTL>, <LALT>, 
542                   {<LWIN>, "APPL"},
543                   {<SPCE>, "SPCE" }, 
544                   {<RALT>, "APPL"},
545                   <KPEN>
546	    };
547	};
548
549    }; // End of "Alpha" section
550
551    key.shape= "ARRO";
552    section "Editing" {
553        top = 86;
554        left = 217;
555	row {
556	    top= 1;
557	    left= 19;
558	    keys { <UP> };
559	};
560	row {
561	    top= 10;
562	    keys { <LEFT>, <DOWN>, <RGHT> };
563	};
564    }; // End of "Editing" section
565
566    alias <AC00> = <CAPS>;
567    alias <AA00> = <LCTL>;
568
569}; // End of "default" geometry
570
571