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