// based on a keyboard
// Modified for a real Latin American Keyboard by Fabian Mandelbaum

default  partial alphanumeric_keys
xkb_symbols "basic" {

    include "latin(type4)"

    name[Group1]="Spanish (Latin American)";

    key <AE01>	{ [         1,     exclam,          bar,   exclamdown ]	};
    key <AE03>	{ [         3, numbersign, periodcentered,   sterling ]	};
    key <AE04>	{ [         4,     dollar,   asciitilde,       dollar ]	};
    key <AE06>	{ [         6,  ampersand,      notsign,  fiveeighths ]	};
    key <AE11>	{ [apostrophe,   question,    backslash, questiondown ]	};
    key <AE12>	{ [questiondown, exclamdown, dead_cedilla, dead_ogonek]	};

    key <AD11>	{ [dead_acute, dead_diaeresis, dead_diaeresis, dead_abovering ]	};
    key <AD12>	{ [      plus,   asterisk,   asciitilde,  dead_macron ]	};

    key <AC10>	{ [    ntilde,     Ntilde,   asciitilde, dead_doubleacute ] };
    key <AC11>	{ [ braceleft, bracketleft, dead_circumflex, braceleft]	};
    key <TLDE>	{ [       bar,     degree,      notsign,      notsign ]	};

    key <BKSL>	{ [braceright, bracketright, dead_grave,   braceright ]	};

    include "nbsp(level4)"
    include "keypad(ossmath)"
    include "kpdl(commaoss)"

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "Sundeadkeys" {
    include "latam(basic)"

    key <AC11>	{ [dead_acute, dead_diaeresis, braceleft, braceleft ]	};
    key <AD11>	{ [dead_grave, dead_circumflex, bracketleft, dead_abovering ] };
};

partial alphanumeric_keys
xkb_symbols "sundeadkeys" {
    include "latam(Sundeadkeys)"
    name[Group1]="Spanish (Latin American, with Sun dead keys)";
};

partial alphanumeric_keys
xkb_symbols "nodeadkeys" {

    include "latam(basic)"

    name[Group1]="Spanish (Latin American, no dead keys)";

    key <AE12>	{ [questiondown, exclamdown,    cedilla,       ogonek ]	};
    key <AD11>	{ [     grave, asciicircum, bracketleft,       degree ]	};
    key <AD12>	{ [      plus,   asterisk, bracketright,       macron ]	};
    key <AC10>	{ [    ntilde,     Ntilde,   asciitilde,  doubleacute ]	};
    key <AC11>	{ [     acute,  diaeresis,    braceleft,    braceleft ]	};
    key <BKSL>	{ [  ccedilla,   Ccedilla,   braceright,        breve ]	};
    key <AB10>	{ [     minus, underscore, dead_belowdot,    abovedot ]	};
};

partial alphanumeric_keys
xkb_symbols "deadtilde" {

    include "latam(basic)"

    name[Group1]="Spanish (Latin American, dead tilde)";

    key <AD12>	{ [      plus,   asterisk,   dead_tilde,  dead_macron ]	};
};

// Latin American Spanish Dvorak mapping (note R-H exchange)
partial alphanumeric_keys
xkb_symbols "dvorak" {
    include "latam(basic)"

    name[Group1]="Spanish (Latin American, Dvorak)";

    key <AD01> {[     period,          colon,             at                 ]};
    key <AD02> {[      comma,      semicolon                                 ]};
    key <AD03> {[     ntilde,         Ntilde,        lstroke,        Lstroke ]};
    key <AD04> {[          p,              P,      paragraph                 ]};
    key <AD05> {[          y,              Y,            yen                 ]};
    key <AD06> {[          f,              F,         tslash,         Tslash ]};
    key <AD07> {[          g,              G,        dstroke,        Dstroke ]};
    key <AD08> {[          c,              C,           cent,      copyright ]};
    key <AD09> {[          h,              H,        hstroke,        Hstroke ]};
    key <AD10> {[          l,              L,       sterling                 ]};

    key <AC02> {[          o,            O,          oslash,     Oslash ]};
    key <AC03> {[          e,            E,        EuroSign             ]};
    key <AC04> {[          u,            U,           aring,      Aring ]};
    key <AC05> {[          i,            I,              oe,         OE ]};
    key <AC06> {[          d,            D,             eth,        ETH ]};
    key <AC07> {[          r,            R,      registered,  trademark ]};
    key <AC08> {[          t,            T,           thorn,      THORN ]};
    key <AC09> {[          n,            N,             eng,        ENG ]};
    key <AC10> {[          s,            S,          ssharp,    section ]};

    key <LSGT> {[       less,    greater, guillemotleft, guillemotright ]};
    key <AB01> {[      minus, underscore,        hyphen, macron         ]};
    key <AB02> {[          q,          Q,      currency                 ]};
    key <AB03> {[          j,          J                                ]};
    key <AB04> {[          k,          K,           kra                 ]};
    key <AB05> {[          x,          X,       multiply, division      ]};
    key <AB06> {[          b,          B                                ]};
    key <AB07> {[          m,          M,            mu                 ]};
    key <AB08> {[          w,          W                                ]};
    key <AB09> {[          v,          V                                ]};
    key <AB10> {[          z,          Z                                ]};
};

// partial alphanumeric_keys
// xkb_symbols "colemak" {
//     // Colemak layout - http://colemak.com/
//     // Q W F P G   J L U Y Ñ ´ +
//     // A R S T D   H N E I O { }
//     // < Z X C V   B K M , . -
//     include "latam(basic)"
//     name[Group1]= "Spanish (Latin American, Colemak)";
// 
//     key <AB06>      { [         k,          K,          kra,    ampersand ] };
//     key <AC02>      { [         r,          R,   registered,    trademark ] };
//     key <AC03>      { [         s,          S,       ssharp,      section ] };
//     key <AC04>      { [         t,          T,       tslash,       Tslash ] };
//     key <AC05>      { [         d,          D,          eth,          ETH ] };
//     key <AC07>      { [         n,          N,     Greek_pi,    paragraph ] };
//     key <AC08>      { [         e,          E,     EuroSign,         cent ] };
//     key <AC09>      { [         i,          I,   rightarrow,     idotless ] };
//     key <AC10>      { [         o,          O,       oslash,     Ooblique ] };
//     key <AD03>      { [         f,          F,      dstroke,  ordfeminine ] };
//     key <AD04>      { [         p,          P,        thorn,        THORN ] };
//     key <AD05>      { [         g,          G,          eng,          ENG ] };
//     key <AD06>      { [         j,          J,    dead_hook,    dead_horn ] };
//     key <AD07>      { [         l,          L,      lstroke,      Lstroke ] };
//     key <AD08>      { [         u,          U,    downarrow,      uparrow ] };
//     key <AD09>      { [         y,          Y,    leftarrow,          yen ] };
//     key <AD10>      { [    ntilde,     Ntilde,   dead_tilde, dead_doubleacute ] };
// };

partial alphanumeric_keys
xkb_symbols "colemak" {
    // Colemak layout - http://colemak.com/
    // Q W F P G   J L U Y Ñ ´ +
    // A R S T D   H N E I O { }
    // < Z X C V   B K M , . -
    include "latam(basic)"
    name[Group1]= "Spanish (Latin American, Colemak)";

    key <TLDE> { [         bar,       degree,        notsign,    Greek_SIGMA ] };
    key <AE01> { [           1,       exclam,      brokenbar,     exclamdown ] };
    key <AE02> { [           2,     quotedbl,             at,        radical ] };
    key <AE04> { [           4,       dollar,     asciitilde,      oneeighth ] };
    key <AE07> { [           7,        slash,      leftarrow,   seveneighths ] };
    key <AE08> { [           8,    parenleft,      downarrow,        uparrow ] };
    key <AE09> { [           9,   parenright,     rightarrow,      plusminus ] };
    key <AE10> { [           0,        equal,       notequal,         degree ] };
    key <AE11> { [  apostrophe,     question,      backslash,       infinity ] };

    key <AD11> { [  dead_acute, dead_diaeresis,  dead_abovering, dead_abovering ] };
    key <AD12> { [        plus,       asterisk,      dead_tilde,    dead_macron ] };
    key <AC11> { [   braceleft,    bracketleft, dead_circumflex,     dead_caron ] };
    key <BKSL> { [  braceright,   bracketright,      dead_grave,     dead_grave ] };

    key <AB06> { [         k,          K,          kra,    ampersand ] };
    key <AC02> { [         r,          R,   registered,    trademark ] };
    key <AC03> { [         s,          S,       ssharp,      section ] };
    key <AC04> { [         t,          T,        thorn,        THORN ] };
    key <AC05> { [         d,          D,          eth,          ETH ] };
    key <AC07> { [         n,          N,    dead_hook,    dead_horn ] };
    key <AC08> { [         e,          E,     EuroSign,         cent ] };
    key <AC09> { [         i,          I,     integral,     idotless ] };
    key <AC10> { [         o,          O,       oslash,     Ooblique ] };
    key <AD03> { [         f,          F,      dstroke,  ordfeminine ] };
    key <AD04> { [         p,          P,     Greek_pi,    paragraph ] };
    key <AD05> { [         g,          G,          eng,          ENG ] };
    key <AD06> { [         j,          J,  onequarter, threequarters ] };
    key <AD07> { [         l,          L,      lstroke,      Lstroke ] };
    key <AD08> { [         u,          U,        aring,        Aring ] };
    key <AD09> { [         y,          Y,          yen,        UFFE5 ] };
    key <AD10> { [    ntilde,     Ntilde,   dead_tilde, dead_doubleacute ] };
};
