thinkpad revision 1.1 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 (a] 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
18 xkb_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).
169 xkb_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).
219 xkb_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
269 xkb_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