// $XKeyboardConfig$

// based on generic spanish keyboard
// an imaginary keyboard layout for the kreyòl ayisyen language
// for illustration purposes only, by Roberto
//
// $XFree86: xc/programs/xkbcomp/symbols/ht,v 1.2 2002/11/22 04:03:28 dawes Exp $

partial default alphanumeric_keys
xkb_symbols "basic" {

    name[Group1]="Haiti";

// numbers
    key <AE01> {[ 1,     exclam,         bar, onesuperior   ]};
    key <AE02> {[ 2,  backslash,          at, twosuperior   ]};
    key <AE03> {[ 3, numbersign,  asciitilde, threesuperior ]};
    key <AE04> {[ 4,     dollar,    EuroSign, onequarter    ]};
    key <AE05> {[ 5,    percent,     onehalf, fiveeighths   ]};
    key <AE06> {[ 6,  ampersand,     notsign, threequarters ]};
    key <AE07> {[ 7,      slash,   backslash, seveneighths  ]};
    key <AE08> {[ 8,  parenleft,   oneeighth, threeeighths  ]};
    key <AE09> {[ 9, parenright, asciicircum                ]};
    key <AE10> {[ 0,      equal,   copyright                ]};

// left/right of numbers row is a small control bar area
    key <TLDE> {[   quotedbl,        guillemotleft,  leftsinglequotemark,  leftdoublequotemark ]};
    key <AE11> {[ apostrophe,       guillemotright, rightsinglequotemark, rightdoublequotemark ]};
    key <AE12> {[     hyphen, Continuous_Underline,               degree                       ]};

// keys after P are a small control bar area
    key <AD11> {[ dead_grave, dead_circumflex,  bracketleft            ]};
    key <AD12> {[       plus,        asterisk, bracketright, plusminus ]};

// keys after Ñ are a small control bar area
    key <AC11> {[dead_acute, dead_diaeresis,  braceleft ]};
    key <BKSL> {[  ccedilla,       Ccedilla, braceright ]}; // ç - non-native kreyòl symbol

// before Z and keys after M are a small control bar area
    key <LSGT> {[     less,   greater ]};
    key <AB08> {[    comma, semicolon ]};
    key <AB09> {[   period,     colon ]};
    key <AB10> {[ question,    exclam ]};

    key <AD01> {[ q, Q        ]}; // non-native kreyòl symbol
    key <AD02> {[ w, W, w     ]};
    key <AD03> {[ e, E, e     ]};
    key <AD04> {[ r, R, U0281 ]};
    key <AD05> {[ t, T, t     ]};
    key <AD06> {[ y, Y, j     ]};
    key <AD07> {[ u, u, u     ]}; // non-native kreyòl isolate
    key <AD08> {[ i, I, i     ]};
    key <AD09> {[ o, O, o     ]};
    key <AD10> {[ p, P, p     ]};

    key <AC01> {[ a, A, a     ]};
    key <AC02> {[ s, S, s     ]};
    key <AC03> {[ d, D, d     ]};
    key <AC04> {[ f, F, f     ]};
    key <AC05> {[ g, G, g     ]};
    key <AC06> {[ h, h        ]}; // non-native kreyòl isolate
    key <AC07> {[ j, J, U0292 ]};
    key <AC08> {[ k, K, k     ]};
    key <AC09> {[ l, L, l     ]};
    key <AC10> {[ ntilde, Ntilde, dead_tilde ]}; // ñ - non-native kreyòl symbol

    key <AB01> {[ z, Z, z        ]};
    key <AB02> {[ x, X           ]}; // non-native kreyòl symbol
    key <AB03> {[ c, C           ]}; // non-native kreyòl isolate
    key <AB04> {[ v, V, v        ]};
    key <AB05> {[ b, B, b        ]};
    key <AB06> {[ n, N, n, U1D51 ]};
    key <AB07> {[ m, M, m        ]};

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "Sundeadkeys" {

    include "ht(basic)"

    key <AC11>  { [SunFA_Acute, SunFA_Diaeresis, braceleft, braceleft ] };
    key <AD11>  { [SunFA_Grave, SunFA_Circum, bracketleft, dead_abovering ] };
};

partial alphanumeric_keys
xkb_symbols "sundeadkeys" {

    include "ht(Sundeadkeys)"

    name[Group1]="Haiti - Sun dead keys";
};

partial alphanumeric_keys
xkb_symbols "nodeadkeys" {

    include "ht(basic)"

    name[Group1]="Haiti - Eliminate dead keys";

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

};

// Copied from macintosh_vndr/es
partial alphanumeric_keys 
xkb_symbols "mac" {

    // Describes the differences between a very simple mac_US
    // keyboard and a very simple Spanish keybaord

    include "ht"
    name[Group1]= "Haiti - Macintosh";
    
    key <AC10>  { [    ntilde,     Ntilde,   dead_tilde,  doubleacute ] };
};

Since Kreyòl has such a strong oral tradition, and because I want to make a unicode example, I included the ipa symbol for the basic letters at the altgr modifier.

rules

Now I need to add the entry to rules/evdev.xml. The ISO 639-3 code for kreyòl asisyen is hat:

    <layout>
      <configItem>
        <name>ht</name>
        <shortDescription>Ht</shortDescription>
        <description>Kreyòl Ayiseyn</description>
        <countryList>
          <iso3166Id>HT</iso3166Id>
        </countryList>
        <languageList><iso639Id>hat</iso639Id></languageList>
      </configItem>
      <variantList>
        <variant>
          <configItem>
            <name>nodeadkeys</name>
            <description>Eliminate dead keys</description>
          </configItem>
        </variant>
        <variant>
          <configItem>
            <name>sundeadkeys</name>
            <description>Sun dead keys</description>
          </configItem>
        </variant>
      </variantList>
    </layout>

Howto: Custom keyboard layout definitions/ht (last edited 2010-05-24 01:48:37 by roberto-tomas-cuentas)