first feed-in of the layouts. The revolution is coming
[xorg/xkeyboard-config] / geometry / ibm.vndr / thinkpad
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
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 };