xkb/geometry/trulyergonomic
author Fabien Ninoles <fabien@tzone.org>
Sat, 25 Oct 2014 21:38:33 -0400
changeset 3 3503b6eb6a1b
child 4 a31ea9d76d14
permissions -rw-r--r--
Add Truly Ergonomic geometry.

// -*- indent-tabs-mode: nil -*-

// Created by Fabien Ninoles <fabien (at) tzone (dot) org>

// Note : the special/multimedia keys (Calc, WWW, Desktop…) have a keycode
// <I[XX]>, found in definition file /usr/share/X11/xkb/keycodes/evdev.
// Fn           = <I120>;
// Calc         = <I148>;
// WWW          = <I158>;
// CycleWindows = <I162>;
// Mail         = <I163>;
// PlayPause    = <I172>;
// Desktop      = <I243>;

xkb_geometry "teckD209" {
    description = "Truly Ergonomic D209";

    // Keyboard total size :
    width  = 308;
    height = 150;
    // Background / foreground colours
    baseColor  = "white";
    labelColor = "black";

    // Key shapes: base key = 16 mm each side
    shape "NORM" { cornerRadius=1, { [17,    17]   }, { [2,   2], [15,   15] }};
    shape "DBLA" { cornerRadius=1, { [35,    17]   }, { [2,   2], [33,   15] }};

    section "Function" {
        left = 5;
        top  = 5;
        key.gap = 0.5;
        key.color = "grey10";
        key.shape = "NORM";
        row {
            keys { <ESC> };
        };
        row {
            left = 25;
            keys { <FK01>, <FK02>, <FK03>, <FK04> };
        };
        row {
            left = 105;
            keys { <FK05>, <FK06>, <FK07>, <FK08> };
        };
        row {
            left = 185;
            keys { <FK09>, <FK10>, <FK11>, <FK12> };
        };
        row {
            left = 265;
            keys { <DELE> };
        };
        row {
            top = 17.5;
            left = 115;
            keys { <CAPS>, 
                   <DELE>, // modified from <I120>
                   <NMLK> };
        };
    };

    section "LeftColumn" {
        left = 4;
        top  = 80;
        key.gap = 0.5;
        key.color = "grey20";
        key.shape = "DBLA";
        row { keys { <LFSH> }; };
        row {
          top = 17.5;
          keys { <LCTL> };
        };
        row {
          top = 35;
          keys {
            { <I120>, "NORM" },
            { <LALT>, "NORM" }
          };
        };
    };

    section "LeftAlpha" {
        left = 39;
        top  = 45;
        key.gap = 0.5;
        key.color = "grey10";
        key.shape = "NORM";
        row {
            top  = 0;
            left = -35;
            keys { 
              <AD12>, // modified from ?
              <TLDE>,
              <AE01>, <AE02>, <AE03>, <AE04>, <AE05>
            };
        };
        row {
            left = -35;
            top  = 17.5;
            keys { 
                   <ESC>, // modified from <BKSL>
                   <BKSL>, // modified from <AB10>
                   <AD01>, <AD02>, <AD03>, <AD04>, <AD05>
                 };
        };
        row {
            top  = 35;
            keys { <AC01>, <AC02>, <AC03>, <AC04>, <AC05> };
        };
        row {
            top  = 52.5;
            keys { <AB01>, <AB02>, <AB03>, <AC04>, <AC05> };
        };
   };
    section "RightAlpha" {
        left = 161.5;
        top  = 45;
        key.gap = 0.5;
        key.color = "grey10";
        key.shape = "NORM";
        row {
            top  = 0;
            keys { 
              <AE06>, <AE07>, <AE08>, <AE09>, <AE10>,
              <AE11>, <AE12>
            };
        };
        row {
            top  = 17.5;
            keys { 
                   <AD06>, <AD07>, <AD08>, <AD09>, <AD10>,
                   <AC11>, // modified from <AD11>
                   <AD11>  // modified from <AD12>
                 };
        };
        row {
            top  = 35;
            keys { <AC06>, <AC07>, <AC08>, <AC09>, <AC10> };
        };
        row {
            top  = 52.5;
            keys { <AB06>, <AB07>, <AB08>, <AB09>, <AB10> };
        };
   };
   section "CentralColumn" {
      top = 45;
      left = 126.5;
      key.shape = "DBLA";
      key.color = "grey20";
      // Central section
      row {
          keys { <LWIN> };
      };
      row {
          top = 17.5;
          keys { <RALT> }; // modified from <DELE>
      };
      row {
          top = 35;
          keys { <TAB> };
      };
      row {
          top = 52.5;
          keys { <BKSP> };
      };
      row {
          top  = 70;
          left = -35;
          keys { <SPCE>, <RTRN>, <SPCE> };
        };
   };
   section "LeftCross" {
        left = 39;
        top  = 115;
        key.gap = 0.5;
        key.color = "grey20";
        key.shape = "NORM";
        // Cross section
        row {
            top  = 8;
            left = 0;
            keys { <AB03> }; // modified from <HOME> 
        };
        row {
            top = 0;
            left = 17.5;
            keys { <AC06> }; // modified from <PGUP>
        };
        row {
            top = 17.5;
            left = 17.5;
            keys { <AD11> }; // modified from <PGDN>
        };
        row {
            top = 8;
            left = 35;
            keys { <AD07> }; // modified from <END>
        };
   };
   section "RightCross" {
        left = 196.5;
        top  = 115;
        key.gap = 0.5;
        key.color = "grey20";
        key.shape = "NORM";
        // Cross section
        row {
            top  = 8;
            left = 0;
            keys { <LEFT> }; // modified from <HOME> 
        };
        row {
            top = 0;
            left = 17.5;
            keys { <UP> }; // modified from <PGUP>
        };
        row {
            top = 17.5;
            left = 17.5;
            keys { <DOWN> }; // modified from <PGDN>
        };
        row {
            top = 8;
            left = 35;
            keys { <RGHT> }; // modified from <END>
        };
   };
    section "RightColumn" {
        left = 250;
        top  = 80;
        key.gap = 0.5;
        key.color = "grey20";
        key.shape = "DBLA";
        row { keys { <RTSH> }; };
        row {
          top = 17.5;
          keys { <RCTL> };
        };
        row {
          top = 35;
          keys {
            { <RALT>, "NORM" },
            { <I120>, "NORM" }
          };
        };
    };

}; // geometry teckD209