Fixed Shift-F10 behaviour
[xorg/xkeyboard-config] / geometry / thinkpad
1 // -*- indent-tabs-mode: nil -*-
2
3 // Created by Alexander Pohoyda <alexander.pohoyda@gmx.net>
4 // Geometry specification for IBM ThinkPad keyboard.
5 // Compatible Models: THINKPAD 560Z 2640-90U, THINKPAD 560Z 2640-91U,
6 //    THINKPAD 560Z 2640-B0U, THINKPAD 560Z 2640-B1U, THINKPAD 560Z 2640-RR3,
7 //    THINKPAD 600 2645-31U, THINKPAD 600 2645-35U, THINKPAD 600 2645-41U,
8 //    THINKPAD 600 2645-42U, THINKPAD 600 2645-45U, THINKPAD 600 2645-48U,
9 //    THINKPAD 600 2645-51U, THINKPAD 600 2645-85U, THINKPAD 600 2645-A1U,
10 //    THINKPAD 600 2645-RR1, THINKPAD 600 2645-RR2, THINKPAD 600E 2645-3AU,
11 //    THINKPAD 600E 2645-4AU, THINKPAD 600E 2645-4BU, THINKPAD 600E 2645-55U,
12 //    THINKPAD 600E 2645-5AU, THINKPAD 600E 2645-5BU, THINKPAD 600E 2645-5JU,
13 //    THINKPAD 600E 2645-8AO, THINKPAD 600E 2645-8AU, THINKPAD 600E 2645-8BU,
14 //    THINKPAD 600E 2645-AAU, THINKPAD 600E 2645-RRB, THINKPAD 600E 2645-RRD,
15 //    THINKPAD 600E 2645-RRF, THINKPAD 600E 2645-RRS, THINKPAD A22E 2645-45U
16
17 xkb_geometry "common" {
18     width = 290;
19     height = 150;
20     baseColor = "grey80";
21     labelColor = "white";
22
23     shape "FN0"  { cornerRadius = 1, { [17, 12] }, { [2, 0], [15, 10] } };
24     shape "NORM" { cornerRadius = 1, { [18, 18] }, { [2.5, 0], [15.5, 14] } };
25     shape "BKSP" { cornerRadius = 1, { [37, 18] }, { [2.5, 0], [34.5, 14] } };
26     shape "TABK" { cornerRadius = 1, { [27, 18] }, { [2.5, 0], [24.5, 14] } };
27     shape "CAPS" { cornerRadius = 1, { [31, 18] }, { [1, 0], [30, 16] },
28                                                    { [1, 0], [26, 16] },
29                                                    { [2.5, 0], [24.5, 14] } };
30     shape "RTSH" { cornerRadius = 1, { [50, 18] }, { [2.5, 0], [46.5, 14] } };
31     shape "MODK" { cornerRadius = 1, { [27.5, 18] }, { [2.5, 0], [25, 14] } };
32     shape "SPCE" { cornerRadius = 1, { [100, 18] }, { [2.5, 0], [97.5, 14] } };
33     shape "ARRS" { cornerRadius = 1, { [16, 13] }, { [1.5, 0], [14.5, 11] } };
34
35     shape "LED"  { cornerRadius = 2, { [3, 3] } };
36
37     shape "KEYS" { cornerRadius = 2,
38                    { [0, 0], [19, 0], [19, 13], [172, 13],
39                      [172, 0], [286, 0], [286, 138], [216, 138],
40                      [216, 124], [0, 124] } };
41
42     solid "KeyPanel" {
43         shape = "KEYS";
44         left = 2;
45         top = 5;
46         color = "black";
47     };
48
49     shape "NULL1" { cornerRadius = 1,
50                     { [0, 0], [50, 0], [50, 18], [34, 18], [34, 4],
51                       [16, 4], [16, 18], [0, 18] } };
52
53     solid "NullPanel1" {
54         shape = "NULL1";
55         left = 237;
56         top = 110;
57         color = "grey80";
58     };
59
60     shape "NULL2" { cornerRadius = 1, { [17, 13] } };
61
62     solid "NullPanel2" {
63         shape = "NULL2";
64         left = 219;
65         top = 129;
66         color = "grey80";
67     };
68
69     shape "NULL3" { cornerRadius = 1,
70                     { [0, 26],
71                       [72, 26], [72, 13], [76, 13], [76, 26],
72                       [149, 26], [149, 13], [153, 13], [153, 26],
73                       [226, 26], [226, 0], [230, 0], [230, 26],
74                       [284, 26], [285, 27],
75                       [0, 27] } };
76
77     solid "NullPanel3" {
78         shape = "NULL3";
79         left = 3;
80         top = 6;
81         color = "grey80";
82     };
83
84     indicator.onColor = "green";
85     indicator.offColor = "grey10";
86     indicator.top = 4;
87     indicator.shape = "LED";
88     indicator "HDDActivity" { onColor = "red"; left = 100; };
89     indicator "Num Lock"     { left = 108; };
90     indicator "Caps Lock"    { left = 114; };
91     indicator "Scroll Lock"  { left = 120; };
92     indicator "Power"        { left = 128; };
93
94     key.gap = 1;
95     key.color = "grey60";
96
97     section "Function" {
98         left = 2;
99         top = 5;
100         key.shape = "FN0";
101         row {
102             top = 1;
103             keys {  <ESC>, { <PRSC>, 155 }, <SCLK>, <PAUS> };
104         };
105         row {
106             top = 14;
107             keys {  <FK01>, <FK02>, <FK03>, <FK04>,
108                     { <FK05>, 6 }, <FK06>, <FK07>, <FK08>,
109                     { <FK09>, 6 }, <FK10>, <FK11>, <FK12>
110             };
111         };
112     }; // End of "Function" section
113
114     section "Control" {
115         left= 2;
116         top = 109;
117         key.shape = "MODK";
118         row {
119             top = 1;
120             keys { { <FN>, "NORM" }, <LCTL>, <LALT>,
121                    { <SPCE>, "SPCE" }, <RALT>, <RCTL>
122             };
123         };
124     }; // End of "Control" section
125
126     section "Editing" {
127         top = 5;
128         left = 233;
129         key.shape = "FN0";
130         row {
131             top = 1;
132             keys { <INS>, <HOME>, <PGUP> };
133         };
134         row {
135             top = 14;
136             keys { <DELE>, <END>, <PGDN> };
137         };
138     }; // End of "Editing" section
139
140     section "Navigation" {
141         top = 114;
142         left = 236;
143         key.shape = "ARRS";
144         row {
145             top = 1;
146             left = 17;
147             keys { <UP> };
148         };
149         row {
150             top = 15;
151             keys { <LEFT>, <DOWN>, <RGHT> };
152         };
153     }; // End of "Navigation" section
154     
155     shape "STIK" { cornerRadius = 4, { [7, 7] } };
156
157     solid "STIK" {
158         priority = 255;
159         color = "red";
160         shape = "STIK";
161         top = 85;
162         left = 126;
163     };
164 };
165
166 // 85 keys
167 // US/English (FRU 02K4785).
168 xkb_geometry "us" {
169     include "thinkpad(common)"
170     description = "IBM ThinkPad 560Z/600/600E/A22E, US";
171
172     shape "RTRN" { cornerRadius = 1, { [43, 18] }, { [2.5, 0], [40.5, 14] } };
173     shape "LFSH" { cornerRadius = 1, { [43, 18] }, { [2.5, 0], [40.5, 14] } };
174     shape "BKSL" { cornerRadius = 1, { [28, 18] }, { [2.5, 0], [25.5, 14] } };
175
176     section "Alpha" {
177         left = 2;
178         top = 33;
179         key.gap = 1;
180         key.color = "grey60";
181         key.shape = "NORM";
182         row {
183             top = 1;
184             keys { <AE00>, <AE01>, <AE02>, <AE03>, <AE04>,
185                    <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
186                    <AE10>, <AE11>, <AE12>, { <BKSP>, "BKSP" }
187             };
188         };
189         row {
190             top = 20;
191             keys { { <TAB>, "TABK" },
192                    <AD01>, <AD02>, <AD03>, <AD04>, <AD05>, 
193                    <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, 
194                    <AD11>, <AD12>, { <BKSL>, "BKSL" }
195             };
196         };
197         row {
198             top = 39;
199             keys { { <CAPS>, "CAPS" },
200                    <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, 
201                    <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, 
202                    <AC11>, { <RTRN>, "RTRN" }
203             };
204         };
205         row {
206             top = 58;
207             keys { { <LFSH>, "LFSH" },
208                    <AB01>, <AB02>, <AB03>, <AB04>, <AB05>, 
209                    <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
210                    { <RTSH>, "RTSH" }
211             };
212         };
213     }; // End of "Alpha" section
214 };
215
216 // 86 keys
217 // Tested on: DE/German, UK/English (FRU 02K4787).
218 xkb_geometry "intl" {
219     include "thinkpad(common)"
220     description = "IBM ThinkPad 560Z/600/600E/A22E, Intl";
221
222     shape "RTRN" { cornerRadius = 1, { [28, 0], [28, 37], [4, 37], [4, 18],
223                                        [0, 18], [0, 0] },
224                                      { [25.5, 0], [25.5, 33], [6.5, 33],
225                                        [6.5, 14], [2.5, 14], [2.5, 0] } };
226     shape "LFSH" { cornerRadius = 1, { [24, 18] }, { [2.5, 0], [21.5, 14] } };
227
228     section "Alpha" {
229         left = 2;
230         top = 33;
231         key.gap = 1;
232         key.color = "grey60";
233         key.shape = "NORM";
234         row {
235             top = 1;
236             keys { <AE00>, <AE01>, <AE02>, <AE03>, <AE04>,
237                    <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
238                    <AE10>, <AE11>, <AE12>, { <BKSP>, "BKSP" }
239             };
240         };
241         row {
242             top = 20;
243             keys { { <TAB>, "TABK" },
244                    <AD01>, <AD02>, <AD03>, <AD04>, <AD05>, 
245                    <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, 
246                    <AD11>, <AD12>, { <RTRN>, "RTRN" }
247             };
248         };
249         row {
250             top = 39;
251             keys { { <CAPS>, "CAPS" },
252                    <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, 
253                    <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, 
254                    <AC11>, <AC12>
255             };
256         };
257         row {
258             top = 58;
259             keys { { <LFSH>, "LFSH" }, <AB00>,
260                    <AB01>, <AB02>, <AB03>, <AB04>, <AB05>, 
261                    <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
262                    { <RTSH>, "RTSH" }
263             };
264         };
265     }; // End of "Alpha" section
266 };
267
268 xkb_geometry "60" {
269     width = 290;
270     height = 140;
271     baseColor = "grey80";
272     labelColor = "white";
273
274     shape "NORM" { cornerRadius = 1, { [18,   18] }, { [2, 0], [16, 16] } };
275
276     shape "ESC"  { cornerRadius = 1, { [17,   13] }, { [1.5, 0], [15.5, 12] } };
277     shape "FN0"  { cornerRadius = 1, { [17,   11] }, { [1.5, 0], [15.5, 10] } };
278
279     shape "BKSP" { cornerRadius = 1, { [37,   18] }, { [2, 0], [35, 16] } };
280
281     shape "TABK" { cornerRadius = 1, { [27.5, 18] }, { [2, 0], [25.5, 16] } };
282     shape "BKSL" { cornerRadius = 1, { [27.5, 18] }, { [2, 0], [25.5, 16] } };
283
284     shape "CAPS" { cornerRadius = 1, { [30.5, 18] }, { [2, 0], [28.5, 16] } };
285     shape "RTRN" { cornerRadius = 1, { [43.5, 18] }, { [2, 0], [41.5, 16] } };
286
287     shape "LFSH" { cornerRadius = 1, { [40,   18] }, { [2, 0], [38, 16] } };
288     shape "RTSH" { cornerRadius = 1, { [53,   18] }, { [2, 0], [51, 16] } };
289
290     shape "LCTL" { cornerRadius = 1, { [21,   18] }, { [2, 0], [19, 16] } };
291     shape "LWIN" { cornerRadius = 1, { [15,   18] }, { [1.5, 0], [13.5, 16] } };
292
293     shape "SPCE" { cornerRadius = 1, { [97,   18] }, { [2, 0], [95, 16] } };
294
295     shape "ARR1" { cornerRadius = 1, { [17,   13] }, { [1.5, 0], [15.5, 12] } };
296     shape "ARR2" { cornerRadius = 1, { [17,   11] }, { [1.5, 0], [15.5, 10] } };
297
298     shape "VOL"  { cornerRadius = 2.5, { [5, 5] } };
299     shape "TVTG" { cornerRadius = 0.5, { [0, 1], [17, 1], [17, 4], [0, 4] } };
300
301     shape "KEYS" { cornerRadius = 2,
302                    { [0, 0], [19, 0], [19, 16], [172, 16],
303                      [172, 4], [286, 4], [286, 133], [231, 133],
304                      [231, 126], [0, 126] } };
305
306     solid "KeyPanel" {
307         shape = "KEYS";
308         left = 2;
309         top = 3;
310         color = "black";
311     };
312
313     shape "NULL0" { cornerRadius = 0.5,
314                     { [0, 26],
315                       [72, 26], [72, 14], [76, 14], [76, 26],
316                       [149, 26], [149, 14], [153, 14], [153, 26],
317                       [226, 26], [226, 2], [230, 2], [230, 26],
318                       [284, 26], [284, 27],
319                       [0, 27] } };
320
321     solid "NullPanel0" {
322         shape = "NULL0";
323         left = 3;
324         top = 6;
325         color = "grey80";
326     };
327
328     shape "NULL1" { cornerRadius = 0.5, { [0, 12], [17, 12], [17, 13], [0, 13] } };
329
330     solid "NullPanel1" {
331         shape = "NULL1";
332         left = 3;
333         top = 6;
334         color = "grey80";
335     };
336
337     shape "MEDIA" { cornerRadius = 0.5, { [0, 0], [55, 0], [55, 10], [0, 10] } };
338
339     solid "MediaPanel" {
340         shape = "MEDIA";
341         left = 25.5;
342         top = 6;
343         color = "black";
344     };
345
346     section "Volume" {
347         left = 22;
348         top = 8.5;
349         key.shape = "VOL";
350         key.gap = 6;
351         key.color = "grey20";
352
353         row {
354             keys { <MUTE>, <VOL->, <VOL+>, {<I1F>, "TVTG", color = "blue"} };
355         };
356     };
357
358     key.gap = 1;
359     key.color = "grey60";
360
361     section "Function" {
362         left = 2;
363         top = 3;
364         key.shape = "FN0";
365         row {
366             key.shape = "ESC";
367             top = 1;
368             keys {  <ESC> };
369         };
370         row {
371             top = 5;
372             keys { { <PRSC>, 173 }, <SCLK>, <PAUS> };
373         };
374         row {
375             top = 17;
376             keys {  <FK01>, <FK02>, <FK03>, <FK04>,
377                     { <FK05>, 6 }, <FK06>, <FK07>, <FK08>,
378                     { <FK09>, 6 }, <FK10>, <FK11>, <FK12>
379             };
380         };
381     }; // End of "Function" section
382
383     section "Control" {
384         left = 2;
385         top = 109;
386         key.shape = "NORM";
387         row {
388             top = 1;
389             keys { <FN>, { <LCTL>, "LCTL" }, { <LWIN>, "LWIN" }, <LALT>,
390                    { <SPCE>, "SPCE" }, <RALT>, <MENU>, <RCTL>
391             };
392         };
393     }; // End of "Control" section
394
395     section "Editing" {
396         top = 7;
397         left = 233;
398         key.shape = "FN0";
399         row {
400             top = 1;
401             keys { <INS>, <HOME>, <PGUP> };
402         };
403         row {
404             top = 13;
405             keys { <DELE>, <END>, <PGDN> };
406         };
407     }; // End of "Editing" section
408
409     section "Navigation" {
410         top = 109;
411         left = 233;
412         row {
413             key.shape = "ARR1";
414             top = 1;
415             keys { <I6A>, <UP>, <I69> };
416         };
417         row {
418             key.shape = "ARR2";
419             top = 15;
420             keys { <LEFT>, <DOWN>, <RGHT> };
421         };
422     }; // End of "Navigation" section
423     
424     shape "STIK" { cornerRadius = 3.5, { [7, 7] } };
425
426     solid "STIK" {
427         priority = 255;
428         color = "red";
429         shape = "STIK";
430         top = 85.5;
431         left = 125.5;
432     };
433
434     section "Alpha" {
435         left = 2;
436         top = 33;
437         key.shape = "NORM";
438         row {
439             top = 1;
440             keys { <TLDE>, <AE01>, <AE02>, <AE03>, <AE04>,
441                    <AE05>, <AE06>, <AE07>, <AE08>, <AE09>,
442                    <AE10>, <AE11>, <AE12>, { <BKSP>, "BKSP" }
443             };
444         };
445         row {
446             top = 20;
447             keys { { <TAB>, "TABK" },
448                    <AD01>, <AD02>, <AD03>, <AD04>, <AD05>, 
449                    <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, 
450                    <AD11>, <AD12>, { <BKSL>, "BKSL" }
451             };
452         };
453         row {
454             top = 39;
455             keys { { <CAPS>, "CAPS" },
456                    <AC01>, <AC02>, <AC03>, <AC04>, <AC05>, 
457                    <AC06>, <AC07>, <AC08>, <AC09>, <AC10>, 
458                    <AC11>, { <RTRN>, "RTRN", color = "blue" }
459             };
460         };
461         row {
462             top = 58;
463             keys { { <LFSH>, "LFSH" },
464                    <AB01>, <AB02>, <AB03>, <AB04>, <AB05>, 
465                    <AB06>, <AB07>, <AB08>, <AB09>, <AB10>,
466                    { <RTSH>, "RTSH" }
467             };
468         };
469     }; // End of "Alpha" section
470 };