|         |      1 // -*- indent-tabs-mode: nil -*- | 
|         |      2  | 
|         |      3 // Created by Fabien Ninoles <fabien (at) tzone (dot) org> | 
|         |      4  | 
|         |      5 // Note : the special/multimedia keys (Calc, WWW, Desktop…) have a keycode | 
|         |      6 // <I[XX]>, found in definition file /usr/share/X11/xkb/keycodes/evdev. | 
|         |      7 // Fn           = <I120>; | 
|         |      8 // Calc         = <I148>; | 
|         |      9 // WWW          = <I158>; | 
|         |     10 // CycleWindows = <I162>; | 
|         |     11 // Mail         = <I163>; | 
|         |     12 // PlayPause    = <I172>; | 
|         |     13 // Desktop      = <I243>; | 
|         |     14  | 
|         |     15 xkb_geometry "teckD209" { | 
|         |     16     description = "Truly Ergonomic D209"; | 
|         |     17  | 
|         |     18     // Keyboard total size : | 
|         |     19     width  = 308; | 
|         |     20     height = 150; | 
|         |     21     // Background / foreground colours | 
|         |     22     baseColor  = "white"; | 
|         |     23     labelColor = "black"; | 
|         |     24  | 
|         |     25     // Key shapes: base key = 16 mm each side | 
|         |     26     shape "NORM" { cornerRadius=1, { [17,    17]   }, { [2,   2], [15,   15] }}; | 
|         |     27     shape "DBLA" { cornerRadius=1, { [35,    17]   }, { [2,   2], [33,   15] }}; | 
|         |     28  | 
|         |     29     section "Function" { | 
|         |     30         left = 5; | 
|         |     31         top  = 5; | 
|         |     32         key.gap = 0.5; | 
|         |     33         key.color = "grey10"; | 
|         |     34         key.shape = "NORM"; | 
|         |     35         row { | 
|         |     36             keys { <ESC> }; | 
|         |     37         }; | 
|         |     38         row { | 
|         |     39             left = 25; | 
|         |     40             keys { <FK01>, <FK02>, <FK03>, <FK04> }; | 
|         |     41         }; | 
|         |     42         row { | 
|         |     43             left = 105; | 
|         |     44             keys { <FK05>, <FK06>, <FK07>, <FK08> }; | 
|         |     45         }; | 
|         |     46         row { | 
|         |     47             left = 185; | 
|         |     48             keys { <FK09>, <FK10>, <FK11>, <FK12> }; | 
|         |     49         }; | 
|         |     50         row { | 
|         |     51             left = 265; | 
|         |     52             keys { <DELE> }; | 
|         |     53         }; | 
|         |     54         row { | 
|         |     55             top = 17.5; | 
|         |     56             left = 115; | 
|         |     57             keys { <CAPS>,  | 
|         |     58                    <DELE>, // modified from <I120> | 
|         |     59                    <NMLK> }; | 
|         |     60         }; | 
|         |     61     }; | 
|         |     62  | 
|         |     63     section "LeftColumn" { | 
|         |     64         left = 4; | 
|         |     65         top  = 80; | 
|         |     66         key.gap = 0.5; | 
|         |     67         key.color = "grey20"; | 
|         |     68         key.shape = "DBLA"; | 
|         |     69         row { keys { <LFSH> }; }; | 
|         |     70         row { | 
|         |     71           top = 17.5; | 
|         |     72           keys { <LCTL> }; | 
|         |     73         }; | 
|         |     74         row { | 
|         |     75           top = 35; | 
|         |     76           keys { | 
|         |     77             { <I120>, "NORM" }, | 
|         |     78             { <LALT>, "NORM" } | 
|         |     79           }; | 
|         |     80         }; | 
|         |     81     }; | 
|         |     82  | 
|         |     83     section "LeftAlpha" { | 
|         |     84         left = 39; | 
|         |     85         top  = 45; | 
|         |     86         key.gap = 0.5; | 
|         |     87         key.color = "grey10"; | 
|         |     88         key.shape = "NORM"; | 
|         |     89         row { | 
|         |     90             top  = 0; | 
|         |     91             left = -35; | 
|         |     92             keys {  | 
|         |     93               <AD12>, // modified from ? | 
|         |     94               <TLDE>, | 
|         |     95               <AE01>, <AE02>, <AE03>, <AE04>, <AE05> | 
|         |     96             }; | 
|         |     97         }; | 
|         |     98         row { | 
|         |     99             left = -35; | 
|         |    100             top  = 17.5; | 
|         |    101             keys {  | 
|         |    102                    <ESC>, // modified from <BKSL> | 
|         |    103                    <BKSL>, // modified from <AB10> | 
|         |    104                    <AD01>, <AD02>, <AD03>, <AD04>, <AD05> | 
|         |    105                  }; | 
|         |    106         }; | 
|         |    107         row { | 
|         |    108             top  = 35; | 
|         |    109             keys { <AC01>, <AC02>, <AC03>, <AC04>, <AC05> }; | 
|         |    110         }; | 
|         |    111         row { | 
|         |    112             top  = 52.5; | 
|         |    113             keys { <AB01>, <AB02>, <AB03>, <AC04>, <AC05> }; | 
|         |    114         }; | 
|         |    115    }; | 
|         |    116     section "RightAlpha" { | 
|         |    117         left = 161.5; | 
|         |    118         top  = 45; | 
|         |    119         key.gap = 0.5; | 
|         |    120         key.color = "grey10"; | 
|         |    121         key.shape = "NORM"; | 
|         |    122         row { | 
|         |    123             top  = 0; | 
|         |    124             keys {  | 
|         |    125               <AE06>, <AE07>, <AE08>, <AE09>, <AE10>, | 
|         |    126               <AE11>, <AE12> | 
|         |    127             }; | 
|         |    128         }; | 
|         |    129         row { | 
|         |    130             top  = 17.5; | 
|         |    131             keys {  | 
|         |    132                    <AD06>, <AD07>, <AD08>, <AD09>, <AD10>, | 
|         |    133                    <AC11>, // modified from <AD11> | 
|         |    134                    <AD11>  // modified from <AD12> | 
|         |    135                  }; | 
|         |    136         }; | 
|         |    137         row { | 
|         |    138             top  = 35; | 
|         |    139             keys { <AC06>, <AC07>, <AC08>, <AC09>, <AC10> }; | 
|         |    140         }; | 
|         |    141         row { | 
|         |    142             top  = 52.5; | 
|         |    143             keys { <AB06>, <AB07>, <AB08>, <AB09>, <AB10> }; | 
|         |    144         }; | 
|         |    145    }; | 
|         |    146    section "CentralColumn" { | 
|         |    147       top = 45; | 
|         |    148       left = 126.5; | 
|         |    149       key.shape = "DBLA"; | 
|         |    150       key.color = "grey20"; | 
|         |    151       // Central section | 
|         |    152       row { | 
|         |    153           keys { <LWIN> }; | 
|         |    154       }; | 
|         |    155       row { | 
|         |    156           top = 17.5; | 
|         |    157           keys { <RALT> }; // modified from <DELE> | 
|         |    158       }; | 
|         |    159       row { | 
|         |    160           top = 35; | 
|         |    161           keys { <TAB> }; | 
|         |    162       }; | 
|         |    163       row { | 
|         |    164           top = 52.5; | 
|         |    165           keys { <BKSP> }; | 
|         |    166       }; | 
|         |    167       row { | 
|         |    168           top  = 70; | 
|         |    169           left = -35; | 
|         |    170           keys { <SPCE>, <RTRN>, <SPCE> }; | 
|         |    171         }; | 
|         |    172    }; | 
|         |    173    section "LeftCross" { | 
|         |    174         left = 39; | 
|         |    175         top  = 115; | 
|         |    176         key.gap = 0.5; | 
|         |    177         key.color = "grey20"; | 
|         |    178         key.shape = "NORM"; | 
|         |    179         // Cross section | 
|         |    180         row { | 
|         |    181             top  = 8; | 
|         |    182             left = 0; | 
|         |    183             keys { <AB03> }; // modified from <HOME>  | 
|         |    184         }; | 
|         |    185         row { | 
|         |    186             top = 0; | 
|         |    187             left = 17.5; | 
|         |    188             keys { <AC06> }; // modified from <PGUP> | 
|         |    189         }; | 
|         |    190         row { | 
|         |    191             top = 17.5; | 
|         |    192             left = 17.5; | 
|         |    193             keys { <AD11> }; // modified from <PGDN> | 
|         |    194         }; | 
|         |    195         row { | 
|         |    196             top = 8; | 
|         |    197             left = 35; | 
|         |    198             keys { <AD07> }; // modified from <END> | 
|         |    199         }; | 
|         |    200    }; | 
|         |    201    section "RightCross" { | 
|         |    202         left = 196.5; | 
|         |    203         top  = 115; | 
|         |    204         key.gap = 0.5; | 
|         |    205         key.color = "grey20"; | 
|         |    206         key.shape = "NORM"; | 
|         |    207         // Cross section | 
|         |    208         row { | 
|         |    209             top  = 8; | 
|         |    210             left = 0; | 
|         |    211             keys { <LEFT> }; // modified from <HOME>  | 
|         |    212         }; | 
|         |    213         row { | 
|         |    214             top = 0; | 
|         |    215             left = 17.5; | 
|         |    216             keys { <UP> }; // modified from <PGUP> | 
|         |    217         }; | 
|         |    218         row { | 
|         |    219             top = 17.5; | 
|         |    220             left = 17.5; | 
|         |    221             keys { <DOWN> }; // modified from <PGDN> | 
|         |    222         }; | 
|         |    223         row { | 
|         |    224             top = 8; | 
|         |    225             left = 35; | 
|         |    226             keys { <RGHT> }; // modified from <END> | 
|         |    227         }; | 
|         |    228    }; | 
|         |    229     section "RightColumn" { | 
|         |    230         left = 250; | 
|         |    231         top  = 80; | 
|         |    232         key.gap = 0.5; | 
|         |    233         key.color = "grey20"; | 
|         |    234         key.shape = "DBLA"; | 
|         |    235         row { keys { <RTSH> }; }; | 
|         |    236         row { | 
|         |    237           top = 17.5; | 
|         |    238           keys { <RCTL> }; | 
|         |    239         }; | 
|         |    240         row { | 
|         |    241           top = 35; | 
|         |    242           keys { | 
|         |    243             { <RALT>, "NORM" }, | 
|         |    244             { <I120>, "NORM" } | 
|         |    245           }; | 
|         |    246         }; | 
|         |    247     }; | 
|         |    248  | 
|         |    249 }; // geometry teckD209 |