Home | History | Annotate | Line # | Download | only in geometry
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