// HackHaste keyboard layout. Dr. Marcus Roe, https://drm.cc/ . MIT License.
// XFree86 / X.Org 6.x symbols for HackHaste Left.
partial default alphanumeric_keys modifier_keys
xkb_symbols "basic" {
    include "pc/us(basic)"
    name[Group1]= "HackHaste Left";

    key <TLDE> { [              grave,         asciitilde,         dead_tilde,         asciitilde ] };
    key <AE01> { [                  x,                  X,    dead_circumflex,         asciitilde ] };
    key <AE02> { [                  v,                  V,                 oe,                 OE ] };
    key <AE03> { [                  z,                  Z,                 ae,                 AE ] };
    key <AE04> { [                  q,                  Q,         adiaeresis,         Adiaeresis ] };
    key <AE05> { [                  w,                  W,              aring,              Aring ] };
    key <AE06> { [          semicolon,              colon,         odiaeresis,         Odiaeresis ] };
    key <AE07> { [                  1,             exclam,         exclamdown,        onesuperior ] };
    key <AE08> { [                  2,                 at,          masculine,        twosuperior ] };
    key <AE09> { [                  3,         numbersign,        ordfeminine,      threesuperior ] };
    key <AE10> { [                  4,             dollar,               cent,           sterling ] };
    key <AE11> { [                  5,            percent,           EuroSign,                yen ] };
    key <AE12> { [                  6,        asciicircum,            hstroke,            Hstroke ] };
    key <AD01> { [                  p,                  P,             oslash,           Ooblique ] };
    key <AD02> { [                  g,                  G,        dead_ogonek,         asciitilde ] };
    key <AD03> { [                  c,                  C,           ccedilla,           Ccedilla ] };
    key <AD04> { [                  l,                  L,            lstroke,            Lstroke ] };
    key <AD05> { [                  k,                  K,     dead_abovering,         asciitilde ] };
    key <AD06> { [              minus,         underscore,             endash,             emdash ] };
    key <AD07> { [                  7,          ampersand,                eth,                ETH ] };
    key <AD08> { [                  8,           asterisk,              thorn,              THORN ] };
    key <AD09> { [                  9,          parenleft, leftsinglequotemark, leftdoublequotemark ] };
    key <AD10> { [                  0,         parenright, rightsinglequotemark, rightdoublequotemark ] };
    key <AD11> { [        bracketleft,          braceleft,      guillemotleft,          0x1002039 ] };
    key <AD12> { [       bracketright,         braceright,     guillemotright,          0x100203a ] };
    key <BKSL> { [          backslash,                bar,         asciitilde,         asciitilde ] };
    key <AC01> { [                  n,                  N,             ntilde,             Ntilde ] };
    key <AC02> { [                  t,                  T,         dead_acute,   dead_doubleacute ] };
    key <AC03> { [                  s,                  S,             ssharp,         asciitilde ] };
    key <AC04> { [                  r,                  R,         dead_grave,         asciitilde ] };
    key <AC05> { [                  h,                  H,         dead_caron,         asciitilde ] };
    key <AC06> { [                  o,                  O,             oacute,             Oacute ] };
    key <AC07> { [                  e,                  E,             eacute,             Eacute ] };
    key <AC08> { [                  a,                  A,             aacute,             Aacute ] };
    key <AC09> { [                  i,                  I,             iacute,             Iacute ] };
    key <AC10> { [                  u,                  U,             uacute,             Uacute ] };
    key <AC11> { [                  y,                  Y,         udiaeresis,         Udiaeresis ] };
    key <AB01> { [                  f,                  F,             atilde,             Atilde ] };
    key <AB02> { [                  b,                  B,         dead_breve,         asciitilde ] };
    key <AB03> { [                  d,                  D,     dead_diaeresis,         asciitilde ] };
    key <AB04> { [                  m,                  M,        dead_macron,         asciitilde ] };
    key <AB05> { [                  j,                  J,            dstroke,            Dstroke ] };
    key <AB06> { [              equal,               plus,           multiply,           division ] };
    key <AB07> { [         apostrophe,           quotedbl,             otilde,             Otilde ] };
    key <AB08> { [              comma,               less,       dead_cedilla,         asciitilde ] };
    key <AB09> { [             period,            greater,      dead_abovedot,         asciitilde ] };
    key <AB10> { [              slash,           question,       questiondown,         asciitilde ] };
    key <LSGT> { [              minus,         underscore,             endash,             emdash ] };
    // Caps Lock is Control. Physical Left Ctrl is Caps_Lock (letters).
    replace key <CAPS> { [ Control_L ], type[group1] = "ONE_LEVEL" };
    replace key <LCTL> { [ Caps_Lock ], type[group1] = "ONE_LEVEL" };
    modifier_map Control { <CAPS> };
    modifier_map Lock { <LCTL> };
    key <SPCE> { [ space, space, space, nobreakspace ] };
    include "level3(ralt_switch)"
};
