Home | History | Annotate | Line # | Download | only in symbols
      1 // This file includes Indian layouts for:
      2 //     - Hindi
      3 //     - Marathi
      4 //     - Sanskrit
      5 //     - Bangla
      6 //     - Gujarati
      7 //     - Kannada
      8 //     - Malayalam
      9 //     - Ol Chiki
     10 //     - Oriya
     11 //     - Tamil
     12 //     - Telugu
     13 //     - Urdu
     14 
     15 // Links:
     16 // - Indic INSCRIPT keyboard layout diagrams:
     17 //     http://java.sun.com/products/jfc/tsc/articles/InputMethod/indiclayout.html
     18 // - Bangla Baishakhi (Bangla layouts):
     19 // - Bangla Baishakhi InScript (Bangla layouts):
     20 // - Bangla Bornona (Bangla layouts):
     21 // - Uni Gitanjali (Bangla layouts):
     22 //     http://nltr.org
     23 // - Ekusheyr Shadhinota (Bangla layouts):
     24 //     http://ekushey.org/projects/shadhinota/index.html
     25 // - Microsoft Windows XP SP2: Indic Language Standards - an Introduction:
     26 //     http://www.bhashaindia.com/MSProducts/XpSp2/Articles/IndicLanguageStandards.aspx
     27 // - Ol Chiki:
     28 //    http://www.unicode.org/L2/L2005/05243r-n2984-ol-chiki.pdf (fig. 9)
     29 
     30 // Devangari is the default. Kill me if I am wrong:)
     31 default partial alphanumeric_keys
     32 xkb_symbols "deva" {
     33 	// March 2004 -- David Holl <smyrph+dev_xkb (a] ece.wpi.edu>
     34 	name[Group1]="Indian";
     35 
     36 	key.type[group1]="FOUR_LEVEL";
     37 
     38 	key <TLDE> { [ U094a, U0912,   grave, asciitilde  ] };
     39 	key <AE01> { [ U0967, U090d,       1, exclam      ] };
     40 	key <AE02> { [ U0968, U0945,       2, at          ] };
     41 	// Shift+AE0[3-8] really need to return a macro of keys defined by
     42 	// INSCRIPT in place of the symbols that are here for now.  But this
     43 	// requires XKB to map 1 key into two to three other key presses.
     44 	key <AE03> { [ U0969, numbersign,  3, numbersign  ] };
     45 	key <AE04> { [ U096a, dollar,      4, U20b9       ] }; // Rupee
     46 	key <AE05> { [ U096b, percent,     5, percent     ] };
     47 	key <AE06> { [ U096c, asciicircum, 6, asciicircum ] };
     48 	key <AE07> { [ U096d, ampersand,   7, ampersand   ] };
     49 	key <AE08> { [ U096e, asterisk,    8, asterisk    ] };
     50 	key <AE09> { [ U096f, parenleft,   9, parenleft   ] };
     51 	key <AE10> { [ U0966, parenright,  0, parenright  ] };
     52 	key <AE11> { [ minus, U0903,   minus, underscore  ] };
     53 	key <AE12> { [ U0943, U090b,   U0944, U0960       ] };
     54 
     55 	key <AD01> { [ U094c, U0914 ] };
     56 	key <AD02> { [ U0948, U0910 ] };
     57 	key <AD03> { [ U093e, U0906 ] };
     58 	key <AD04> { [ U0940, U0908, U0963, U0961 ] };
     59 	key <AD05> { [ U0942, U090a ] };
     60 	key <AD06> { [ U092c, U092d ] };
     61 	key <AD07> { [ U0939, U0919 ] };
     62 	key <AD08> { [ U0917, U0918, U095a ] };
     63 	key <AD09> { [ U0926, U0927 ] };
     64 	key <AD10> { [ U091c, U091d, U095b ] };
     65 	key <AD11> { [ U0921, U0922, U095c, U095d ] };
     66 	key <AD12> { [ U093c, U091e ] };
     67 	key <BKSL> { [ U0949, U0911, backslash, bar ] };
     68 
     69 	key <AC01> { [ U094b, U0913 ] };
     70 	key <AC02> { [ U0947, U090f ] };
     71 	key <AC03> { [ U094d, U0905 ] };
     72 	key <AC04> { [ U093f, U0907, U0962, U090c ] };
     73 	key <AC05> { [ U0941, U0909 ] };
     74 	key <AC06> { [ U092a, U092b, NoSymbol, U095e ] };
     75 	key <AC07> { [ U0930, U0931 ] };
     76 	key <AC08> { [ U0915, U0916, U0958, U0959 ] };
     77 	key <AC09> { [ U0924, U0925 ] };
     78 	key <AC10> { [ U091a, U091b, U0952 ] };
     79 	key <AC11> { [ U091f, U0920, NoSymbol, U0951 ] };
     80 
     81 	key <AB01> { [ U0946, U090e, U0953 ] };
     82 	key <AB02> { [ U0902, U0901, NoSymbol, U0950 ] };
     83 	key <AB03> { [ U092e, U0923, U0954 ] };
     84 	key <AB04> { [ U0928, U0929 ] };
     85 	key <AB05> { [ U0935, U0934 ] };
     86 	key <AB06> { [ U0932, U0933 ] };
     87 	key <AB07> { [ U0938, U0936 ] };
     88 	key <AB08> { [ comma, U0937, U0970 ] };
     89 	key <AB09> { [period, U0964, U0965, U093d ] };
     90 	key <AB10> { [ U092f, U095f, slash, question ] };
     91 
     92 	// space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ):
     93 	include "nbsp(zwnj3zwj4)"
     94 
     95 	include "level3(ralt_switch)"
     96 };
     97 
     98 //Name		:	Bolnagri (Combined)
     99 //Description	:	A phonetic keyboard layout for Devnagari(Hindi)
    100 //			http://www.indlinux.org/wiki/index.php/BolNagri
    101 //NOTE		:	This is a combined map of bolnagri_matras and bolnagri_vowels.
    102 //Inspired by "devrom" keymap by Steve Smith for the windows tool "keyman"
    103 //Original Author :	Noah Levitt<nlevitt at columbia.edu>
    104 //Past Authors  : Pramod.R <pramodr at gmail.com> and Ravikant <ravikant at sarai.net>
    105 //Current Main. : G Karunakar <karunakar (a] indlinux.org>
    106 
    107 partial alphanumeric_keys
    108 xkb_symbols "bolnagri" {
    109      name[Group1] = "Hindi (Bolnagri)";
    110      key.type[group1]="FOUR_LEVEL";
    111 
    112     // Roman digits
    113     key <TLDE>  { [   U0902,	U0901,		grave,		asciitilde ] }; // anusvara, candrabindu
    114     key <AE01>  { [   1,	exclam,		U0967,		exclam	   ] };
    115     key <AE02>  { [   2,	at,		U0968,		at	   ] };
    116     key <AE03>  { [   3,	numbersign,	U0969,		numbersign ] };
    117     key <AE04>  { [   4,	dollar,		U096A,		U20B9      ] }; // Rupee
    118     key <AE05>  { [   5,	percent,	U096B,		percent    ] };
    119     key <AE06>  { [   6,	asciicircum,	U096C,		asciicircum ] };
    120     key <AE07>  { [   7,	ampersand,	U096D,		ampersand  ] };
    121     key <AE08>  { [   8,	asterisk,	U096E,		asterisk   ] };
    122     key <AE09>  { [   9,	parenleft,	U096F,		parenleft  ] };
    123     key <AE10>  { [   0,	parenright,	U0966,		parenright ] };
    124     key <AE11>  { [   minus,	underscore	     ] };
    125     key <AE12>  { [   equal,	plus		     ] };
    126     key <BKSL>  { [   U0964,	U0965,		backslash,	bar        ] }; // danda, double danda
    127 
    128     key <AD01>   { [   U200C,   U200D   ] };  // Q: ZWNJ, ZWJ
    129     key <AD02>   { [   U0935,   U0950   ] };  // W: wa, OM
    130     key <AD03>   { [   U0947,   U0948,	U090F,	U0910   ] };  // E: e, ai matras
    131     key <AD04>   { [   U0930,   U0943,	U0931,  U090B   ] };  // R: ra, vocalic Ri
    132     key <AD05>   { [   U0924,   U0925   ] };  // T: ta, tha
    133     key <AD06>   { [   U092f,   U091E   ] };  // Y: ya, nya
    134     key <AD07>   { [   U0941,   U0942,	U0909,	U090A   ] };  // U: u, uu matras
    135     key <AD08>   { [   U093F,   U0940,	U0907,	U0908   ] };  // I: i, ii matras
    136     key <AD09>   { [   U094B,   U094C,	U0913,	U0914   ] };  // O: o, au matras
    137     key <AD10>   { [   U092A,   U092B   ] };  // P: pa, pha
    138     key <AD11>   { [   bracketleft,   braceleft   ] };
    139     key <AD12>	 { [   bracketright, braceright   ] };
    140 
    141     key <AC01>   { [   U093E,    U0906, U0905,  U0906  ] };   // A: aa, full A, AA
    142     key <AC02>   { [   U0938,    U0937   ] };  // S: sa, ssa
    143     key <AC03>   { [   U0926,    U0927   ] };  // D: da, dha
    144     key <AC04>   { [   U091F,    U0920   ] };  // F: TA, THA
    145     key <AC05>   { [   U0917,    U0918   ] };  // G: ga, gha
    146     key <AC06>   { [   U0939,    U0903   ] };  // H: ha, visarg
    147     key <AC07>   { [   U091C,    U091D   ] };  // J: ja, jha
    148     key <AC08>   { [   U0915,    U0916   ] };  // K: ka, kha
    149     key <AC09>   { [   U0932,    U0933, U0962,  U090C   ] };  // L: la, vocalic L or lru matra
    150     key <AC10>   { [   semicolon, colon  ] };
    151     key <AC11>   { [apostrophe, quotedbl ] };
    152 
    153     key <AB01>   { [   U0936,    U0945, U0936,  U090D  ] };  // Z: sha, akaar candra
    154     key <AB02>   { [   U094D,    U0949, U094D,  U0911  ] };  // X: halant, aakaar candra, chandra A
    155     key <AB03>   { [   U091A,    U091B   ] };  // C: ca, cha
    156     key <AB04>   { [   U0921,    U0922   ] };  // V: da, dha
    157     key <AB05>   { [   U092C,    U092D   ] };  // B: ba, bha
    158     key <AB06>   { [   U0928,    U0923   ] };  // N: na, nna
    159     key <AB07>   { [   U092E,    U0919, U092E,  U093D  ] };  // M: ma, nga, avagraha
    160     key <AB08>   { [   comma,    U0970   ] };  // dev abbreviation sign
    161     key <AB09>   { [   period,   U093C   ] };  // nukta
    162     key <AB10>	 { [   slash,   question ] };
    163 
    164     include "level3(ralt_switch)"
    165 };
    166 
    167 partial alphanumeric_keys
    168 xkb_symbols "ben" {
    169     name[Group1]= "Bangla (India)";
    170 
    171     // Mainly digits:
    172     key <AE01> {[  U09E7         ]};
    173     key <AE02> {[  U09E8         ]};
    174     key <AE03> {[  U09E9         ]};
    175     key <AE04> {[  U09EA         ]};
    176     key <AE05> {[  U09EB         ]};
    177     key <AE06> {[  U09EC         ]};
    178     key <AE07> {[  U09ED         ]};
    179     key <AE08> {[  U09EE         ]};
    180     key <AE09> {[  U09EF,  parenleft ]};
    181     key <AE10> {[  U09E6, parenright ]};
    182     key <AE11> {[  minus,  U0983 ]};
    183     key <AE12> {[  U098B,  U09C3 ]};
    184 
    185     // Mainly long vowels:
    186     key <AD01> {[  U09CC,  U0994 ]};
    187     key <AD02> {[  U09C8,  U0990 ]};
    188     key <AD03> {[  U09BE,  U0986 ]};
    189     key <AD04> {[  U09C0,  U0988 ]};
    190     key <AD05> {[  U09C2,  U098A ]};
    191 
    192     // Mainly voiced consonants:
    193     key <AD06> {[  U09AC,  U09AD ]};
    194     key <AD07> {[  U09B9,  U0999 ]};
    195     key <AD08> {[  U0997,  U0998 ]};
    196     key <AD09> {[  U09A6,  U09A7 ]};
    197     key <AD10> {[  U099C,  U099D ]};
    198     key <AD11> {[  U09A1,  U09A2 ]};
    199     key <AD12> {[  U09BC,  U099E ]};
    200 
    201     // Mainly short vowels:
    202     key <AC01> {[  U09CB,  U0993 ]};
    203     key <AC02> {[  U09C7,  U098F ]};
    204     key <AC03> {[  U09CD,  U0985 ]};
    205     key <AC04> {[  U09BF,  U0987 ]};
    206     key <AC05> {[  U09C1,  U0989 ]};
    207 
    208     // Mainly unvoiced consonants:
    209     key <AC06> {[  U09AA,  U09AB ]};
    210     key <AC07> {[  U09B0,  U09DD ]};
    211     key <AC08> {[  U0995,  U0996 ]};
    212     key <AC09> {[  U09A4,  U09A5 ]};
    213     key <AC10> {[  U099A,  U099B ]};
    214     key <AC11> {[  U099F,  U09A0 ]};
    215     key <BKSL> {[ backslash, bar ]};
    216 
    217     key <AB01> {[      z,      Z ]};
    218     key <AB02> {[  U0982,  U0981 ]};
    219     key <AB03> {[  U09AE,  U09A3 ]};
    220     key <AB04> {[  U09A8,  U09A8 ]};
    221     key <AB05> {[  U09AC,  U09AC ]};
    222     key <AB06> {[  U09B2,  U09B2 ]};
    223     key <AB07> {[  U09B8,  U09B6 ]};
    224     key <AB08> {[  comma,  U09B7 ]};
    225     key <AB09> {[ period,  U0964 ]};
    226     key <AB10> {[  U09DF,  U09AF ]};
    227 
    228     include "rupeesign(4)"
    229     include "level3(ralt_switch)"
    230 };
    231 
    232 xkb_symbols "ben_probhat" {
    233    name[Group1]= "Bangla (India, Probhat)";
    234    key.type[group1]="FOUR_LEVEL";
    235 
    236    // Digits row:
    237    key <TLDE> { [ U200D, asciitilde   ] };
    238    key <AE01> { [ U09E7, exclam, U09F4 ] };
    239    key <AE02> { [ U09E8, at, U09F5 ] };
    240    key <AE03> { [ U09E9, numbersign, U09F6 ] };
    241    key <AE04> { [ U09EA, U09F3, U09F7, U09F2 ] };
    242    key <AE05> { [ U09EB, percent      ] };
    243    key <AE06> { [ U09EC, asciicircum  ] };
    244    key <AE07> { [ U09ED, U099E, U09FA ] };
    245    key <AE08> { [ U09EE, U09CE    ] };
    246    key <AE09> { [ U09EF, parenleft    ] };
    247    key <AE10> { [ U09E6, parenright, U09F8, U09F9 ] };
    248    key <AE11> { [ minus,     underscore   ] };
    249    key <AE12> { [ equal,     plus         ] };
    250 
    251    // Q row:
    252    key <AD01> { [   U09A6,  U09A7  ] };
    253    key <AD02> { [   U09C2,  U098A  ] };
    254    key <AD03> { [   U09C0,  U0988  ] };
    255    key <AD04> { [   U09B0,  U09DC, U20B9 ] }; // Rupee
    256    key <AD05> { [   U099F,  U09A0  ] };
    257    key <AD06> { [   U098F,  U0990  ] };
    258    key <AD07> { [   U09C1,  U0989  ] };
    259    key <AD08> { [   U09BF,  U0987  ] };
    260    key <AD09> { [   U0993,  U0994  ] };
    261    key <AD10> { [   U09AA,  U09AB  ] };
    262    key <AD11> { [   U09C7,  U09C8  ] };
    263    key <AD12> { [   U09CB,  U09CC, U09D7 ] };
    264 
    265    // A row:
    266    key <AC01> { [   U09BE,  U0985, U098C, U09E0 ] };
    267    key <AC02> { [   U09B8,  U09B7, U09E1, U09E3 ] };
    268    key <AC03> { [   U09A1,  U09A2, U09C4, U09E2 ] };
    269    key <AC04> { [   U09A4,  U09A5  ] };
    270    key <AC05> { [   U0997,  U0998  ] };
    271    key <AC06> { [   U09B9,  U0983, U09BD ] };
    272    key <AC07> { [   U099C,  U099D  ] };
    273    key <AC08> { [   U0995,  U0996  ] };
    274    key <AC09> { [   U09B2,  U0982  ] };
    275    key <AC10> { [   semicolon,  colon      ] };
    276    key <AC11> { [   apostrophe, quotedbl   ] };
    277 
    278    // Z row:
    279    key <AB01> { [   U09DF,  U09AF  ] };
    280    key <AB02> { [   U09B6,  U09DD  ] };
    281    key <AB03> { [   U099A,  U099B  ] };
    282    key <AB04> { [   U0986,  U098B  ] };
    283    key <AB05> { [   U09AC,  U09AD  ] };
    284    key <AB06> { [   U09A8,  U09A3  ] };
    285    key <AB07> { [   U09AE,  U0999  ] };
    286    key <AB08> { [   comma,  U09C3  ] };
    287    key <AB09> { [   U0964,  U0981, U09BC ] };
    288    key <AB10> { [   U09CD,  question   ] };
    289    key <BKSL> { [   U200C,  U0965  ] };
    290 
    291    include "level3(ralt_switch)"
    292 };
    293 
    294 // The Bangla Baishakhi, Bangla Baishakhi Inscript, Bangla Bornona, and Uni Gitanjali layouts
    295 // were added by Promathesh Mandal <promathesh812004 (a] gmail.com>
    296 
    297 xkb_symbols "ben_baishakhi" {
    298    name[Group1]= "Bangla (India, Baishakhi)";
    299 
    300    // Digits row
    301    key <TLDE> { [   0x100200D, 0x100200C   ] };
    302    key <AE01> { [   0x10009E7, exclam      ] };
    303    key <AE02> { [   0x10009E8, at          ] };
    304    key <AE03> { [   0x10009E9, numbersign  ] };
    305    key <AE04> { [   0x10009EA, dollar,     0x10009F2  ] };
    306    key <AE05> { [   0x10009EB, percent     ] };
    307    key <AE06> { [   0x10009EC, asciicircum,0x10009D7  ] };
    308    key <AE07> { [   0x10009ED, ampersand   ] };
    309    key <AE08> { [   0x10009EE, asterisk,   0x10009FA  ] };
    310    key <AE09> { [   0x10009EF, parenleft   ] };
    311    key <AE10> { [   0x10009E6, parenright  ] };
    312    key <AE11> { [   minus,     underscore  ] };
    313    key <AE12> { [   equal,     plus        ] };
    314 
    315    // Q row
    316    key <AD01> { [   0x10009A1,  0x10009A2  ] };
    317    key <AD02> { [   0x10009C0,  0x10009C2  ] };
    318    key <AD03> { [   0x10009C7,  0x100098F, 0x1000990  ] };
    319    key <AD04> { [   0x10009B0,  0x10009C3, 0x100098B  ] };
    320    key <AD05> { [   0x100099F,  0x10009A0  ] };
    321    key <AD06> { [   0x10009AF,  0x10009DF  ] };
    322    key <AD07> { [   0x10009C1,  0x1000989, 0x100098A  ] };
    323    key <AD08> { [   0x10009BF,  0x1000987, 0x1000988  ] };
    324    key <AD09> { [   0x10009CB,  0x1000993, 0x1000994  ] };
    325    key <AD10> { [   0x10009AA,  0x10009AB  ] };
    326    key <AD11> { [ bracketleft,  braceleft  ] };
    327    key <AD12> { [ bracketright, braceright ] };
    328 
    329    // A row
    330    key <AC01> { [   0x10009BE,  0x1000985, 0x1000986  ] };
    331    key <AC02> { [   0x10009B8,  0x10009B6, 0x10009B7  ] };
    332    key <AC03> { [   0x10009A6,  0x10009A7  ] };
    333    key <AC04> { [   0x10009A4,  0x10009A5, 0x10009CE  ] };
    334    key <AC05> { [   0x1000997,  0x1000998  ] };
    335    key <AC06> { [   0x10009CD,  0x10009B9, 0x1000983  ] };
    336    key <AC07> { [   0x100099C,  0x100099D  ] };
    337    key <AC08> { [   0x1000995,  0x1000996  ] };
    338    key <AC09> { [   0x10009B2,  0x1000964, 0x100098C  ] };
    339    key <AC10> { [   semicolon,  colon      ] };
    340    key <AC11> { [   apostrophe, quotedbl   ] };
    341 
    342    // Z row
    343    key <AB01> { [   0x10009C8,  0x10009CC  ] };
    344    key <AB02> { [   0x10009DC,  0x10009DD  ] };
    345    key <AB03> { [   0x100099A,  0x100099B  ] };
    346    key <AB04> { [   0x10009F1,  0x10009F0  ] };
    347    key <AB05> { [   0x10009AC,  0x10009AD  ] };
    348    key <AB06> { [   0x10009A8,  0x10009A3, 0x100099E  ] };
    349    key <AB07> { [   0x10009AE,  0x1000999, 0x1000981  ] };
    350    key <AB08> { [   comma,      less       ] };
    351    key <AB09> { [   period,     greater,   0x10009BC  ] };
    352    key <AB10> { [   slash,      question,  0x1000982  ] };
    353    key <BKSL> { [   backslash,  bar        ] };
    354 
    355    include "level3(ralt_switch)"
    356 };
    357 
    358 xkb_symbols "ben_inscript" {
    359     name[Group1]= "Bangla (India, Baishakhi InScript)";
    360 
    361     // Mainly digits:
    362     key <TLDE> {[  0x100200D,  0x100200C  ]};
    363     key <AE01> {[  0x10009E7              ]};
    364     key <AE02> {[  0x10009E8              ]};
    365     key <AE03> {[  0x10009E9              ]};
    366     key <AE04> {[  0x10009EA              ]};
    367     key <AE05> {[  0x10009EB              ]};
    368     key <AE06> {[  0x10009EC              ]};
    369     key <AE07> {[  0x10009ED              ]};
    370     key <AE08> {[  0x10009EE              ]};
    371     key <AE09> {[  0x10009EF,  parenleft  ]};
    372     key <AE10> {[  0x10009E6,  parenright ]};
    373     key <AE11> {[  minus,      0x1000983  ]};
    374     key <AE12> {[  0x10009C3,  0x100098B  ]};
    375 
    376     // Mainly long vowels:
    377     key <AD01> {[  0x10009CC,  0x1000994  ]};
    378     key <AD02> {[  0x10009C8,  0x1000990  ]};
    379     key <AD03> {[  0x10009BE,  0x1000986  ]};
    380     key <AD04> {[  0x10009C0,  0x1000988  ]};
    381     key <AD05> {[  0x10009C2,  0x100098A  ]};
    382 
    383     // Mainly voiced consonants:
    384     key <AD06> {[  0x10009AC,  0x10009AD  ]};
    385     key <AD07> {[  0x10009B9,  0x1000999  ]};
    386     key <AD08> {[  0x1000997,  0x1000998  ]};
    387     key <AD09> {[  0x10009A6,  0x10009A7  ]};
    388     key <AD10> {[  0x100099C,  0x100099D  ]};
    389     key <AD11> {[  0x10009A1,  0x10009A2  ]};
    390     key <AD12> {[  0x10009BC,  0x100099E  ]};
    391 
    392     // Mainly short vowels:
    393     key <AC01> {[  0x10009CB,  0x1000993  ]};
    394     key <AC02> {[  0x10009C7,  0x100098F  ]};
    395     key <AC03> {[  0x10009CD,  0x1000985  ]};
    396     key <AC04> {[  0x10009BF,  0x1000987  ]};
    397     key <AC05> {[  0x10009C1,  0x1000989  ]};
    398 
    399     // Mainly unvoiced consonants:
    400     key <AC06> {[  0x10009AA,  0x10009AB  ]};
    401     key <AC07> {[  0x10009B0,  0x10009DD  ]};
    402     key <AC08> {[  0x1000995,  0x1000996  ]};
    403     key <AC09> {[  0x10009A4,  0x10009A5  ]};
    404     key <AC10> {[  0x100099A,  0x100099B  ]};
    405     key <AC11> {[  0x100099F,  0x10009A0  ]};
    406     key <BKSL> {[  backslash,  bar        ]};
    407 
    408     key <AB01> {[  0x10009CE              ]};
    409     key <AB02> {[  0x1000982,  0x1000981  ]};
    410     key <AB03> {[  0x10009AE,  0x10009A3  ]};
    411     key <AB04> {[  0x10009A8,  0x10009A8  ]};
    412     key <AB05> {[  0x10009AC,  0x10009AC  ]};
    413     key <AB06> {[  0x10009B2,  0x10009B2  ]};
    414     key <AB07> {[  0x10009B8,  0x10009B6  ]};
    415     key <AB08> {[  comma,      0x10009B7  ]};
    416     key <AB09> {[  period,     0x1000964  ]};
    417     key <AB10> {[  0x10009DF,  0x10009AF  ]};
    418 };
    419 
    420 xkb_symbols "ben_gitanjali" {
    421     name[Group1]= "Bangla (India, Gitanjali)";
    422 
    423     key <TLDE> {[ colon,     question   ]};
    424     key <AE01> {[ 0x10009E7, 0x10009CE  ]};
    425     key <AE02> {[ 0x10009E8, apostrophe ]};
    426     key <AE03> {[ 0x10009E9, numbersign ]};
    427     key <AE04> {[ 0x10009EA, 0x10009F3  ]};
    428     key <AE05> {[ 0x10009EB, slash      ]};
    429     key <AE06> {[ 0x10009EC, period     ]};
    430     key <AE07> {[ 0x10009ED, ampersand  ]};
    431     key <AE08> {[ 0x10009EE, asterisk   ]};
    432     key <AE09> {[ 0x10009EF, parenleft  ]};
    433     key <AE10> {[ 0x10009E6, parenright ]};
    434     key <AE11> {[ minus,     0x1000983  ]};
    435     key <AE12> {[ 0x10009C3, 0x100098B  ]};
    436 
    437     // Q row
    438     key <AD01> {[ 0x10009D7,  0x1000994 ]};
    439     key <AD02> {[ 0x10009C8,  0x1000990 ]};
    440     key <AD03> {[ 0x10009BE,  0x1000985 ]};
    441     key <AD04> {[ 0x10009C0,  0x1000988 ]};
    442     key <AD05> {[ 0x10009C2,  0x100098A ]};
    443     key <AD06> {[ 0x10009AC,  0x10009AD ]};
    444     key <AD07> {[ 0x10009B9,  0x1000999 ]};
    445     key <AD08> {[ 0x1000997,  0x1000998 ]};
    446     key <AD09> {[ 0x10009A6,  0x10009A7 ]};
    447     key <AD10> {[ 0x100099C,  0x100099D ]};
    448     key <AD11> {[ 0x10009A1,  0x10009A2 ]};
    449     key <AD12> {[ 0x100200C,  0x100099E ]};
    450 
    451     // A row
    452     key <AC01> {[ 0x100200D,  0x1000993 ]};
    453     key <AC02> {[ 0x10009C7,  0x100098F ]};
    454     key <AC03> {[ 0x10009CD             ]};
    455     key <AC04> {[ 0x10009BF,  0x1000987 ]};
    456     key <AC05> {[ 0x10009C1,  0x1000989 ]};
    457     key <AC06> {[ 0x10009AA,  0x10009AB ]};
    458     key <AC07> {[ 0x10009B0,  0x10009F0 ]};
    459     key <AC08> {[ 0x1000995,  0x1000996 ]};
    460     key <AC09> {[ 0x10009A4,  0x10009A5 ]};
    461     key <AC10> {[ 0x100099A,  0x100099B ]};
    462     key <AC11> {[ 0x100099F,  0x10009A0 ]};
    463 
    464     // Z row
    465     key <AB01> {[ 0x10009C7, 0x100098F ]};
    466     key <AB02> {[ 0x1000982, 0x1000981 ]};
    467     key <AB03> {[ 0x10009AE, 0x10009A3 ]};
    468     key <AB04> {[ 0x10009A8, 0x10009DC ]};
    469     key <AB05> {[ 0x10009F1, 0x10009DD ]};
    470     key <AB06> {[ 0x10009B2            ]};
    471     key <AB07> {[ 0x10009B8, 0x10009B6 ]};
    472     key <AB08> {[ comma,     0x10009B7 ]};
    473     key <AB09> {[ 0x1000964, 0x10009FA ]};
    474     key <AB10> {[ 0x10009AF, 0x10009DF ]};
    475     key <BKSL> {[ backslash, bar       ]};
    476 };
    477 
    478 xkb_symbols "ben_bornona" {
    479  name[Group1]= "Bangla (India, Bornona)";
    480 
    481    key <TLDE> {[  0x100200D,  0x100200C   ]};
    482    key <AE01> {[  0x10009E7,  exclam      ]};
    483    key <AE02> {[  0x10009E8,  0x1000981   ]};
    484    key <AE03> {[  0x10009E9,  numbersign  ]};
    485    key <AE04> {[  0x10009EA,  0x10009F3   ]};
    486    key <AE05> {[  0x10009EB,  percent     ]};
    487    key <AE06> {[  0x10009EC,  0x1000983   ]};
    488    key <AE07> {[  0x10009ED,  0x10009CE   ]};
    489    key <AE08> {[  0x10009EE,  asterisk    ]};
    490    key <AE09> {[  0x10009EF,  parenleft   ]};
    491    key <AE10> {[  0x10009E6,  parenright  ]};
    492    key <AE11> {[  minus,      underscore  ]};
    493    key <AE12> {[  equal,      plus        ]};
    494 
    495    // Q row
    496    key <AD01> {[  0x1000982,  0x1000999,  0x10009D7  ]};
    497    key <AD02> {[  0x10009A2,  0x10009A0,  0x100098A  ]};
    498    key <AD03> {[  0x10009C7,  0x10009C8,  0x1000988  ]};
    499    key <AD04> {[  0x10009B0,  0x10009C3,  0x100098B  ]};
    500    key <AD05> {[  0x10009A4,  0x100099F   ]};
    501    key <AD06> {[  0x10009A7,  0x10009A5,  0x100098F  ]};
    502    key <AD07> {[  0x10009C1,  0x10009C2,  0x1000989  ]};
    503    key <AD08> {[  0x10009BF,  0x10009C0,  0x1000987  ]};
    504    key <AD09> {[  0x10009CB,  0x10009CC,  0x1000993  ]};
    505    key <AD10> {[  0x10009AA,  0x1000990,  0x1000994  ]};
    506    key <AD11> {[ bracketleft, braceleft,  0x10009DC  ]};
    507    key <AD12> {[bracketright, braceright  ]};
    508 
    509    // A row
    510    key <AC01> {[  0x10009BE,  0x1000985,  0x10009F4  ]};
    511    key <AC02> {[  0x10009B8,  0x10009B6,  0x10009F5  ]};
    512    key <AC03> {[  0x10009A6,  0x10009A1,  0x10009F8  ]};
    513    key <AC04> {[  0x10009AB               ]};
    514    key <AC05> {[  0x1000997,  0x1000998   ]};
    515    key <AC06> {[  0x10009CD,  0x10009B9   ]};
    516    key <AC07> {[  0x100099C,  0x100099D   ]};
    517    key <AC08> {[  0x1000995,  0x1000996   ]};
    518    key <AC09> {[  0x10009B2,  0x1000964   ]};
    519    key <AC10> {[  semicolon,  colon       ]};
    520    key <AC11> {[  apostrophe, quotedbl    ]};
    521 
    522    // Z row
    523    key <AB01> {[  0x10009AF,  0x10009DC   ]};
    524    key <AB02> {[  0x10009B7,  0x10009DD,  0x10009FA  ]};
    525    key <AB03> {[  0x100099A,  0x100099B   ]};
    526    key <AB04> {[  0x10009AD               ]};
    527    key <AB05> {[  0x10009AC,  0x10009DF   ]};
    528    key <AB06> {[  0x10009A8,  0x10009A3   ]};
    529    key <AB07> {[  0x10009AE,  0x100099E   ]};
    530    key <AB08> {[  comma,      less        ]};
    531    key <AB09> {[  period,     greater     ]};
    532    key <AB10> {[  slash,      question    ]};
    533    key <BKSL> {[  0x10009F1,  0x10009F0   ]};
    534 
    535    include "level3(ralt_switch)"
    536 };
    537 
    538 partial alphanumeric_keys
    539 xkb_symbols "guj" {
    540 	name[Group1]= "Gujarati";
    541 
    542 	// Mainly digits:
    543 	key <AE01> {[  U0AE7,  U0A8D  ]};
    544 	key <AE02> {[  U0AE8,  U0AC5  ]};
    545 	key <AE03> {[  U0AE9          ]};
    546 	key <AE04> {[  U0AEA          ]};
    547 	key <AE05> {[  U0AEB          ]};
    548 	key <AE06> {[  U0AEC          ]};
    549 	key <AE07> {[  U0AED          ]};
    550 	key <AE08> {[  U0AEE          ]};
    551 	key <AE09> {[  U0AEF,  parenleft ]};
    552 	key <AE10> {[  U0AE6,  parenright]};
    553 	key <AE11> {[  minus,  U0A83  ]};
    554 	key <AE12> {[  U0A8B,  U0AC3  ]};
    555 
    556 	// Mainly long vowels:
    557 	key <AD01> {[  U0ACC,  U0A94  ]};
    558 	key <AD02> {[  U0AC8,  U0A90  ]};
    559 	key <AD03> {[  U0ABE,  U0A86  ]};
    560 	key <AD04> {[  U0AC0,  U0A88  ]};
    561 	key <AD05> {[  U0AC2,  U0A8A  ]};
    562 
    563 	// Mainly voiced consonants:
    564 	key <AD06> {[  U0AAC,  U0AAD  ]};
    565 	key <AD07> {[  U0AB9,  U0A99  ]};
    566 	key <AD08> {[  U0A97,  U0A98  ]};
    567 	key <AD09> {[  U0AA6,  U0AA7  ]};
    568 	key <AD10> {[  U0A9C,  U0A9D  ]};
    569 	key <AD11> {[  U0AA1,  U0AA2  ]};
    570 	key <AD12> {[  U0ABC,  U0A9E  ]};
    571 
    572 	// Mainly short vowels:
    573 	key <AC01> {[  U0ACB,  U0A93  ]};
    574 	key <AC02> {[  U0AC7,  U0A8F  ]};
    575 	key <AC03> {[  U0ACD,  U0A85  ]};
    576 	key <AC04> {[  U0ABF,  U0A87  ]};
    577 	key <AC05> {[  U0AC1,  U0A89  ]};
    578 
    579 	// Mainly unvoiced consonants:
    580 	key <AC06> {[  U0AAA,  U0AAB  ]};
    581 	key <AC07> {[  U0AB0,  U0AB0  ]};
    582 	key <AC08> {[  U0A95,  U0A96  ]};
    583 	key <AC09> {[  U0AA4,  U0AA5  ]};
    584 	key <AC10> {[  U0A9A,  U0A9B  ]};
    585 	key <AC11> {[  U0A9F,  U0AA0  ]};
    586 	key <BKSL> {[  U0AC9,  U0A91  ]};
    587 
    588 	key <AB01> {[  z,      Z      ]};
    589 	key <AB02> {[  U0A82,  U0A81  ]};
    590 	key <AB03> {[  U0AAE,  U0AA3  ]};
    591 	key <AB04> {[  U0AA8,  U0AA8  ]};
    592 	key <AB05> {[  U0AB5,  U0AB5  ]};
    593 	key <AB06> {[  U0AB2,  U0AB3  ]};
    594 	key <AB07> {[  U0AB8,  U0AB6  ]};
    595 	key <AB08> {[  comma,  U0AB7  ]};
    596 	key <AB09> {[  period, U0964  ]};
    597 	key <AB10> {[  U0AAF,  question  ]};
    598 
    599       include "rupeesign(4)"
    600       include "level3(ralt_switch)"
    601 };
    602 
    603 partial alphanumeric_keys
    604 xkb_symbols "kan" {
    605 
    606     // Inscript layout for Kannada.
    607     // Author : G Karunakar <karunakar (a] freedomink.org>
    608     // Date   : Wed Nov 13 17:22:58 IST 2002
    609     // Kannada digits mapped in basic only
    610 
    611     name[Group1]= "Kannada";
    612 
    613     key <TLDE> { [  U0cca, U0c92	] };
    614     key <AE01> { [  U0ce7		] };
    615     key <AE02> { [  U0ce8		] };
    616     key <AE03> { [  U0ce9		] };
    617     key <AE04> { [  U0cea		] };
    618     key <AE05> { [  U0ceb		] };
    619     key <AE06> { [  U0cec		] };
    620     key <AE07> { [  U0ced		] };
    621     key <AE08> { [  U0cee		] };
    622     key <AE09> { [  U0cef		] };
    623     key <AE10> { [  U0ce6		] };
    624     key <AE11> { [  U0c83		] };
    625     key <AE12> { [  U0cc3, U0c8b	] };
    626 
    627     key <AD01> { [  U0ccc, U0c94	] };
    628     key <AD02> { [  U0cc8, U0c90	] };
    629     key <AD03> { [  U0cbe, U0c86	] };
    630     key <AD04> { [  U0cc0, U0c88	] };
    631     key <AD05> { [  U0cc2, U0c8a	] };
    632     key <AD06> { [  U0cac, U0cad	] };
    633     key <AD07> { [  U0cb9, U0c99	] };
    634     key <AD08> { [  U0c97, U0c98	] };
    635     key <AD09> { [  U0ca6, U0ca7	] };
    636     key <AD10> { [  U0c9c, U0c9d	] };
    637     key <AD11> { [  U0ca1, U0ca2	] };
    638     key <AD12> { [  U0cbc, U0c9e	] };
    639 
    640     key <AC01> { [  U0ccb, U0c93	] };
    641     key <AC02> { [  U0cc7, U0c8f	] };
    642     key <AC03> { [  U0ccd, U0c85	] };
    643     key <AC04> { [  U0cbf, U0c87	] };
    644     key <AC05> { [  U0cc1, U0c89	] };
    645     key <AC06> { [  U0caa, U0cab	] };
    646     key <AC07> { [  U0cb0, U0cb1	] };
    647     key <AC08> { [  U0c95, U0c96	] };
    648     key <AC09> { [  U0ca4, U0ca5	] };
    649     key <AC10> { [  U0c9a, U0c9b	] };
    650     key <AC11> { [  U0c9f, U0ca0	] };
    651 
    652     key <AB01> { [  U0cc6, U0c8e	] };
    653     key <AB02> { [  U0c82		] };
    654     key <AB03> { [  U0cae, U0ca3	] };
    655     key <AB04> { [  U0ca8		] };
    656     key <AB05> { [  U0cb5, U0cb4	] };
    657     key <AB06> { [  U0cb2, U0cb3	] };
    658     key <AB07> { [  U0cb8, U0cb6	] };
    659     key <AB08> { [  comma, U0cb7	] };
    660     key <AB09> { [ period		] };
    661     key <AB10> { [  U0caf,    at	] };
    662 
    663     include "rupeesign(4)"
    664     include "level3(ralt_switch)"
    665 };
    666 
    667 // Description : A keymap for Malayalam
    668 // Encoding    : Unicode (http://www.unicode.org)
    669 // Author      : Baiju M <baiju (a] freeshell.org>
    670 // Date        : Sat Aug  17 21:10:48 IST 2002
    671 partial alphanumeric_keys
    672 xkb_symbols "mal" {
    673 
    674     name[Group1] = "Malayalam";
    675 
    676     // From grave to backslash:
    677     key <TLDE> { [ U0d4a ,       U0d12 ] };
    678     key <AE01> { [ U0d67 ,      exclam ] };
    679     key <AE02> { [ U0d68 ,          at ] };
    680     key <AE03> { [ U0d69 ,  numbersign ] };
    681     key <AE04> { [ U0d6a ,      dollar ] };
    682     key <AE05> { [ U0d6b ,     percent ] };
    683     key <AE06> { [ U0d6c , asciicircum ] };
    684     key <AE07> { [ U0d6d ,   ampersand ] };
    685     key <AE08> { [ U0d6e ,    asterisk ] };
    686     key <AE09> { [ U0d6f ,   parenleft ] };
    687     key <AE10> { [ U0d66 ,  parenright ] };
    688     key <AE11> { [ minus       , U0d03 ] };
    689     key <AE12> { [ U0d43 ,       U0d0b ] };
    690     key <BKSL> { [ U200c,    backslash ] }; // ZWNJ
    691 
    692     // From Q to right bracket:
    693     key <AD01> { [ U0d4c , U0d14 ] };
    694     key <AD02> { [ U0d48 , U0d10 ] };
    695     key <AD03> { [ U0d3e , U0d06 ] };
    696     key <AD04> { [ U0d40 , U0d08 ] };
    697     key <AD05> { [ U0d42 , U0d0a ] };
    698     key <AD06> { [ U0d2c , U0d2d ] };
    699     key <AD07> { [ U0d39 , U0d19 ] };
    700     key <AD08> { [ U0d17 , U0d18 ] };
    701     key <AD09> { [ U0d26 , U0d27 ] };
    702     key <AD10> { [ U0d1c , U0d1d ] };
    703     key <AD11> { [ U0d21 , U0d22 ] };
    704     key <AD12> { [ U200d , U0d1e ] };
    705 
    706     // From A to apostrophe:
    707     key <AC01> { [ U0d4b , U0d13 ] };
    708     key <AC02> { [ U0d47 , U0d0f ] };
    709     key <AC03> { [ U0d4d , U0d05 ] };
    710     key <AC04> { [ U0d3f , U0d07 ] };
    711     key <AC05> { [ U0d41 , U0d09 ] };
    712     key <AC06> { [ U0d2a , U0d2b ] };
    713     key <AC07> { [ U0d30 , U0d31 ] };
    714     key <AC08> { [ U0d15 , U0d16 ] };
    715     key <AC09> { [ U0d24 , U0d25 ] };
    716     key <AC10> { [ U0d1a , U0d1b ] };
    717     key <AC11> { [ U0d1f , U0d20 ] };
    718 
    719     // From Z to slash:
    720     key <AB01> { [ U0d46 , U0d0e ] };
    721     key <AB02> { [ U0d02 , U200b ] }; // X: ZWSP
    722     key <AB03> { [ U0d2e , U0d23 ] };
    723     key <AB04> { [ U0d28         ] };
    724     key <AB05> { [ U0d35 , U0d34 ] };
    725     key <AB06> { [ U0d32 , U0d33 ] };
    726     key <AB07> { [ U0d38 , U0d36 ] };
    727     key <AB08> { [ comma , U0d37 ] };
    728     key <AB09> { [ period, U200d ] };
    729     key <AB10> { [ U0d2f , question ] };
    730 
    731     include "rupeesign(4)"
    732     include "level3(ralt_switch)"
    733 };
    734 
    735 //Name		:	Lalitha
    736 //Description	:	A transliteration keyboard layout for Malayalam
    737 //Original Author :	Noah Levitt<nlevitt at columbia.edu>
    738 //Current Main  :	Jinesh K.J<jinesh.k (a] gmail.com>, Swathantra Malayalam Computing (SMC)<smc-discuss (a] googlegroups.com>
    739 
    740 partial alphanumeric_keys
    741 xkb_symbols "mal_lalitha" {
    742      name[Group1] = "Malayalam (Lalitha)";
    743      key.type[group1]="FOUR_LEVEL";
    744 
    745     key <TLDE>  { [   U0D4D,	U0D02,		grave,	asciitilde ] }; // grave: virama(chandrakala),anusvara
    746     key <AE01>  { [   1,	exclam,	U0D67,		exclam	   ] };
    747     key <AE02>  { [   2,	at,		U0D68,		at	   ] };
    748     key <AE03>  { [   3,	numbersign,	U0D69,		numbersign ] };
    749     key <AE04>  { [   4,	dollar,		U0D6A,		U20B9      ] }; // Rupee
    750     key <AE05>  { [   5,	percent,	U0D6B,		percent    ] };
    751     key <AE06>  { [   6,	asciicircum,	U0D6C,		asciicircum ] };
    752     key <AE07>  { [   7,	ampersand,	U0D6D,		ampersand  ] };
    753     key <AE08>  { [   8,	asterisk,	U0D6E,		asterisk   ] };
    754     key <AE09>  { [   9,	parenleft,	U0D6F,		parenleft  ] };
    755     key <AE10>  { [   0,	parenright,	U0D66,		parenright ] };
    756     key <AE11>  { [   minus,	underscore	     ] };
    757     key <AE12>  { [   equal,	plus		     ] };
    758     key <BKSL>  { [   backslash,bar,		U200C	] };  //\: backslash, pipe, ZWNJ
    759 
    760     key <AD01>   { [   U0D48,	U0D4C,	U0D10,	U0D14   ] }; // Q: ai and au matras
    761     key <AD02>   { [   U0D35	] };  // W: wa, OM
    762     key <AD03>   { [   U0D46,   U0D47,	U0D0E,	U0D0F   ] };  // E: e,ee matras
    763     key <AD04>   { [   U0D30,	U0D31,	U0D43,	U0D0B   ] };  // R: ra,rra, vocalic Ri
    764     key <AD05>   { [   U0D24,   U0D25,	U0D1F,	U0D20   ] };  // T: tha, ttha,ta,tta
    765     key <AD06>   { [   U0D2f    ] };  // Y: ya
    766     key <AD07>   { [   U0D41,   U0D42,	U0D09,	U0D0A   ] };  // U: u, uu matras
    767     key <AD08>   { [   U0D3F,   U0D40,	U0D07,	U0D08   ] };  // I: i, ii matras
    768     key <AD09>   { [   U0D4A,   U0D4B,	U0D12,	U0D13   ] };  // O: o, oo matras
    769     key <AD10>   { [   U0D2A   ] };  // P: pa
    770     key <AD11>   { [   bracketleft,   braceleft   ] };
    771     key <AD12>   { [   bracketright, braceright   ] };
    772 
    773     key <AC01>   { [   U0D3E,	 U0D05,	U0D06,	U0D05  ] };   // A: a,aa
    774     key <AC02>   { [   U0D38,    U0D37   ] };  // S: sa, ssa
    775     key <AC03>   { [   U0D26,    U0D27,	U0D21,	U0D22   ] };  // D: soft da,soft dda,hard da,hard dda,
    776     key <AC04>   { [   U0D2B     ] };  // F: pha
    777     key <AC05>   { [   U0D17,    U0D18   ] };  // G: ga, gha
    778     key <AC06>   { [   U0D39,    U0D03   ] };  // H: ha, visarg
    779     key <AC07>   { [   U0D1C,    U0D1D   ] };  // J: ja, jha
    780     key <AC08>   { [   U0D15,    U0D16   ] };  // K: ka, kha
    781     key <AC09>   { [   U0D32,	 U0D33   ] };  // L: la, vocalic L or lru matra`
    782     key <AC10>   { [   semicolon, colon  ] };
    783     key <AC11>   { [apostrophe, quotedbl ] };
    784 
    785     key <AB01>   { [   U0D34,	 U0D36  ] };  // Z: sha,zha
    786     key <AB02>   { [   U0D4D,	 U200B  ] };  // X: chandrakala,ZWSP
    787     key <AB03>   { [   U0D1A,    U0D1B  ] };  // C: ca, cha
    788     key <AB04>   { [   U0D35,	 U200D  ] };  // V: va,ZWJ
    789     key <AB05>   { [   U0D2C,    U0D2D  ] };  // B: ba, bha
    790     key <AB06>   { [   U0D28,    U0D23,	U0D19,	U0D1E   ] };  // N: na, hard na,nga,nha
    791     key <AB07>   { [   U0D2E,	 U0D02  ] };  // M: ma
    792     key <AB08>   { [   comma,    less   ] };
    793     key <AB09>   { [   period,   greater ] };
    794     key <AB10>   { [   slash,    question ] };
    795 
    796     include "level3(ralt_switch)"
    797 };
    798 
    799 
    800 partial alphanumeric_keys
    801 xkb_symbols "olck" {
    802 
    803     // Layout for the Ol Chiki script.
    804     // http://www.unicode.org/L2/L2005/05243r-n2984-ol-chiki.pdf (figure 9)
    805 
    806     name[Group1]= "Ol Chiki";
    807 
    808     key <TLDE>	{[  grave,  U1C7B		]};
    809     key <AE01>	{[  U1C51,  exclam		]};
    810     key <AE02>	{[  U1C52,  at			]};
    811     key <AE03>	{[  U1C53,  numbersign		]};
    812     key <AE04>	{[  U1C54,  dollar		]};
    813     key <AE05>	{[  U1C55,  percent		]};
    814     key <AE06>	{[  U1C56,  asciicircum		]};
    815     key <AE07>	{[  U1C57,  ampersand		]};
    816     key <AE08>	{[  U1C58,  asterisk		]};
    817     key <AE09>	{[  U1C59,  parenleft		]};
    818     key <AE10>	{[  U1C50,  parenright		]};
    819     key <AE11>	{[  minus,  U1C7C		]};
    820     key <AE12>	{[  equal,  plus		]};
    821 
    822     key <AD01>	{[  U1C67			]};
    823     key <AD02>	{[  U1C63			]};
    824     key <AD03>	{[  U1C6E			]};
    825     key <AD04>	{[  U1C68			]};
    826     key <AD05>	{[  U1C74,  U1C5B		]};
    827     key <AD06>	{[  U1C6D			]};
    828     key <AD07>	{[  U1C69			]};
    829     key <AD08>	{[  U1C64			]};
    830     key <AD09>	{[  U1C5A,  U1C73		]};
    831     key <AD10>	{[  U1C6F			]};
    832     key <AD11>	{[  bracketleft,  braceleft	]};
    833     key <AD12>	{[  bracketright,  braceright	]};
    834     key <BKSL>	{[  U1C7F,  U1C7E		]};
    835 
    836     key <AC01>	{[  U1C5F			]};
    837     key <AC02>	{[  U1C65			]};
    838     key <AC03>	{[  U1C70,  U1C6B		]};
    839     key <AC04>	{[  U1C5D			]};
    840     key <AC05>	{[  U1C5C			]};
    841     key <AC06>	{[  U1C66,  U1C77		]};
    842     key <AC07>	{[  U1C61			]};
    843     key <AC08>	{[  U1C60			]};
    844     key <AC09>	{[  U1C5E			]};
    845     key <AC10>	{[  semicolon,  U1C7A		]};
    846     key <AC11>	{[  apostrophe,  quotedbl	]};
    847 
    848     key <AB01>	{[  U1C72			]};
    849     key <AB02>	{[  U1C7D			]};
    850     key <AB03>	{[  U1C6A			]};
    851     key <AB04>	{[  U1C76			]};
    852     key <AB05>	{[  U1C75			]};
    853     key <AB06>	{[  U1C71,  U1C78		]};
    854     key <AB07>	{[  U1C62,  U1C6C		]};
    855     key <AB08>	{[  comma,  less		]};
    856     key <AB09>	{[  U1C79,  greater		]};
    857     key <AB10>	{[  slash,  question		]};
    858 
    859     include "rupeesign(4)"
    860     include "level3(ralt_switch)"
    861 };
    862 
    863 
    864 // Inscript layout for Oriya.
    865 // Author: G Karunakar <karunakar (a] freedomink.org>
    866 // Date: November 2002
    867 partial alphanumeric_keys
    868 xkb_symbols "ori" {
    869     name[Group1]= "Oriya";
    870 
    871     key <AE01> { [  U0b67		] };
    872     key <AE02> { [  U0b68		] };
    873     key <AE03> { [  U0b69		] };
    874     key <AE04> { [  U0b6a		] };
    875     key <AE05> { [  U0b6b		] };
    876     key <AE06> { [  U0b6c		] };
    877     key <AE07> { [  U0b6d		] };
    878     key <AE08> { [  U0b6e		] };
    879     key <AE09> { [  U0b6f		] };
    880     key <AE10> { [  U0b66		] };
    881     key <AE11> { [  U0b03		] };
    882     key <AE12> { [  U0b43, U0b0b	] };
    883 
    884     key <AD01> { [  U0b4c, U0b14	] };
    885     key <AD02> { [  U0b48, U0b10	] };
    886     key <AD03> { [  U0b3e, U0b06	] };
    887     key <AD04> { [  U0b40, U0b08	] };
    888     key <AD05> { [  U0b42, U0b0a	] };
    889     key <AD06> { [  U0b2c, U0b2d	] };
    890     key <AD07> { [  U0b39, U0b19	] };
    891     key <AD08> { [  U0b17, U0b18	] };
    892     key <AD09> { [  U0b26, U0b27	] };
    893     key <AD10> { [  U0b1c, U0b1d	] };
    894     key <AD11> { [  U0b21, U0b22	] };
    895     key <AD12> { [  U0b3c, U0b1e	] };
    896 
    897     key <AC01> { [  U0b4b, U0b13	] };
    898     key <AC02> { [  U0b47, U0b0f	] };
    899     key <AC03> { [  U0b4d, U0b05	] };
    900     key <AC04> { [  U0b3f, U0b07	] };
    901     key <AC05> { [  U0b41, U0b09	] };
    902     key <AC06> { [  U0b2a, U0b2b	] };
    903     key <AC07> { [  U0b30		] };
    904     key <AC08> { [  U0b15, U0b16	] };
    905     key <AC09> { [  U0b24, U0b25	] };
    906     key <AC10> { [  U0b1a, U0b1b	] };
    907     key <AC11> { [  U0b1f, U0b20	] };
    908 
    909     key <AB02> { [  U0b02, U0b01	] };
    910     key <AB03> { [  U0b2e, U0b23	] };
    911     key <AB04> { [  U0b28		] };
    912     key <AB05> { [  U0b35		] };
    913     key <AB06> { [  U0b32, U0b33	] };
    914     key <AB07> { [  U0b38, U0b36	] };
    915     key <AB08> { [  comma, U0b37	] };
    916     key <AB09> { [  period		] };
    917     key <AB10> { [  U0b2f,    at	] };
    918 
    919     include "rupeesign(4)"
    920     include "level3(ralt_switch)"
    921 };
    922 
    923 // Phonetic layout for Oriya like Hindi Bolnagiri
    924 // Author: Lalit Mishra
    925 // Date: 3rd March, 2021.
    926 partial alphanumeric_keys
    927 xkb_symbols "ori-bolnagri" {
    928 
    929     name[Group1] = "Oriya (Bolnagri)";
    930 
    931     key.type[group1]="FOUR_LEVEL";
    932 
    933     key <TLDE>	{[  U0B02,     U0B01,       grave,    asciitilde ]}; // grave: anusvara, candrabindu
    934     key <AE01>	{[  U0B67,     exclam,      1         ]};
    935     key <AE02>	{[  U0B68,     at,          2,        U20AC      ]};
    936     key <AE03>	{[  U0B69,     numbersign,  3,        U00A3      ]};
    937     key <AE04>	{[  U0B6A,     dollar,      4,        U20B9      ]}; // Rupee symbol on Shift+AltGr+4
    938     key <AE05>	{[  U0B6B,     percent,     5         ]};
    939     key <AE06>	{[  U0B6C,     asciicircum, 6         ]};
    940     key <AE07>	{[  U0B6D,     ampersand,   7         ]};
    941     key <AE08>	{[  U0B6E,     asterisk,    8         ]};
    942     key <AE09>	{[  U0B6F,     parenleft,   9         ]};
    943     key <AE10>	{[  U0B66,     parenright,  0         ]};
    944     key <AE11>	{[  minus,     underscore             ]};
    945     key <AE12>	{[  equal,     plus                   ]};
    946     key <BKSL>	{[  U0964,     U0965,       U007C,    U005C      ]}; //pipe : danda, double danda
    947 
    948     key <AD01>	{[  U200C,     U200D        ]};                      // Q: ZWNJ, ZWJ
    949     key <AD02>	{[  U0B71,     U0B35        ]};                      // W: wa
    950     key <AD03>	{[  U0B47,     U0B48,       U0B0F,    U0B10      ]}; // E: e, ai matras
    951     key <AD04>	{[  U0B30,     U0B43,       U0B0B,    U0B60      ]}; // R: ra, vocalic Ri
    952     key <AD05>	{[  U0B24,     U0B25        ]};                      // T: ta, tha
    953     key <AD06>	{[  U0B2f,     U0B5F,       U0B1E     ]};            // Y: ya, nya
    954     key <AD07>	{[  U0B41,     U0B42,       U0B09,    U0B0A      ]}; // U: u, uu matras
    955     key <AD08>	{[  U0B3F,     U0B40,       U0B07,    U0B08      ]}; // I: i, ii matras
    956     key <AD09>	{[  U0B4B,     U0B4C,       U0B13,    U0B14      ]}; // O: o, au matras
    957     key <AD10>	{[  U0B2A,     U0B2B        ]};                      // P: pa, pha
    958     key <AD11>	{[  bracketleft,  braceleft ]};
    959     key <AD12>	{[  bracketright, braceright]};
    960 
    961     key <AC01>	{[  U0B3E,      U0B06,      U0B05,    U0B06      ]}; // A: aa, full A, AA
    962     key <AC02>	{[  U0B38,      U0B37       ]};                      // S: sa, ssa
    963     key <AC03>	{[  U0B26,      U0B27       ]};                      // D: da, dha
    964     key <AC04>	{[  U0B1F,      U0B20       ]};                      // F: TA, THA
    965     key <AC05>	{[  U0B17,      U0B18       ]};                      // G: ga, gha
    966     key <AC06>	{[  U0B39,      U0B03       ]};                      // H: ha, visarg
    967     key <AC07>	{[  U0B1C,      U0B1D       ]};                      // J: ja, jha
    968     key <AC08>	{[  U0B15,      U0B16       ]};                      // K: ka, kha
    969     key <AC09>	{[  U0B32,      U0B33,      U0B62,    U0B0C      ]}; // L: la, vocalic L or lru matra
    970     key <AC10>	{[  semicolon,  colon       ]};
    971     key <AC11>	{[  apostrophe, quotedbl    ]};
    972 
    973     key <AB01>	{[  U0B36       ]};                                  // Z: sha, akaar candra
    974     key <AB02>	{[  U0B4D       ]};                                  // X: halant, aakaar candra, chandra A
    975     key <AB03>	{[  U0B1A,      U0B1B       ]};                      // C: ca, cha
    976     key <AB04>	{[  U0B21,      U0B22       ]};                      // V: da, dha
    977     key <AB05>	{[  U0B2C,      U0B2D       ]};                      // B: ba, bha
    978     key <AB06>	{[  U0B28,      U0B23       ]};                      // N: na, nna
    979     key <AB07>	{[  U0B2E,      U0B19,      U0B3D     ]};            // M: ma, nga, avagraha
    980     key <AB08>	{[  comma,      U0B70,      U0B44,    U0B61      ]}; // comma: comma, dev abbreviation sign
    981     key <AB09>	{[  period,     U0B3C,      U0B55     ]};            // period: period, nukta
    982     key <AB10>	{[  slash,      question    ]};
    983 
    984   include "level3(ralt_switch)"
    985 };
    986 
    987 // Phonetic layout for Oriya like Hindi Wx
    988 // Author: Lalit Mishra
    989 // Date: 3rd March, 2021.
    990 partial alphanumeric_keys
    991 xkb_symbols "ori-wx" {
    992 
    993 	name[Group1]= "Oriya (Wx)";
    994 
    995 	key <TLDE> {[  grave,    asciitilde,  U200C,  U200D  ]};
    996 	key <AE01> {[  U0B67,    exclam,          1  ]};
    997 	key <AE02> {[  U0B68,    at,              2,  U20AC  ]};
    998 	key <AE03> {[  U0B69,    numbersign,      3,  U00A3  ]};
    999 	key <AE04> {[  U0B6A,    dollar,          4,  U20B9  ]};
   1000 	key <AE05> {[  U0B6B,    percent,         5  ]};
   1001 	key <AE06> {[  U0B6C,    asciicircum,     6  ]};
   1002 	key <AE07> {[  U0B6D,    ampersand,       7  ]};
   1003 	key <AE08> {[  U0B6e,    asterisk,        8  ]};
   1004 	key <AE09> {[  U0B6F,    parenleft,       9  ]};
   1005 	key <AE10> {[  U0B66,    parenright,      0  ]};
   1006 	key <AE11> {[  minus,    underscore   ]};
   1007 	key <AE12> {[  equal,    plus         ]};
   1008 
   1009 	key <AD01> {[  U0B43,    U0B44,   U0B0B,  U0B60  ]};
   1010 	key <AD02> {[  U0B24,    U0B25    ]};
   1011 	key <AD03> {[  U0B47,    U0B48,   U0B0F,  U0B10  ]};
   1012 	key <AD04> {[  U0B30,    U0B37    ]};
   1013 	key <AD05> {[  U0B1F,    U0B20    ]};
   1014 	key <AD06> {[  U0B2F,    U0B5F    ]};
   1015 	key <AD07> {[  U0B41,    U0B42,   U0B09,  U0B0A  ]};
   1016 	key <AD08> {[  U0B3F,    U0B40,   U0B07,  U0B08  ]};
   1017 	key <AD09> {[  U0B4B,    U0B4C,   U0B13,  U0B14  ]};
   1018 	key <AD10> {[  U0B2A,    U0B2B    ]};
   1019 	key <AD11> {[bracketleft,  braceleft    ]};
   1020 	key <AD12> {[bracketright, braceright   ]};
   1021 	key <BKSL> {[  U0964,    U0965,   backslash, bar ]};
   1022 
   1023 	key <AC01> {[  U0B4D,    U0B3E,   U0B05,  U0B06  ]};
   1024 	key <AC02> {[  U0B38,    U0B36    ]};
   1025 	key <AC03> {[  U0B21,    U0B22    ]};
   1026 	key <AC04> {[  U0B19,    U0B1E    ]};
   1027 	key <AC05> {[  U0B17,    U0B18    ]};
   1028 	key <AC06> {[  U0B39,    U0B03    ]};
   1029 	key <AC07> {[  U0B1C,    U0B1D    ]};
   1030 	key <AC08> {[  U0B15,    U0B16    ]};
   1031 	key <AC09> {[  U0B32,    U0B62,   U0B33,  U0B0C ]};
   1032 	key <AC10> {[semicolon,  colon    ]};
   1033 	key <AC11> {[apostrophe, quotedbl ]};
   1034 
   1035 	key <AB01> {[  U0B01,    U0B3C,   U0B3D  ]};
   1036 	key <AB02> {[  U0B26,    U0B27    ]};
   1037 	key <AB03> {[  U0B1A,    U0B1B    ]};
   1038 	key <AB04> {[  U0B71,    U0B35    ]};
   1039 	key <AB05> {[  U0B2C,    U0B2D    ]};
   1040 	key <AB06> {[  U0B28,    U0B23    ]};
   1041 	key <AB07> {[  U0B2E,    U0B02    ]};
   1042 	key <AB08> {[  comma,    less     ]};
   1043 	key <AB09> {[ period,    greater  ]};
   1044 	key <AB10> {[  slash,    question ]};
   1045 
   1046 	include "level3(ralt_switch)"
   1047 };
   1048 
   1049 partial alphanumeric_keys
   1050 xkb_symbols "tam" {
   1051 
   1052     name[Group1] = "Tamil (InScript, with Arabic numerals)";
   1053 
   1054     key <TLDE>	{[  U0BCA,  U0B92  ]};
   1055     key <AE01>	{[      1          ]};
   1056     key <AE02>	{[      2          ]};
   1057     key <AE03>	{[      3          ]};
   1058     key <AE04>	{[      4,  U20B9  ]}; // Rupee
   1059     key <AE05>	{[      5          ]};
   1060     key <AE06>	{[      6          ]};
   1061     key <AE07>	{[      7          ]};
   1062     key <AE08>	{[      8          ]};
   1063     key <AE09>	{[      9,  parenleft  ]};
   1064     key <AE10>	{[      0,  parenright ]};
   1065     key <AE11>	{[  minus,  U0B83  ]};
   1066     key <AE12>	{[  equal,  plus   ]};
   1067 
   1068     // Mainly long vowels:
   1069     key <AD01>	{[  U0BCC,  U0B94  ]};
   1070     key <AD02>	{[  U0BC8,  U0B90  ]};
   1071     key <AD03>	{[  U0BBE,  U0B86  ]};
   1072     key <AD04>	{[  U0BC0,  U0B88  ]};
   1073     key <AD05>	{[  U0BC2,  U0B8A  ]};
   1074 
   1075     // Mainly voiced consonants:
   1076     key <AD07>	{[  U0BB9,  U0B99  ]};
   1077     key <AD10>	{[  U0B9C          ]};
   1078     key <AD12>	{[  U0B9E          ]};
   1079 
   1080     // Mainly short vowels:
   1081     key <AC01>	{[  U0BCB,  U0B93  ]};
   1082     key <AC02>	{[  U0BC7,  U0B8F  ]};
   1083     key <AC03>	{[  U0BCD,  U0B85  ]};
   1084     key <AC04>	{[  U0BBF,  U0B87  ]};
   1085     key <AC05>	{[  U0BC1,  U0B89  ]};
   1086 
   1087     // Mainly unvoiced consonants:
   1088     key <AC06>	{[  U0BAA          ]};
   1089     key <AC07>	{[  U0BB0,  U0BB1  ]};
   1090     key <AC08>	{[  U0B95          ]};
   1091     key <AC09>	{[  U0BA4          ]};
   1092     key <AC10>	{[  U0B9A          ]};
   1093     key <AC11>	{[  U0B9F          ]};
   1094     key <BKSL>	{[backslash, bar   ]};
   1095 
   1096     key <AB01>	{[  U0BC6,  U0B8E  ]};
   1097     key <AB02>	{[  U0B82          ]};
   1098     key <AB03>	{[  U0BAE,  U0BA3  ]};
   1099     key <AB04>	{[  U0BA8,  U0BA9  ]};
   1100     key <AB05>	{[  U0BB5,  U0BB4  ]};
   1101     key <AB06>	{[  U0BB2,  U0BB3  ]};
   1102     key <AB07>	{[  U0BB8,  U0BB6  ]};
   1103     key <AB08>	{[  comma,  U0BB7  ]};
   1104     key <AB09>	{[ period,  U0964  ]};
   1105     key <AB10>	{[  U0BAF, question]};
   1106 };
   1107 
   1108 partial alphanumeric_keys
   1109 xkb_symbols "tam_tamilnumbers" {
   1110 
   1111     include "in(tam)"
   1112 
   1113     name[Group1] = "Tamil (InScript, with Tamil numerals)";
   1114 
   1115     key <AE01>	{[  U0BE7,  any  ]};
   1116     key <AE02>	{[  U0BE8,  any  ]};
   1117     key <AE03>	{[  U0BE9,  any  ]};
   1118     key <AE04>	{[  U0BEA,  any  ]};
   1119     key <AE05>	{[  U0BEB,  any  ]};
   1120     key <AE06>	{[  U0BEC,  any  ]};
   1121     key <AE07>	{[  U0BED,  any  ]};
   1122     key <AE08>	{[  U0BEE,  any  ]};
   1123     key <AE09>	{[  U0BEF,  any  ]};
   1124     key <AE10>	{[  U0BF0,  any  ]};
   1125     key <AE11>	{[  U0BF1,  any  ]};
   1126     key <AE12>	{[  U0BF2,  any  ]};
   1127 };
   1128 
   1129 partial alphanumeric_keys
   1130 xkb_symbols "tamilnet" {
   1131 
   1132     // Description: A keymap based on the TamilNet'99 typewriter keyboard
   1133     // Encoding: Unicode (http://www.unicode.org)
   1134     // Author: Thuraiappah Vaseeharan <vasee (a] ieee.org>
   1135     // Modifed by: Malathi S <malathiramya (a] gmail.com>
   1136     // Secondary contact: Sri Ramadoss M <amachu (a] au-kbc.org>
   1137     // Date  : Fri Sep 4 11:32:00 CST 2009
   1138 
   1139     name[Group1]= "Tamil (TamilNet '99)";
   1140 
   1141     key <TLDE>	{[ apostrophe, asciitilde ]};
   1142     key <AE01>	{[ 1, exclam ]} ;
   1143     key <AE02>	{[ 2, at ]} ;
   1144     key <AE03>	{[ 3, numbersign ]} ;
   1145     key <AE04>	{[ 4, U0BF9 ]} ;
   1146     key <AE05>	{[ 5, percent ]} ;
   1147     key <AE06>	{[ 6, asciicircum ]} ;
   1148     key <AE07>	{[ 7, ampersand ]} ;
   1149     key <AE08>	{[ 8, asterisk ]} ;
   1150     key <AE09>	{[ 9, parenleft ]} ;
   1151     key <AE10>	{[ 0, parenright ]} ;
   1152     key <AE11>	{[ minus, underscore ]};
   1153     key <AE12>	{[ equal, plus	]};
   1154 
   1155     // Q row
   1156     key <AD01>	{[ U0B9E, U0BB6 ]};
   1157     key <AD02>	{[ U0BB1, U0BB7 ]};
   1158     key <AD03>	{[ U0BA8, U0BB8 ]};
   1159     key <AD04>	{[ U0B9A, U0BB9 ]};
   1160     key <AD05>	{[ U0BB5, U0B9C ]};
   1161     key <AD06>	{[ U0BB2 ]};
   1162     key <AD07>	{[ U0BB0 ]};
   1163     key <AD08>	{[ U0BC8, U0B90 ]};
   1164     key <AD09>	{[ U0BCA, U0BCB ]};
   1165     key <AD10>	{[ U0BBF, U0BC0 ]};
   1166     key <AD11>	{[ U0BC1, U0BC2 ]};
   1167 
   1168     // A row
   1169     key <AC01>	{[ U0BAF ]};
   1170     key <AC02>	{[ U0BB3 ]};
   1171     key <AC03>	{[ U0BA9 ]};
   1172     key <AC04>	{[ U0B95 ]};
   1173     key <AC05>	{[ U0BAA ]};
   1174     key <AC06>	{[ U0BBE, U0BB4 ]};
   1175     key <AC07>	{[ U0BA4 ]};
   1176     key <AC08>	{[ U0BAE ]};
   1177     key <AC09>	{[ U0B9F ]};
   1178     key <AC10>	{[ U0BCD, U0B83 ]};
   1179     key <AC11>	{[ U0B99 ]};
   1180 
   1181     // Z row
   1182     key <AB01>	{[ U0BA3 ]};
   1183     key <AB02>	{[ U0B92, U0B93 ]};
   1184     key <AB03>	{[ U0B89, U0B8A ]};
   1185     key <AB04>	{[ U0B8E, U0B8F ]};
   1186     key <AB05>	{[ U0BC6, U0BC7 ]};
   1187     key <AB06>	{[ U0B94, U0BCC ]};
   1188     key <AB07>	{[ U0B85, U0B86 ]};
   1189     key <AB08>	{[ U0B87, U0B88 ]};
   1190 };
   1191 
   1192 partial alphanumeric_keys
   1193 xkb_symbols "tamilnet_tamilnumbers" {
   1194 
   1195     include "in(tamilnet)"
   1196 
   1197     name[Group1]= "Tamil (TamilNet '99 with Tamil numerals)";
   1198 
   1199     key <AE01>	{[ U0BE7, any ]};
   1200     key <AE02>	{[ U0BE8, any ]};
   1201     key <AE03>	{[ U0BE9, any ]};
   1202     key <AE04>	{[ U0BEA, any ]};
   1203     key <AE05>	{[ U0BEB, any ]};
   1204     key <AE06>	{[ U0BEC, any ]};
   1205     key <AE07>	{[ U0BED, any ]};
   1206     key <AE08>	{[ U0BEE, any ]};
   1207     key <AE09>	{[ U0BEF, any ]};
   1208     key <AE10>	{[ U0BE6, any ]};
   1209 };
   1210 
   1211 partial alphanumeric_keys
   1212 xkb_symbols "tamilnet_TSCII" {
   1213 
   1214     // Description	: A Tamil typewrite-style keymap
   1215     //		  loosely based on TamilNet'99 reommendations
   1216     // Encoding	: TSCII (http://www.tscii.org)
   1217     // Author	: Thuraiappah Vaseeharan <vasee (a] ieee.org>
   1218     // Last Modified: Sat Jan  5 17:11:26 CST 2002
   1219 
   1220     name[Group1]= "Tamil (TamilNet '99, TSCII encoding)";
   1221 
   1222     key <AE01>	{[ 0x10000b7, 0x10000a4 ]}; // aytham
   1223     key <AE02>	{[ 0x1000082, 0x10000a5 ]}; // shri
   1224     key <AE03>	{[ 0x1000083, 0x1000088 ]}; // ja
   1225     key <AE04>	{[ 0x1000084, 0x1000089 ]}; // sha
   1226     key <AE05>	{[ 0x1000085, 0x100008a ]}; // sa
   1227     key <AE06>	{[ 0x1000086, 0x100008b ]}; // ha
   1228     key <AE07>	{[ 0x1000087, 0x100008c ]}; // ksha
   1229 
   1230     // Q row
   1231     key <AD01>	{[ 0x10000bb, 0x100009a ]}; // nja
   1232     key <AD02>	{[ 0x10000c8, 0x10000da ]}; // Ra
   1233     key <AD03>	{[ 0x10000bf, 0x10000d1 ]}; // NNa
   1234     key <AD04>	{[ 0x10000ba, 0x10000cd ]}; // ca
   1235     key <AD05>	{[ 0x10000c5, 0x10000d7 ]}; // va
   1236     key <AD06>	{[ 0x10000c4, 0x10000d6 ]}; // la
   1237     key <AD07>	{[ 0x10000c3, 0x10000d5 ]}; // ra
   1238     key <AD08>	{[ 0x10000a8, 0x10000b3 ]}; // sangili, ai
   1239     key <AD09>	{[ 0x10000ca, 0x10000cb ]}; // di, dI
   1240     key <AD10>	{[ 0x10000a2, 0x10000a3 ]}; // visiri
   1241     key <AD11>	{[ dead_acute,0x10000a3 ]}; // Ukaaram
   1242 
   1243     // A row
   1244     key <AC01>	{[ 0x10000c2, 0x10000d4 ]}; // ya
   1245     key <AC02>	{[ 0x10000c7, 0x10000d9 ]}; // La
   1246     key <AC03>	{[ 0x10000c9, 0x10000db ]}; // na
   1247     key <AC04>	{[ 0x10000b8, 0x10000cc ]}; // ka
   1248     key <AC05>	{[ 0x10000c0, 0x10000d2 ]}; // pa
   1249     key <AC06>	{[ dead_grave,0x10000a1 ]}; // pulli,aravu
   1250     key <AC07>	{[ 0x10000be, 0x10000d0 ]}; // tha
   1251     key <AC08>	{[ 0x10000c1, 0x10000d3 ]}; // ma
   1252     key <AC09>	{[ 0x10000bc, 0x10000ce ]}; // da
   1253     key <AC10>	{[ 0x10000c6, 0x10000d8 ]}; // zha
   1254     key <AC11>	{[ 0x10000b9, 0x1000099 ]}; // nga
   1255 
   1256     // Z row
   1257     key <AB01>	{[ 0x10000bd, 0x10000cf ]}; // Na
   1258     key <AB02>	{[ 0x10000b4, 0x10000b5 ]}; // o, O
   1259     key <AB03>	{[ 0x10000af, 0x10000b0 ]}; // u, U
   1260     key <AB04>	{[ 0x10000b1, 0x10000b2 ]}; // e, E
   1261     key <AB05>	{[ 0x10000a6, 0x10000a7 ]}; // kombus
   1262     key <AB06>	{[ 0x10000b6, 0x10000aa ]}; // au
   1263     key <AB07>	{[ 0x10000ab, 0x10000ac ]}; // a, A
   1264     key <AB08>	{[ 0x10000fe, 0x10000ae ]}; // i, I
   1265 };
   1266 
   1267 partial alphanumeric_keys
   1268 xkb_symbols "tamilnet_TAB" {
   1269 
   1270     // Description: A keymap based on the TamilNet'99 typewriter keyboard
   1271     // Encoding: TAB (http://www.tamilnet99.org)
   1272     // Author: Thuraiappah Vaseeharan <t_vasee (a] yahoo.com>
   1273     // Date  : Sun Aug 12 02:23:00 CDT 2001
   1274 
   1275     name[Group1]= "Tamil (TamilNet '99, TAB encoding)";
   1276 
   1277     // Digits row
   1278     key <AE01>	{[ 0x10000e7, 0x10000a7 ]} ;
   1279     key <AE02>	{[ 0x10000fa, 0x10000a8 ]} ;
   1280     key <AE03>	{[ 0x10000fb ]} ;
   1281     key <AE04>	{[ 0x10000fc ]} ;
   1282     key <AE05>	{[ 0x10000fd ]} ;
   1283     key <AE06>	{[ 0x10000fe ]} ;
   1284     key <AE07>	{[ 0x10000ff ]} ;
   1285 
   1286     // Q row
   1287     key <AD01>	{[ 0x10000eb, 0x10000b3 ]};
   1288     key <AD02>	{[ 0x10000f8, 0x10000c1 ]};
   1289     key <AD03>	{[ 0x10000ef, 0x10000b8 ]};
   1290     key <AD04>	{[ 0x10000ea, 0x10000b2 ]};
   1291     key <AD05>	{[ 0x10000f5, 0x10000be ]};
   1292     key <AD06>	{[ 0x10000f4, 0x10000bd ]};
   1293     key <AD07>	{[ 0x10000f3, 0x10000bc ]};
   1294     key <AD08>	{[ 0x10000ac, 0x10000e4 ]};
   1295     key <AD09>	{[ 0x10000ae, 0x10000af ]};
   1296     key <AD10>	{[ 0x10000a4, 0x10000a6 ]};
   1297     key <AD11>	{[ dead_circumflex, 0x10000a6 ]}; // Ukaaram
   1298 
   1299     // A row
   1300     key <AC01>	{[ 0x10000f2, 0x10000bb ]};
   1301     key <AC02>	{[ 0x10000f7, 0x10000c0 ]};
   1302     key <AC03>	{[ 0x10000f9, 0x10000c2 ]};
   1303     key <AC04>	{[ 0x10000e8, 0x10000b0 ]};
   1304     key <AC05>	{[ 0x10000f0, 0x10000b9 ]};
   1305     key <AC06>	{[ 0x10000a2, 0x10000a3 ]};
   1306     key <AC07>	{[ 0x10000ee, 0x10000b6 ]};
   1307     key <AC08>	{[ 0x10000f1, 0x10000ba ]};
   1308     key <AC09>	{[ 0x10000ec, 0x10000b4 ]};
   1309     key <AC10>	{[ 0x10000f6, 0x10000bf ]};
   1310     key <AC11>	{[ 0x10000e9, 0x10000b1 ]};
   1311 
   1312     // Z row
   1313     key <AB01>	{[ 0x10000ed, 0x10000b5 ]};
   1314     key <AB02>	{[ 0x10000e5, 0x10000e6 ]};
   1315     key <AB03>	{[ 0x10000e0, 0x10000e1 ]};
   1316     key <AB04>	{[ 0x10000e2, 0x10000e3 ]};
   1317     key <AB05>	{[ 0x10000aa, 0x10000ab ]};
   1318     key <AB06>	{[ 0x10000ac, 0x10000a3 ]};
   1319     key <AB07>	{[ 0x10000dc, 0x10000dd ]};
   1320     key <AB08>	{[ 0x10000de, 0x10000df ]};
   1321 };
   1322 
   1323 partial alphanumeric_keys
   1324 xkb_symbols "tel" {
   1325 
   1326     // InScript layout for Telugu using Unicode
   1327     // Author: G Karunakar <karunakar (a] freedomink.org>
   1328     // See layout at http://www.indlinux.org/keymap/telugu.php
   1329 
   1330     name[Group1]= "Telugu";
   1331 
   1332     key <TLDE> { [  U0c4a, U0c12	] };
   1333     key <AE01> { [  U0c67		] };
   1334     key <AE02> { [  U0c68		] };
   1335     key <AE03> { [  U0c69, numbersign	] };
   1336     key <AE04> { [  U0c6a, dollar	] };
   1337     key <AE05> { [  U0c6b, percent	] };
   1338     key <AE06> { [  U0c6c, asciicircum	] };
   1339     key <AE07> { [  U0c6d, ampersand	] };
   1340     key <AE08> { [  U0c6e, asterisk	] };
   1341     key <AE09> { [  U0c6f, parenleft	] };
   1342     key <AE10> { [  U0c66, parenright	] };
   1343     key <AE11> { [  U0c03, underscore	] };
   1344     key <AE12> { [  U0c43, U0c0b	] };
   1345 
   1346     key <AD01> { [  U0c4c, U0c14	] };
   1347     key <AD02> { [  U0c48, U0c10	] };
   1348     key <AD03> { [  U0c3e, U0c06	] };
   1349     key <AD04> { [  U0c40, U0c08	] };
   1350     key <AD05> { [  U0c42, U0c0a	] };
   1351     key <AD06> { [  U0c2c, U0c2d	] };
   1352     key <AD07> { [  U0c39, U0c19	] };
   1353     key <AD08> { [  U0c17, U0c18	] };
   1354     key <AD09> { [  U0c26, U0c27	] };
   1355     key <AD10> { [  U0c1c, U0c1d	] };
   1356     key <AD11> { [  U0c21, U0c22	] };
   1357     key <AD12> { [  U0c1e		] };
   1358 
   1359     key <AC01> { [  U0c4b, U0c13	] };
   1360     key <AC02> { [  U0c47, U0c0f	] };
   1361     key <AC03> { [  U0c4d, U0c05	] };
   1362     key <AC04> { [  U0c3f, U0c07	] };
   1363     key <AC05> { [  U0c41, U0c09	] };
   1364     key <AC06> { [  U0c2a, U0c2b	] };
   1365     key <AC07> { [  U0c30, U0c31	] };
   1366     key <AC08> { [  U0c15, U0c16	] };
   1367     key <AC09> { [  U0c24, U0c25	] };
   1368     key <AC10> { [  U0c1a, U0c1b	] };
   1369     key <AC11> { [  U0c1f, U0c20	] };
   1370 
   1371     key <AB01> { [  U0c46, U0c0e	] };
   1372     key <AB02> { [  U0c02, U0c01	] };
   1373     key <AB03> { [  U0c2e, U0c23	] };
   1374     key <AB04> { [  U0c28		] };
   1375     key <AB05> { [  U0c35		] };
   1376     key <AB06> { [  U0c32, U0c33	] };
   1377     key <AB07> { [  U0c38, U0c36	] };
   1378     key <AB08> { [  comma, U0c37	] };
   1379     key <AB09> { [  period		] };
   1380     key <AB10> { [  U0c2f, at		] };
   1381 
   1382     include "rupeesign(4)"
   1383     include "level3(ralt_switch)"
   1384 };
   1385 
   1386 //Name                  :       Sarala
   1387 //Description           :       This is an adaptation of the Sarala keyboard (http://www.medhajananam.org/sarala/) developed
   1388 //                              by Krishna Dhullipalla. Because of the way keyboard shortcuts are laid out in KDE, the keyboard
   1389 //                              modifiers had to be changed. The layout does not take any part of the original Sarala keyboard
   1390 //                              code however. It has been developed from scratch, so the experience may differ.
   1391 //
   1392 //                              There is a ibus-m17n version of Sarala layout developed by Satya Pothamsetti <potham (a] gmail.com> on
   1393 //                              http://www.medhajananam.org/.
   1394 //Standard		:	Supports Unicode 9.0.
   1395 //Help			:	This layout differs slightly from the layout on Medhajenanam. The layout has been depicted in the
   1396 //				pdf file attached to this post on Sarala google group.
   1397 //				(https://groups.google.com/forum/#!topic/sarala-keyboard/-gsa90dUFcs).
   1398 //
   1399 //Layout Developed by   :       Krishna Dhullipalla <krishnadvr (a] yahoo.com> (http://www.medhajananam.org/)
   1400 //Author                :       Venkat R Akkineni <venkatram.akkineni (a] india.com>
   1401 //Date			:	Apr 28 2017
   1402 partial alphanumeric_keys
   1403 xkb_symbols "tel-sarala"
   1404 {
   1405     name[Group1] = "Telugu (Sarala)";
   1406     key.type[group1]="FOUR_LEVEL";
   1407 
   1408     key <AB01> {[       U0C4A,       U0C12                           ]}; //   
   1409     key <AB02> {[       U0C42,       U0C0A                           ]}; //  
   1410     key <AB03> {[       U0C21,       U0C22                           ]}; //  
   1411     key <AB04> {[       U0C35,       U0C39                           ]}; //  
   1412     key <AB05> {[       U0C2C,       U0C2D                           ]}; //  
   1413     key <AB06> {[       U0C28,       U0C23                           ]}; //  
   1414     key <AB07> {[       U0C2E,       U0C01                           ]}; //  
   1415     key <AB08> {[       comma,       U0C1E,         less             ]}; // ,  <
   1416     key <AB09> {[      period,       U0C19,      greater             ]}; // .  >
   1417     key <AB10> {[       U0C36,    question,    KP_Divide             ]}; //  ? /
   1418 
   1419     key <AC01> {[       U0C2F,       U0C3D                           ]}; //  
   1420     key <AC02> {[       U0C02,       U0C03                           ]}; //  
   1421     key <AC03> {[       U0C26,       U0C27                           ]}; //  
   1422     key <AC04> {[       U0C4D,       U0C05                           ]}; //   
   1423     key <AC05> {[       U0C17,       U0C18                           ]}; //  
   1424     key <AC06> {[       U0C1A,       U0C1B,        U0C58,      U0C59 ]}; //    
   1425     key <AC07> {[       U0C3E,       U0C06                           ]}; //   
   1426     key <AC08> {[       U0C15,       U0C16,        U0C62,      U0C63 ]}; //    
   1427     key <AC09> {[       U0C32,       U0C33,        U0C0C,      U0C61 ]}; //    
   1428     key <AC10> {[       U0C1F,       U0C20,    semicolon,      colon ]}; //   ; :
   1429     key <AC11> {[  apostrophe,    quotedbl                           ]}; // ' "
   1430 
   1431     key <AD01> {[       U0C46,       U0C0E,        U0C44,      U0C34 ]}; //     
   1432     key <AD02> {[       U0C38,       U0C37,        U0C44             ]}; //   
   1433     key <AD03> {[       U0C47,       U0C0F,        U0C44             ]}; //    
   1434     key <AD04> {[       U0C30,       U0C31,        U0C44,      U0C60 ]}; //    
   1435     key <AD05> {[       U0C24,       U0C25                           ]}; //  
   1436     key <AD06> {[       U0C40,       U0C08                           ]}; //   
   1437     key <AD07> {[       U0C41,       U0C09                           ]}; //  
   1438     key <AD08> {[       U0C3F,       U0C07                           ]}; //   
   1439     key <AD09> {[       U0C4B,       U0C13                           ]}; //   
   1440     key <AD10> {[       U0C2A,       U0C2B                           ]}; //  
   1441     key <AD11> {[       U0C1C,       U0C1D,  bracketleft,  braceleft ]}; //   [ {
   1442     key <AD12> {[       U0C48,       U0C10, bracketright, braceright ]}; //    ] }
   1443 
   1444     key <AE01> {[        KP_1,      exclam,        U0C67,      U0C78 ]}; // 1 !  
   1445     key <AE02> {[        KP_2,          at,        U0C68,      U0C79 ]}; // 2 @  
   1446     key <AE03> {[        KP_3,  numbersign,        U0C69,      U0C7A ]}; // 3 #  
   1447     key <AE04> {[        KP_4,      dollar,        U0C6A,      U0C7B ]}; // 4 $  
   1448     key <AE05> {[        KP_5,     percent,        U0C6B,      U0C7C ]}; // 5 %  
   1449     key <AE06> {[        KP_6, asciicircum,        U0C6C,      U0C7D ]}; // 6 ^  
   1450     key <AE07> {[        KP_7,   ampersand,        U0C6D,      U0C7E ]}; // 7 &  
   1451     key <AE08> {[        KP_8, KP_Multiply,        U0C6E,      U0C7F ]}; // 8 *  
   1452     key <AE09> {[        KP_9,   parenleft,        U0C6F,      U20B9 ]}; // 9 (  
   1453     key <AE10> {[        KP_0,  parenright,        U0C66,      U0C55 ]}; // 0 )  
   1454     key <AE11> {[ KP_Subtract,  underscore,     NoSymbol,      U0C56 ]}; // - _  
   1455     key <AE12> {[    KP_Equal,      KP_Add                           ]}; // = +
   1456     key <BKSL> {[       U0C4C,       U0C14,        U0964,      U0965 ]}; //     
   1457     key <TLDE> {[       U0C43,       U0C0B,        grave, asciitilde ]}; //   ` ~
   1458 
   1459     include "level3(ralt_switch)"
   1460 };
   1461 
   1462 partial alphanumeric_keys
   1463 xkb_symbols "urd-phonetic" {
   1464     include "pk(urd-phonetic)"
   1465     name[Group1]= "Urdu (phonetic)";
   1466 };
   1467 
   1468 partial alphanumeric_keys
   1469 xkb_symbols "urd-phonetic3" {
   1470     include "pk(urd-crulp)"
   1471     name[Group1]= "Urdu (alt. phonetic)";
   1472 };
   1473 
   1474 partial alphanumeric_keys
   1475 xkb_symbols "urd-winkeys" {
   1476     include "pk(urd-nla)"
   1477     name[Group1]= "Urdu (Windows)";
   1478 };
   1479 
   1480 partial alphanumeric_keys
   1481 xkb_symbols "guru" {
   1482       name[Group1]= "Punjabi (Gurmukhi)";
   1483 
   1484       // Mainly digits:
   1485       key <AE01> { [      U0A67		]	};
   1486       key <AE02> { [      U0A68		]	};
   1487       key <AE03> { [      U0A69, U0A71	]	};
   1488       key <AE04> { [      U0A6A, U0A74	]	};
   1489       key <AE05> { [      U0A6B, U262C	]	};
   1490       key <AE06> { [      U0A6C		]	};
   1491       key <AE07> { [      U0A6D		]	};
   1492       key <AE08> { [      U0A6e		]	};
   1493       key <AE09> { [      U0A6F, parenleft	]	};
   1494       key <AE10> { [      U0A66, parenright ]	};
   1495       key <AE11> { [      U0A03		]	};
   1496       key <AE12> { [      equal,plus	]	};
   1497 
   1498       // Mainly long vowels:
   1499       key <AD01> { [      U0A4C, U0A14  ]	};
   1500       key <AD02> { [      U0A48, U0A10  ]	};
   1501       key <AD03> { [      U0A3E, U0A06  ]	};
   1502       key <AD04> { [      U0A40, U0A08  ]	};
   1503       key <AD05> { [      U0A42, U0A0A  ]	};
   1504 
   1505       // Mainly voiced consonants:
   1506       key <AD06> { [      U0A2C, U0A2D	]	};
   1507       key <AD07> { [      U0A39, U0A19	]	};
   1508       key <AD08> { [      U0A17, U0A18	]	};
   1509       key <AD09> { [      U0A26, U0A27	]	};
   1510       key <AD10> { [      U0A1C, U0A1D	]	};
   1511       key <AD11> { [      U0A21, U0A22	]	};
   1512       key <AD12> { [      U0A3C, U0A1E	]	};
   1513 
   1514       // Mainly short vowels:
   1515       key <AC01> { [      U0A4B, U0A13  ]	};
   1516       key <AC02> { [      U0A47, U0A0F  ]	};
   1517       key <AC03> { [      U0A4D, U0A05  ]	};
   1518       key <AC04> { [      U0A3F, U0A07  ]	};
   1519       key <AC05> { [      U0A41, U0A09  ]	};
   1520 
   1521       // Mainly unvoiced consonants:
   1522       key <AC06> { [      U0A2A, U0A2B	]	};
   1523       key <AC07> { [      U0A30, U0A5C	]	};
   1524       key <AC08> { [      U0A15, U0A16	]	};
   1525       key <AC09> { [      U0A24, U0A25	]	};
   1526       key <AC10> { [      U0A1A, U0A1B	]	};
   1527       key <AC11> { [      U0A1F, U0A20	]	};
   1528       key <BKSL> { [      backslash, bar]	};
   1529 
   1530       key <AB01> { [      z,	 U0A01	]       };
   1531       key <AB02> { [      U0A02, U0A70, U0A71  ]       };
   1532       key <AB03> { [      U0A2E, U0A23  ]       };
   1533       key <AB04> { [      U0A28, U0A28  ]       };
   1534       key <AB05> { [      U0A35, U0A35  ]       };
   1535       key <AB06> { [      U0A32, U0A33  ]       };
   1536       key <AB07> { [      U0A38, U0A36  ]       };
   1537       key <AB08> { [      comma,     less       ]       };
   1538       key <AB09> { [      period,    U0964  ]       };
   1539       key <AB10> { [      U0A2F, question   ]       };
   1540 
   1541     include "rupeesign(4)"
   1542     include "level3(ralt_switch)"
   1543 };
   1544 
   1545 //Name		:	Jhelum (Refind InScript)
   1546 //Description	:	A Jhelum keyboard layout for Gurmukhi (Punjabi)
   1547 //			http://www.satluj.org/Jhelum.html
   1548 //Modified for InScript to make
   1549 //Original Author :	Amanpreet Singh Alam <apreet.alam (a] gmail.com
   1550 
   1551 partial alphanumeric_keys
   1552 xkb_symbols "jhelum" {
   1553       name[Group1] = "Punjabi (Gurmukhi Jhelum)";
   1554           key.type[group1]="FOUR_LEVEL";
   1555 
   1556      // Roman digits
   1557      key <TLDE>  { [  grave, asciitilde, U0A02,U0A01 ] }; // grave: anusvara, candrabindu
   1558      key <AE01>  { [   1,exclam,	U0A67,	exclam	   ] };
   1559      key <AE02>  { [   2,at,	U0A68,	at	   ] };
   1560      key <AE03>  { [   3,numbersign, U0A69,	numbersign ] };
   1561      key <AE04>  { [   4,dollar,	U0A6A		 ] };
   1562      key <AE05>  { [   5,percent,U0A6B,	percent    ] };
   1563      key <AE06>  { [   6,U0A73, U0A6C,asciicircum ] };
   1564      key <AE07>  { [   7,U0A72,U0A6D,ampersand  ] };
   1565      key <AE08>  { [   8,asterisk,U0A6E,	asterisk   ] };
   1566      key <AE09>  { [   9,parenleft,U0A6F,parenleft  ] };
   1567      key <AE10>  { [   0,parenright,U0A66,parenright ] };
   1568      key <AE11>	{ [   minus,underscore] };
   1569      key <AE12>	{ [   equal,plus] };
   1570      key <BKSL>  { [   U0964,U0965,bar,backslash] }; //pipe : danda, double danda
   1571 
   1572      // Q row
   1573      key <AD01>   { [   U0A4C,	U0A14   ] };  // Q: oo, ooh
   1574      key <AD02>   { [   U0A48,	U0A10	] };  // W: ee, ae
   1575      key <AD03>   { [   U0A3E,   U0A06  ] };  // E: a, aa
   1576      key <AD04>   { [   U0A40,	U0A08, U20B9	] };  // R: ee, ai, rupeesign
   1577      key <AD05>   { [   U0A42,   U0A0A   ] };  // T: u, uu
   1578      key <AD06>   { [   U0A30,	U0A5C   ] };  // Y: ra, raa
   1579      key <AD07>   { [   U0A26,   U0A27   ] };  // U: tha, thha
   1580      key <AD08>   { [   U0A17,   U0A18, U0A5A   ] };  // I:ga, gha
   1581      key <AD09>   { [   U0A24,   U0A1F   ] };  // O: ta, tha
   1582      key <AD10>   { [   U0A2A,   U0A5E, VoidSymbol,U0A5E  ] };  // P: pa, pha
   1583      key <AD11>   { [   U0A21,   U0A22,   bracketleft,   braceleft   ] };
   1584      key <AD12>	 { [   U0A19,   U0A1E,   bracketright, braceright   ] };
   1585 
   1586      // A row
   1587      key <AC01>   { [   U0A4B,	 U0A13  ] };   // A: o, oo
   1588      key <AC02>   { [   U0A47,    U0A0F   ] };  // S: e, ee
   1589      key <AC03>   { [   U0A4D,    U0A05   ] };  // D: halant, aa
   1590      key <AC04>   { [   U0A3F,    U0A07   ] };  // F: i, aa
   1591      key <AC05>   { [   U0A41,    U0A09   ] };  // G: u, uh
   1592      key <AC06>   { [   U0A39,    U0A20   ] };  // H: ha, thha
   1593      key <AC07>   { [   U0A1C,    U0A1D, U0A5B   ] };  // J: ja, jha
   1594      key <AC08>   { [   U0A15,    U0A16,VoidSymbol ,U0A59   ] };  // K: ka, kha
   1595      key <AC09>   { [   U0A32,	 U0A25, U0A33   ] };  // L: la, tha
   1596      key <AC10>   { [   U0A38,   colon, U0A36  ] }; //; sa
   1597      key <AC11>   { [apostrophe, quotedbl ] };
   1598 
   1599      // Z row
   1600      key <AB01>   { [   U0A71,	 U0A3C	 ] };  // Z: addak, par bindi
   1601      key <AB02>   { [   U0A02,    U0A70	 ] };  // X: bindi, tippi
   1602      key <AB03>   { [   U0A1A,    U0A1B   ] };  // C: ca, cha
   1603      key <AB04>   { [   U0A35,    U0A2F   ] };  // V: va, ya
   1604      key <AB05>   { [   U0A2C,    U0A2D   ] };  // B: ba, bha
   1605      key <AB06>   { [   U0A28,    U0A23   ] };  // N: na, nha
   1606      key <AB07>   { [   U0A2E, U0A2E       ] };  // M: ma
   1607      key <AB08>   { [   comma,    U262C	 ] };// comma: comma, dev abbreviation sign
   1608      key <AB09>   { [   period,   U0A74	 ] };  // period: period, nukta
   1609      key <AB10>   { [   slash,   question ] };
   1610 
   1611     include "level3(ralt_switch)"
   1612 };
   1613 
   1614 partial alphanumeric_keys
   1615 xkb_symbols "olpc" {
   1616 
   1617 // Contact: Walter Bender <walter (a] laptop.org>
   1618 
   1619   include "in(deva)"
   1620 
   1621   key <TLDE> { [	U094A,	U0912 ] }; // DEVANAGARI VOWEL SIGN SHORT O; DEVANAGARI LETTER SHORT O
   1622   key <AE01> { [	U0967,	U090D ] }; // DEVANAGARI DIGIT ONE; DEVANAGARI LETTER CANDRA E
   1623   key <AE02> { [	U0968,	U0945 ] }; // DEVANAGARI DIGIT TWO; DEVANAGARI VOWEL SIGN CANDRA E
   1624   key <AE03> { [	U0969	 ] }; // DEVANAGARI DIGIT THREE;
   1625   key <AE04> { [	U096A	 ] }; // DEVANAGARI DIGIT FOUR;
   1626   key <AE05> { [	U096B	 ] }; // DEVANAGARI DIGIT FIVE;
   1627   key <AE06> { [	U096C	 ] }; // DEVANAGARI DIGIT SIX;
   1628   key <AE07> { [	U096D	 ] }; // DEVANAGARI DIGIT SEVEN;
   1629   key <AE08> { [	U096E	 ] }; // DEVANAGARI DIGIT EIGHT;
   1630   key <AE09> { [	U096F,	parenleft ] }; // DEVANAGARI DIGIT NINE;
   1631   key <AE10> { [	U0966,	parenright ] }; // DEVANAGARI DIGIT ZERO;
   1632   key <AE11> { [	minus,		U0903 ] }; // DEVANAGARI SIGN VISARGA;
   1633   key <AE12> { [	U0943,	U090B ] }; // DEVANAGARI VOWEL SIGN VOCALIC R; DEVANAGARI LETTER VOCALIC R
   1634 
   1635   key <AD01> { [	U094C,	U0914 ] }; // DEVANAGARI VOWEL SIGN AU; DEVANAGARI LETTER AU
   1636   key <AD02> { [	U0948,	U0910 ] }; // DEVANAGARI VOWEL SIGN AI; DEVANAGARI LETTER AI
   1637   key <AD03> { [	U093E,	U0906 ] }; // DEVANAGARI VOWEL SIGN AA; DEVANAGARI LETTER AA
   1638   key <AD04> { [	U0940,	U0908 ] }; // DEVANAGARI VOWEL SIGN II; DEVANAGARI LETTER II
   1639   key <AD05> { [	U0942,	U090A ] }; // DEVANAGARI VOWEL SIGN UU; DEVANAGARI LETTER UU
   1640   key <AD06> { [	U092C,	U092D ] }; // DEVANAGARI LETTER BA; DEVANAGARI LETTER BHA
   1641   key <AD07> { [	U0939,	U0919 ] }; // DEVANAGARI LETTER HA; DEVANAGARI LETTER NGA
   1642   key <AD08> { [	U0917,	U0918 ] }; // DEVANAGARI LETTER GA; DEVANAGARI LETTER GHA
   1643   key <AD09> { [	U0926,	U0927 ] }; // DEVANAGARI LETTER DA; DEVANAGARI LETTER DHA
   1644   key <AD10> { [	U091C,	U091D ] }; // DEVANAGARI LETTER JA; DEVANAGARI LETTER JHA
   1645   key <AD11> { [	U0921,	U0922 ] }; // DEVANAGARI LETTER DDA; DEVANAGARI LETTER DDHA
   1646   key <AD12> { [	U093C,	U091E ] }; // DEVANAGARI SIGN NUKTA; DEVANAGARI LETTER NYA
   1647 
   1648   key <BKSL> { [	U0949,	U0911 ] }; // DEVANAGARI VOWEL SIGN CANDRA O; DEVANAGARI LETTER CANDRA O
   1649 
   1650   key <AC01> { [	U094B,	U0913 ] }; // DEVANAGARI VOWEL SIGN O; DEVANAGARI LETTER O
   1651   key <AC02> { [	U0947,	U090F ] }; // DEVANAGARI VOWEL SIGN E; DEVANAGARI LETTER E
   1652   key <AC03> { [	U094D,	U0905 ] }; // DEVANAGARI SIGN VIRAMA; DEVANAGARI LETTER A
   1653   key <AC04> { [	U093F,	U0907 ] }; // DEVANAGARI VOWEL SIGN I; DEVANAGARI LETTER I
   1654   key <AC05> { [	U0941,	U0909 ] }; // DEVANAGARI VOWEL SIGN U; DEVANAGARI LETTER U
   1655   key <AC06> { [	U092A,	U092B ] }; // DEVANAGARI LETTER PA; DEVANAGARI LETTER PHA
   1656   key <AC07> { [	U0930,	U0931 ] }; // DEVANAGARI LETTER RA; DEVANAGARI LETTER RRA
   1657   key <AC08> { [	U0915,	U0916 ] }; // DEVANAGARI LETTER KA; DEVANAGARI LETTER KHA
   1658   key <AC09> { [	U0924,	U0925 ] }; // DEVANAGARI LETTER TA; DEVANAGARI LETTER THA
   1659   key <AC10> { [	U091A,	U091B ] }; // DEVANAGARI LETTER CA; DEVANAGARI LETTER CHA
   1660   key <AC11> { [	U091F,	U0920 ] }; // DEVANAGARI LETTER TTA; DEVANAGARI LETTER TTHA
   1661 
   1662   key <AB01> { [	U0946,	U090E ] }; // DEVANAGARI VOWEL SIGN SHORT E; DEVANAGARI LETTER SHORT E
   1663   key <AB02> { [	U0902,	U0901 ] }; // DEVANAGARI SIGN ANUSVARA; DEVANAGARI SIGN CANDRABINDU
   1664   key <AB03> { [	U092E,	U0923 ] }; // DEVANAGARI LETTER MA; DEVANAGARI LETTER NNA
   1665   key <AB04> { [	U0928,	U0929 ] }; // DEVANAGARI LETTER NA; DEVANAGARI LETTER NNNA
   1666   key <AB05> { [	U0935,	U0934 ] }; // DEVANAGARI LETTER VA; DEVANAGARI LETTER LLLA
   1667   key <AB06> { [	U0932,	U0933 ] }; // DEVANAGARI LETTER LA; DEVANAGARI LETTER LLA
   1668   key <AB07> { [	U0938,	U0936 ] }; // DEVANAGARI LETTER SA; DEVANAGARI LETTER SHA
   1669   key <AB08> { [	comma,		U0937 ] }; // DEVANAGARI LETTER SSA
   1670   key <AB09> { [	period,		U0964 ] }; // DEVANAGARI DANDA
   1671   key <AB10> { [	U092F,	U095F ] }; // DEVANAGARI LETTER YA; DEVANAGARI LETTER YYA
   1672 
   1673   // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ):
   1674   include "nbsp(zwnj3zwj4)"
   1675 
   1676   include "group(olpc)"
   1677 };
   1678 
   1679 partial alphanumeric_keys
   1680 xkb_symbols "hin-wx" {
   1681 
   1682     name[Group1]= "Hindi (Wx)";
   1683 
   1684       key <TLDE> {	 [     grave, asciitilde, 2, 3    ]	};
   1685 
   1686       key <AE01> {	 [      0x1000967, exclam	]	};
   1687       key <AE02> {	 [      0x1000968, at		]	};
   1688       key <AE03> {	 [      0x1000969 , numbersign	]	};
   1689       key <AE04> {	 [      0x100096A , dollar, U20B9	]	}; // Rupee
   1690       key <AE05> {	 [      0x100096B , percent	]	};
   1691       key <AE06> {	 [      0x100096C , asciicircum	]	};
   1692       key <AE07> {	 [      0x100096D , ampersand	]	};
   1693       key <AE08> {	 [      0x100096e , asterisk	]	};
   1694       key <AE09> {	 [      0x100096F, parenleft	]	};
   1695       key <AE10> {	 [      0x1000966, parenright	]	};
   1696       key <AE11> {	 [      minus, underscore	]	};
   1697       key <AE12> {	 [      equal, plus		]	};
   1698 
   1699 
   1700       key <AD01> {	 [      0x1000943,  0x1000944, 0x100090B, 0x1000960]	};
   1701       key <AD02> {	 [      0x1000924,  0x1000925	]	};
   1702       key <AD03> {	 [      0x1000947,  0x1000948, 0x100090F, 0x1000910]	};
   1703       key <AD04> {	 [      0x1000930,  0x1000937	]	};
   1704       key <AD05> {	 [      0x100091F,  0x1000920	]	};
   1705 
   1706 
   1707       key <AD06> {	 [      0x100092F		]	};
   1708       key <AD07> {	 [      0x1000941,  0x1000942, 0x1000909, 0x100090A ]	};
   1709       key <AD08> {	 [      0x100093F,  0x1000940, 0x1000907, 0x1000908 ]	};
   1710       key <AD09> {	 [      0x100094B,  0x100094C, 0x1000913, 0x1000914]	};
   1711       key <AD10> {	 [      0x100092A,  0x100092B		]	};
   1712       key <AD11> {	 [      bracketleft, braceleft		]	};
   1713       key <AD12> {	 [      bracketright, braceright		]	};
   1714       key <BKSL> {       [      backslash, bar, 0x1000964, 0x1000965 ] };
   1715 
   1716       key <AC01> {	 [      0x100094D,  0x100093E, 0x1000905,0x1000906 ]	};
   1717       key <AC02> {	 [      0x1000938,  0x1000936	]	};
   1718       key <AC03> {	 [      0x1000921,  0x1000922	]	};
   1719       key <AC04> {	 [      0x1000919,  0x100091E	]	};
   1720       key <AC05> {	 [      0x1000917,  0x1000918	]	};
   1721 
   1722 
   1723       key <AC06> {	 [      0x1000939,  0x1000903		]	};
   1724       key <AC07> {	 [      0x100091C,  0x100091D		]	};
   1725       key <AC08> {	 [      0x1000915,  0x1000916		]	};
   1726       key <AC09> {	 [      0x1000932,  0x1000962, 0x1000933, 0x100090C]	};
   1727       key <AC10> {	 [      semicolon, colon		]	};
   1728       key <AC11> {	 [      apostrophe, quotedbl		]	};
   1729 
   1730       key <AB01> {	 [      0x1000901,   0x100093C, 0x100093D, 0x1000950]   };
   1731       key <AB02> {       [      0x1000926,   0x1000927      ]       };
   1732       key <AB03> {       [      0x100091A,   0x100091B         ]       };
   1733       key <AB04> {       [      0x1000935                      ]       };
   1734       key <AB05> {       [      0x100092C,   0x100092D        ]       };
   1735       key <AB06> {       [      0x1000928,   0x1000923         ]       };
   1736       key <AB07> {       [      0x100092E,   0x1000902         ]       };
   1737       key <AB08> {       [      comma,       less         ]       };
   1738       key <AB09> {       [      period,      greater       ]       };
   1739       key <AB10> {       [      slash,      question        ]       };
   1740 
   1741     include "level3(ralt_switch)"
   1742 };
   1743 
   1744 partial alphanumeric_keys
   1745 xkb_symbols "eng" {
   1746 
   1747     include "us(basic)"
   1748     name[Group1]= "English (India, with rupee)";
   1749 
   1750     include "rupeesign(4)"
   1751     include "level3(ralt_switch)"
   1752 };
   1753 
   1754 
   1755 // Description : Enhanced INSCRIPT keymap for Malayalam
   1756 // Encoding    : Unicode (http://www.unicode.org)
   1757 // Author      : Mahesh T Pai <paivakil (a] gmail.com>
   1758 // Date        : March, 2011
   1759 // Source      : http://www.nongnu.org/smc/docs/images/ml_inscript_layout.jpg
   1760 // Comment     : Based on the InScript Keyboard created by M Baiju
   1761 
   1762 partial alphanumeric_keys
   1763 xkb_symbols "mal_enhanced" {
   1764 
   1765     name[Group1] = "Malayalam (enhanced InScript, with rupee)";
   1766 
   1767     // From grave to backslash:
   1768     key <TLDE> { [ U0d4a ,       U0d12 ] };
   1769     key <AE01> { [ U0d67 ,      exclam ] };
   1770     key <AE02> { [ U0d68 ,          at ] };
   1771     key <AE03> { [ U0d69 ,  numbersign ] };
   1772     key <AE04> { [ U0d6a ,      dollar ] };
   1773     key <AE05> { [ U0d6b ,     percent ] };
   1774     key <AE06> { [ U0d6c , asciicircum ] };
   1775     key <AE07> { [ U0d6d ,   ampersand ] };
   1776     key <AE08> { [ U0d6e ,       U0d7e ] };
   1777     key <AE09> { [ U0d6f ,   parenleft ] };
   1778     key <AE10> { [ U0d66 ,  parenright ] };
   1779     key <AE11> { [ minus , U0d03       ] };
   1780     key <AE12> { [ U0d43 , U0d0b       ] };
   1781     key <BKSL> { [ U0d7c , backslash   ] }; // chillu RR
   1782 
   1783     // From Q to right bracket:
   1784     key <AD01> { [ U0d57 , U0d14 ] };
   1785     key <AD02> { [ U0d48 , U0d10 ] };
   1786     key <AD03> { [ U0d3e , U0d06 ] };
   1787     key <AD04> { [ U0d40 , U0d08 ] };
   1788     key <AD05> { [ U0d42 , U0d0a ] };
   1789     key <AD06> { [ U0d2c , U0d2d ] };
   1790     key <AD07> { [ U0d39 , U0d19 ] };
   1791     key <AD08> { [ U0d17 , U0d18 ] };
   1792     key <AD09> { [ U0d26 , U0d27 ] };
   1793     key <AD10> { [ U0d1c , U0d1d ] };
   1794     key <AD11> { [ U0d21 , U0d22 ] };
   1795     key <AD12> { [ U200d , U0d1e ] };
   1796 
   1797     // From A to apostrophe:
   1798     key <AC01> { [ U0d4b , U0d13 ] };
   1799     key <AC02> { [ U0d47 , U0d0f ] };
   1800     key <AC03> { [ U0d4d , U0d05 ] };
   1801     key <AC04> { [ U0d3f , U0d07 ] };
   1802     key <AC05> { [ U0d41 , U0d09 ] };
   1803     key <AC06> { [ U0d2a , U0d2b ] };
   1804     key <AC07> { [ U0d30 , U0d31 ] };
   1805     key <AC08> { [ U0d15 , U0d16 ] };
   1806     key <AC09> { [ U0d24 , U0d25 ] };
   1807     key <AC10> { [ U0d1a , U0d1b ] };
   1808     key <AC11> { [ U0d1f , U0d20 ] };
   1809 
   1810     // From Z to slash:
   1811     key <AB01> { [ U0d46 , U0d0e ] };
   1812     key <AB02> { [ U0d02 , U0d7a ] };
   1813     key <AB03> { [ U0d2e , U0d23 ] };
   1814     key <AB04> { [ U0d28 , U0d7b ] };
   1815     key <AB05> { [ U0d35 , U0d34 ] };
   1816     key <AB06> { [ U0d32 , U0d33 ] };
   1817     key <AB07> { [ U0d38 , U0d36 ] };
   1818     key <AB08> { [ comma , U0d37 ] };
   1819     key <AB09> { [ period, U0d7d ] }; //chillu l
   1820     key <AB10> { [ U0d2f , question ] };
   1821 
   1822     include "rupeesign(4)"
   1823     include "level3(ralt_switch)"
   1824 };
   1825 
   1826 
   1827 // ---- BEGIN Hindi KaGaPa phonetic ----
   1828 // Name:        KaGaPa phonetic
   1829 // Brief:       Devanagari layout (Hindi, Sanskrit, Nepali, Marathi, etc.)
   1830 // Diagram:     (Original)[http://baraha.com/help/Keyboards/dev_brhkbd.htm]
   1831 //              (This layout)[http://bdsatish.in/lang/dev-kagapa.png]
   1832 //
   1833 // Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout)
   1834 //              which is a modified layout of the specification by Dr. K. P. Rao.
   1835 //              This is a phonetic layout with the following features:
   1836 //              [1] All letters are mapped to phonetically-similar English keys
   1837 //                  as much as possible.
   1838 //              [2] The independent vowel (svara) and its dependent vowel (maatra)
   1839 //                  use the same key (depending upon SHIFT, ALTGR or ALTGR + SHIFT).
   1840 //              [3] Consonant conjuncts are produced by explicitly invoking the
   1841 //                  'viraama' (key f). The 'short a' maatra is implicit in all
   1842 //                  consonants.
   1843 //              [4] Zero width non-joiner and joiner are on keys 6 and 7
   1844 //                  respectively. These are absolutely essential for alternative
   1845 //                  glyph renderings of consonant half-forms.
   1846 //              [5] Rigvedic accent marks, visarga variants.
   1847 //
   1848 // Author:      Satish BD <bdsatish (a] gmail.com>
   1849 //
   1850 partial alphanumeric_keys
   1851 xkb_symbols "hin-kagapa" {
   1852      name[Group1] = "Hindi (KaGaPa, phonetic)";
   1853      key.type[group1]="FOUR_LEVEL";
   1854 
   1855     key <TLDE>  { [   grave,        asciitilde,   U201C          ] };  // U201C: left double quotation mark
   1856     key <AE01>  { [   1,            exclam,       U0967          ] };
   1857     key <AE02>  { [   2,            at,           U0968,  U20A8  ] };  // U20A8: generic rupee sign (Rs)
   1858     key <AE03>  { [   3,            numbersign,   U0969          ] };
   1859     key <AE04>  { [   4,            dollar,       U096A,  U20B9  ] };  // U20B9: new Indian rupee sign
   1860     key <AE05>  { [   5,            percent,      U096B          ] };
   1861     key <AE06>  { [   6,            asciicircum,  U096C,  U200C  ] };  // ZWNJ
   1862     key <AE07>  { [   7,            ampersand,    U096D,  U200D  ] };  // ZWJ
   1863     key <AE08>  { [   8,            asterisk,     U096E,  U0901  ] };  // U0901: Devanagari candrabindu
   1864     key <AE09>  { [   9,            parenleft,    U096F          ] };
   1865     key <AE10>  { [   0,            parenright,   U0966,  U0970  ] };  // U0970: Devanagari abbreviation sign
   1866     key <AE11>  { [   minus,        underscore,   U0952          ] };  // U0952: Devanagari stress sign anudatta
   1867     key <AE12>  { [   equal,        plus                         ] };
   1868     key <BKSL>  { [   backslash,    bar,          U0964,  U0965  ] };  // backslash, pipe, danda, double danda
   1869 
   1870     key <AD01>  { [   U091F,         U0920                       ] };  // Q: retroflex Ta, Tha
   1871     key <AD02>  { [   U0921,         U0922,      U095C,  U095D   ] };  // W: retroflex Da, Dha, Da-nukta, Dha-nukta
   1872     key <AD03>  { [   U0946,         U0947,      U090E,  U090F   ] };  // E: matras, short E, long E
   1873     key <AD04>  { [   U0930,         U0943,      U090B,  U0931   ] };  // R: ra, vocalic R matra, vocalic R, ra-nukta
   1874     key <AD05>  { [   U0924,         U0925                       ] };  // T: dental ta, tha
   1875     key <AD06>  { [   U092F,         U0948,      U0910,  U095F   ] };  // Y: ya, ai matra, ai, ya-nukta
   1876     key <AD07>  { [   U0941,         U0942,      U0909,  U090A   ] };  // U: matras, u, uu
   1877     key <AD08>  { [   U093F,         U0940,      U0907,  U0908   ] };  // I: matras, i, ii
   1878     key <AD09>  { [   U094A,         U094B,      U0912,  U0913   ] };  // O: matras, short o, long o
   1879     key <AD10>  { [   U092A,         U092B,      U095E           ] };  // P: pa, pha, pha-nukta
   1880     key <AD11>  { [   bracketleft,   braceleft                   ] };
   1881     key <AD12>  { [   bracketright,  braceright                  ] };
   1882 
   1883     key <AC01>  { [   U093E,        U0906,     U0905,    U0972   ] };  // A: aa matra, aa, short a, candra a
   1884     key <AC02>  { [   U0938,        U0936                        ] };  // S: sa, sha
   1885     key <AC03>  { [   U0926,        U0927                        ] };  // D: dental da, dha
   1886     key <AC04>  { [   U094D,        U0944,     U0960             ] };  // F: virama, vocalic RR matra, vocalic RR
   1887     key <AC05>  { [   U0917,        U0918,     U095A             ] };  // G: ga, gha, ga-nukta
   1888     key <AC06>  { [   U0939,        U0903,     U1CF5,    U1CF6   ] };  // H: ha, visarga, jihvamuliya, upadhmaniya
   1889     key <AC07>  { [   U091C,        U091D,     U095B             ] };  // J: ja, jha, ja-nukta
   1890     key <AC08>  { [   U0915,        U0916,     U0958,    U0959   ] };  // K: ka, kha, ka-nukta, kha-nukta
   1891     key <AC09>  { [   U0932,        U0933,     U0962,    U090C   ] };  // L: la, lla, vocalic L matra, vocalic L
   1892     key <AC10>  { [   semicolon,    colon,     U1CF2,    U1CF3   ] };  // U1CF2/3: ardhavisarga/rotated ardhavisarga
   1893     key <AC11>  { [   apostrophe,   quotedbl,  U0951,    U201D   ] };  // U0951: Devanagari stress sign udatta
   1894                                                                        // U201D: Right double quotation mark
   1895     key <AB01>  { [   U091E,   U0919                   ] };  // Z: nya, nga
   1896     key <AB02>  { [   U0937,   U093C,  U0934           ] };  // X: ssa, nukta below, lla-nukta
   1897     key <AB03>  { [   U091A,   U091B                   ] };  // C: ca, cha
   1898     key <AB04>  { [   U0935,   U094C,  U0914           ] };  // V: va, matra au, au
   1899     key <AB05>  { [   U092C,   U092D                   ] };  // B: ba, bha
   1900     key <AB06>  { [   U0928,   U0923,  U0929           ] };  // N: na, nna, nnna
   1901     key <AB07>  { [   U092E,   U0902,  U093D,  U0950   ] };  // M: ma, anusvara, avagraha, Devanagari OM
   1902     key <AB08>  { [   comma,   less,   U0945,  U090D   ] };  // ,: matra, candra e
   1903     key <AB09>  { [   period,  greater,U0949,  U0911   ] };  // .: matra, candra o
   1904     key <AB10>  { [   slash,   question                ] };
   1905 
   1906     include "level3(ralt_switch)"
   1907 };
   1908 // ---- END Hindi KaGaPa ----
   1909 
   1910 // Sanskrit uses Devanagari layout of Hindi
   1911 partial alphanumeric_keys
   1912 xkb_symbols "san-kagapa" {
   1913   include "in(hin-kagapa)"
   1914   name[Group1] = "Sanskrit (KaGaPa, phonetic)";
   1915 };
   1916 
   1917 // Marathi uses Devanagari layout of Hindi
   1918 partial alphanumeric_keys
   1919 xkb_symbols "mar-kagapa" {
   1920   include "in(hin-kagapa)"
   1921   name[Group1] = "Marathi (KaGaPa, phonetic)";
   1922 };
   1923 
   1924 
   1925 // ---- BEGIN Kannada KaGaPa phonetic ----
   1926 // Name:        Kannada KaGaPa phonetic
   1927 // Diagram:     (Original)[http://www.baraha.com/help/Keyboards/kan_brhkbd.htm]
   1928 //              (This layout)[http://bdsatish.in/lang/kan-kagapa.png]
   1929 //
   1930 // Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout).
   1931 //              See the description to "hin-kagapa" above.
   1932 //              Certain punctuation characters from Devanagari block are
   1933 //              retained for compatibility.
   1934 //
   1935 // Author:      Satish BD <bdsatish (a] gmail.com>
   1936 //
   1937 partial alphanumeric_keys
   1938 xkb_symbols "kan-kagapa" {
   1939     name[Group1] = "Kannada (KaGaPa, phonetic)";
   1940     key.type[group1]="FOUR_LEVEL";
   1941 
   1942     key <TLDE>  { [   grave,        asciitilde,   U201C          ] };  // U201C: left double quotation mark
   1943     key <AE01>  { [   1,            exclam,       U0CE7          ] };
   1944     key <AE02>  { [   2,            at,           U0CE8,  U20A8  ] };  // U20A8: generic rupee sign (Rs)
   1945     key <AE03>  { [   3,            numbersign,   U0CE9          ] };
   1946     key <AE04>  { [   4,            dollar,       U0CEA,  U20B9  ] };  // U20B9: new Indian rupee sign
   1947     key <AE05>  { [   5,            percent,      U0CEB          ] };
   1948     key <AE06>  { [   6,            asciicircum,  U0CEC,  U200C  ] };  // ZWNJ
   1949     key <AE07>  { [   7,            ampersand,    U0CED,  U200D  ] };  // ZWJ
   1950     key <AE08>  { [   8,            asterisk,     U0CEE,  U0901  ] };  // U0901: Devanagari candrabindu
   1951     key <AE09>  { [   9,            parenleft,    U0CEF          ] };
   1952     key <AE10>  { [   0,            parenright,   U0CE6          ] };
   1953     key <AE11>  { [   minus,        underscore,   U0952          ] };  // U0952: Devanagari stress sign anudatta
   1954     key <AE12>  { [   equal,        plus                         ] };
   1955     key <BKSL>  { [   backslash,    bar,          U0964,  U0965  ] };  // backslash, pipe, danda, double danda
   1956 
   1957     key <AD01>  { [   U0C9F,         U0CA0                       ] };  // Q: retroflex Ta, Tha
   1958     key <AD02>  { [   U0CA1,         U0CA2                       ] };  // W: retroflex Da, Dha
   1959     key <AD03>  { [   U0CC6,         U0CC7,      U0C8E,  U0C8F   ] };  // E: matras, short E, long E
   1960     key <AD04>  { [   U0CB0,         U0CC3,      U0C8B,  U0CB1   ] };  // R: ra, vocalic R matra, vocalic R, RRA
   1961     key <AD05>  { [   U0CA4,         U0CA5                       ] };  // T: dental ta, tha
   1962     key <AD06>  { [   U0CAF,         U0CC8,      U0C90           ] };  // Y: ya, ai matra, ai
   1963     key <AD07>  { [   U0CC1,         U0CC2,      U0C89,  U0C8A   ] };  // U: matras, u, uu
   1964     key <AD08>  { [   U0CBF,         U0CC0,      U0C87,  U0C88   ] };  // I: matras, i, ii
   1965     key <AD09>  { [   U0CCA,         U0CCB,      U0C92,  U0C93   ] };  // O: matras, short o, long o
   1966     key <AD10>  { [   U0CAA,         U0CAB                       ] };  // P: pa, pha
   1967     key <AD11>  { [   bracketleft,   braceleft                   ] };
   1968     key <AD12>  { [   bracketright,  braceright                  ] };
   1969 
   1970     key <AC01>  { [   U0CBE,        U0C86,     U0C85             ] };  // A: aa matra, aa, short a
   1971     key <AC02>  { [   U0CB8,        U0CB6                        ] };  // S: sa, sha
   1972     key <AC03>  { [   U0CA6,        U0CA7                        ] };  // D: dental da, dha
   1973     key <AC04>  { [   U0CCD,        U0CC4,     U0CE0             ] };  // F: virama, vocalic RR matra, vocalic RR
   1974     key <AC05>  { [   U0C97,        U0C98                        ] };  // G: ga, gha
   1975     key <AC06>  { [   U0CB9,        U0C83,     U0CF1,    U0CF2   ] };  // H: ha, visarga, jihvanuliya, upadhmaniya
   1976     key <AC07>  { [   U0C9C,        U0C9D                        ] };  // J: ja, jha
   1977     key <AC08>  { [   U0C95,        U0C96                        ] };  // K: ka, kha
   1978     key <AC09>  { [   U0CB2,        U0CB3,     U0CE2,    U0C8C   ] };  // L: la, lla, vocalic L matra, vocalic L
   1979     key <AC10>  { [   semicolon,    colon                        ] };
   1980     key <AC11>  { [   apostrophe,   quotedbl,  U0951,    U201D   ] };  // U0951: Devanagari stress sign udatta
   1981                                                                        // U201D: Right double quotation mark
   1982     key <AB01>  { [   U0C9E,   U0C99                   ] };  // Z: nya, nga
   1983     key <AB02>  { [   U0CB7,   U0CBC,  U0CDE           ] };  // X: ssa, nukta below, LLLA
   1984     key <AB03>  { [   U0C9A,   U0C9B                   ] };  // C: ca, cha
   1985     key <AB04>  { [   U0CB5,   U0CCC,  U0C94           ] };  // V: va, matra au, au
   1986     key <AB05>  { [   U0CAC,   U0CAD                   ] };  // B: ba, bha
   1987     key <AB06>  { [   U0CA8,   U0CA3                   ] };  // N: na, nna
   1988     key <AB07>  { [   U0CAE,   U0C82,  U0CBD,  U0950   ] };  // M: ma, anusvara, avagraha, Devanagari OM
   1989     key <AB08>  { [   comma,   less,   U0CB1           ] };  // ,: RRA
   1990     key <AB09>  { [   period,  greater,U0CDE           ] };  // .: LLLA
   1991     key <AB10>  { [   slash,   question                ] };
   1992 
   1993     include "level3(ralt_switch)"
   1994 };
   1995 // ---- END Kannada KaGaPa ----
   1996 
   1997 
   1998 // ---- BEGIN Telugu KaGaPa phonetic ----
   1999 // Name:        Telugu KaGaPa phonetic
   2000 // Diagram:     (Original)[http://www.baraha.com/help/Keyboards/tel_brhkbd.htm]
   2001 //              (This layout)[http://bdsatish.in/lang/tel-kagapa.png]
   2002 //
   2003 // Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout).
   2004 //              See the description to "hin-kagapa" above.
   2005 //              Certain punctuation characters from Devanagari block are
   2006 //              retained for compatibility.
   2007 //
   2008 // Author:      Satish BD <bdsatish (a] gmail.com>
   2009 //
   2010 partial alphanumeric_keys
   2011 xkb_symbols "tel-kagapa" {
   2012     name[Group1] = "Telugu (KaGaPa, phonetic)";
   2013     key.type[group1]="FOUR_LEVEL";
   2014 
   2015     key <TLDE>  { [   grave,        asciitilde,   U201C          ] };  // U201C: left double quotation mark
   2016     key <AE01>  { [   1,            exclam,       U0C67          ] };
   2017     key <AE02>  { [   2,            at,           U0C68,  U20A8  ] };  // U20A8: generic rupee sign (Rs)
   2018     key <AE03>  { [   3,            numbersign,   U0C69          ] };
   2019     key <AE04>  { [   4,            dollar,       U0C6A,  U20B9  ] };  // U20B9: new Indian rupee sign
   2020     key <AE05>  { [   5,            percent,      U0C6B          ] };
   2021     key <AE06>  { [   6,            asciicircum,  U0C6C,  U200C  ] };  // ZWNJ
   2022     key <AE07>  { [   7,            ampersand,    U0C6D,  U200D  ] };  // ZWJ
   2023     key <AE08>  { [   8,            asterisk,     U0C6E,  U0C01  ] };  // U0C01: Telugu arasunna
   2024     key <AE09>  { [   9,            parenleft,    U0C6F          ] };
   2025     key <AE10>  { [   0,            parenright,   U0C66          ] };
   2026     key <AE11>  { [   minus,        underscore,   U0952          ] };  // U0952: Devanagari stress sign anudatta
   2027     key <AE12>  { [   equal,        plus                         ] };
   2028     key <BKSL>  { [   backslash,    bar,          U0964,  U0965  ] };  // backslash, pipe, danda, double danda
   2029 
   2030     key <AD01>  { [   U0C1F,         U0C20                       ] };  // Q: retroflex Ta, Tha
   2031     key <AD02>  { [   U0C21,         U0C22                       ] };  // W: retroflex Da, Dha
   2032     key <AD03>  { [   U0C46,         U0C47,      U0C0E,  U0C0F   ] };  // E: matras, short E, long E
   2033     key <AD04>  { [   U0C30,         U0C43,      U0C0B,  U0C31   ] };  // R: ra, vocalic R matra, vocalic R, RRA
   2034     key <AD05>  { [   U0C24,         U0C25                       ] };  // T: dental ta, tha
   2035     key <AD06>  { [   U0C2F,         U0C48,      U0C10           ] };  // Y: ya, ai matra, ai
   2036     key <AD07>  { [   U0C41,         U0C42,      U0C09,  U0C0A   ] };  // U: matras, u, uu
   2037     key <AD08>  { [   U0C3F,         U0C40,      U0C07,  U0C08   ] };  // I: matras, i, ii
   2038     key <AD09>  { [   U0C4A,         U0C4B,      U0C12,  U0C13   ] };  // O: matras, short o, long o
   2039     key <AD10>  { [   U0C2A,         U0C2B                       ] };  // P: pa, pha
   2040     key <AD11>  { [   bracketleft,   braceleft                   ] };
   2041     key <AD12>  { [   bracketright,  braceright                  ] };
   2042 
   2043     key <AC01>  { [   U0C3E,        U0C06,     U0C05             ] };  // A: aa matra, aa, short a
   2044     key <AC02>  { [   U0C38,        U0C36                        ] };  // S: sa, sha
   2045     key <AC03>  { [   U0C26,        U0C27                        ] };  // D: dental da, dha
   2046     key <AC04>  { [   U0C4D,        U0C44,     U0C60             ] };  // F: virama, vocalic RR matra, vocalic RR
   2047     key <AC05>  { [   U0C17,        U0C18                        ] };  // G: ga, gha
   2048     key <AC06>  { [   U0C39,        U0C03                        ] };  // H: ha, visarga
   2049     key <AC07>  { [   U0C1C,        U0C1D                        ] };  // J: ja, jha
   2050     key <AC08>  { [   U0C15,        U0C16                        ] };  // K: ka, kha
   2051     key <AC09>  { [   U0C32,        U0C33,     U0C62,    U0C0C   ] };  // L: la, lla, vocalic L matra, vocalic L
   2052     key <AC10>  { [   semicolon,    colon                        ] };
   2053     key <AC11>  { [   apostrophe,   quotedbl,  U0951,    U201D   ] };  // U0951: Devanagari stress sign udatta
   2054                                                                        // U201D: Right double quotation mark
   2055     key <AB01>  { [   U0C1E,   U0C19                   ] };  // Z: nya, nga
   2056     key <AB02>  { [   U0C37                            ] };  // X: ssa
   2057     key <AB03>  { [   U0C1A,   U0C1B                   ] };  // C: ca, cha
   2058     key <AB04>  { [   U0C35,   U0C4C,  U0C14           ] };  // V: va, matra au, au
   2059     key <AB05>  { [   U0C2C,   U0C2D                   ] };  // B: ba, bha
   2060     key <AB06>  { [   U0C28,   U0C23                   ] };  // N: na, nna
   2061     key <AB07>  { [   U0C2E,   U0C02,  U0C3D,  U0950   ] };  // M: ma, anusvara, avagraha, Devanagari OM
   2062     key <AB08>  { [   comma,   less,   U0C58           ] };  // ,: comma, less than, TSA
   2063     key <AB09>  { [   period,  greater,U0C59           ] };  // .: period, greater than, DZA
   2064     key <AB10>  { [   slash,   question                ] };
   2065 
   2066     include "level3(ralt_switch)"
   2067 };
   2068 
   2069 // ---- BEGIN Gujarati KaGaPa phonetic ----
   2070 // Name:        KaGaPa phonetic
   2071 // Author:      Sharad Gor <docbroke (a] protonmail.com>
   2072 // Layout image at https://github.com/Docbroke/Gujarati_KaGaPa/blob/main/Guj_KaGaPa_layout.jpg
   2073 
   2074 partial alphanumeric_keys
   2075 xkb_symbols "guj-kagapa" {
   2076      name[Group1] = "Gujarati (KaGaPa, phonetic)";
   2077      key.type[group1]="FOUR_LEVEL";
   2078 
   2079 // NUMBER ROW
   2080     key <TLDE>  { [   grave,        asciitilde,   U201C          ] };  // U201C:  left double quotation mark
   2081     key <AE01>  { [   1,            exclam,       U0AE7          ] };
   2082     key <AE02>  { [   2,            at,           U0AE8,  U0AF1  ] };  // U0AF1: Gujarati rupee sign ()
   2083     key <AE03>  { [   3,            numbersign,   U0AE9          ] };
   2084     key <AE04>  { [   4,            dollar,       U0AEA,  U20B9  ] };  // U20B9: new Indian rupee sign
   2085     key <AE05>  { [   5,            percent,      U0AEB          ] };
   2086     key <AE06>  { [   6,            asciicircum,  U0AEC,  U200C  ] };  // ZWNJ
   2087     key <AE07>  { [   7,            ampersand,    U0AED,  U200D  ] };  // ZWJ
   2088     key <AE08>  { [   8,            asterisk,     U0AEE,  U0A81  ] };  // U0A81: canndrabindu ( )
   2089     key <AE09>  { [   9,            parenleft,    U0AEF          ] };
   2090     key <AE10>  { [   0,            parenright,   U0AE6,  U0AF0  ] };  // U0AF0:()  abbreviation sign
   2091 
   2092     key <AE11>  { [   minus,        underscore,   U0952          ] };  // U0952: Devanagari stress sign anudatta()
   2093     key <AE12>  { [   equal,        plus                         ] };
   2094 
   2095 //First row
   2096 
   2097     key <AD01>  { [   U0A9F,         U0AA0                       ] };  // Q: retroflex Ta  , Tha 
   2098     key <AD02>  { [   U0AA1,         U0AA2                       ] };  // W: retroflex Da  , Dha 
   2099     key <AD03>  { [   U0AC7,         U0AC8,      U0A8F,  U0A90   ] };  // E: o  o    
   2100     key <AD04>  { [   U0AB0,         U0AC3,      U0A8B,  U0AC4   ] };  // R:  o    o
   2101     key <AD05>  { [   U0AA4,         U0AA5,      U0A9F,  U0AA0   ] };  // T:    
   2102     key <AD06>  { [   U0AAF                                      ] };  // Y: 
   2103     key <AD07>  { [   U0AC1,         U0AC2,      U0A89,  U0A8A   ] };  // U: o   o      
   2104     key <AD08>  { [   U0ABF,         U0AC0,      U0A87,  U0A88   ] };  // I: o  o     
   2105     key <AD09>  { [   U0ACB,         U0ACC,      U0A93,  U0A94   ] };  // O: o  o     
   2106     key <AD10>  { [   U0AAA,         U0AAB                       ] };  // P:  
   2107     key <AD11>  { [   bracketleft,   braceleft                   ] };
   2108     key <AD12>  { [   bracketright,  braceright                  ] };
   2109     key <BKSL>  { [   backslash,    bar,          U0964,  U0965  ] };  // backslash, pipe, danda, double danda
   2110 
   2111 //Second row
   2112 
   2113     key <AC01>  { [   U0ABE,        U0A86,     U0A85,    U0A8D   ] };  // A: o     
   2114     key <AC02>  { [   U0AB8,        U0AB6                        ] };  // S:   
   2115     key <AC03>  { [   U0AA6,        U0AA7,     U0AA1,    U0AA2   ] };  // D:    
   2116     key <AC04>  { [   U0ACD,        U0AC4,     U0AE0             ] };  // F: o  o  
   2117     key <AC05>  { [   U0A97,        U0A98                        ] };  // G:   
   2118     key <AC06>  { [   U0AB9,        U0A83                        ] };  // H:  ()
   2119 
   2120     key <AC07>  { [   U0A9C,        U0A9D,     U0A9E,    U0AF9   ] };  // J:       
   2121     key <AC08>  { [   U0A95,        U0A96                        ] };  // K:  
   2122     key <AC09>  { [   U0AB2,        U0AB3,     U0AE1,    U0AE2   ] };  // L:     o
   2123     key <AC10>  { [   semicolon,    colon                        ] };  //
   2124     key <AC11>  { [   apostrophe,   quotedbl,  U0951,    U201D   ] };  // U0951: o Devanagari stress sign udatta
   2125                                                                        // U201D:  Right double quotation mark
   2126     key <AB01>  { [   U0A9E,        U0A99                        ] };  // Z: nya , nga 
   2127     key <AB02>  { [   U0AB7,        U0ABC                        ] };  // X: ssa , nukta below o
   2128     key <AB03>  { [   U0A9A,        U0A9B                        ] };  // C:  
   2129     key <AB04>  { [   U0AB5,        U0ACC,     U0A94             ] };  // V:   o  
   2130     key <AB05>  { [   U0AAC,        U0AAD                        ] };  // B:  
   2131     key <AB06>  { [   U0AA8,        U0AA3                        ] };  // N:  
   2132     key <AB07>  { [   U0AAE,        U0A82,     U0ABD,    U0AD0   ] };  // M:  o   
   2133     key <AB08>  { [   comma,        less,      U0AC5,    U0A8D   ] };  // ,: o   
   2134     key <AB09>  { [   period,       greater,   U0AC9,    U0A91   ] };  // .: o, 
   2135     key <AB10>  { [   slash,        question                     ] };
   2136 
   2137     include "level3(ralt_switch)"
   2138 };
   2139 // ---- END Gujarati KaGaPa ----
   2140 
   2141 
   2142 // Description	: Keymap for Manipuri language (Meetei mayek script)
   2143 // Encoding	: Unicode (http://www.unicode.org)
   2144 // Author	: Santosh Heigrujam <santosh.tomba (a] gmail.com>
   2145 // Date		: December, 2013
   2146 
   2147 partial alphanumeric_keys modifier_keys
   2148 xkb_symbols "eeyek" {
   2149 
   2150     name[Group1]= "Manipuri (Eeyek)";
   2151 
   2152     key <TLDE> {	[     grave,	asciitilde	]	};
   2153     key <AE01> {	[	  Uabf1,	exclam		]	};
   2154     key <AE02> {	[	  Uabf2,	at		]	};
   2155     key <AE03> {	[	  Uabf3,	numbersign	]	};
   2156     key <AE04> {	[	  Uabf4,	dollar		]	};
   2157     key <AE05> {	[	  Uabf5,	percent		]	};
   2158     key <AE06> {	[	  Uabf6,	asciicircum	]	};
   2159     key <AE07> {	[	  Uabf7,	ampersand	]	};
   2160     key <AE08> {	[	  Uabf8,	asterisk	]	};
   2161     key <AE09> {	[	  Uabf9,	parenleft	]	};
   2162     key <AE10> {	[	  Uabf0,	parenright	]	};
   2163     key <AE11> {	[     minus,	underscore	]	};
   2164     key <AE12> {	[     equal,	plus		]	};
   2165 
   2166     key <AD01> {	[	  Uabc8,	Uabd8	]	};
   2167     key <AD02> {	[	  Uabcb,	Uabcb	]	};
   2168     key <AD03> {	[	  Uabcf,	Uabe2	]	};
   2169     key <AD04> {	[	  Uabd4,	Uabd4	]	};
   2170     key <AD05> {	[	  Uabc7,	Uabe0	]	};
   2171     key <AD06> {	[	  Uabcc,	Uabe6	]	};
   2172     key <AD07> {	[	  Uabce,	Uabe8	]	};
   2173     key <AD08> {	[	  Uabe4,	Uabe9	]	};
   2174     key <AD09> {	[	  Uabe3,	Uabe7	]	};
   2175     key <AD10> {	[	  Uabc4,	Uabde	]	};
   2176     key <AD11> {	[ bracketleft,	braceleft	]	};
   2177     key <AD12> {	[ bracketright,	braceright	]	};
   2178 
   2179     key <AC01> {	[	  Uabd1,	Uabe5	]	};
   2180     key <AC02> {	[	  Uabc1,	Uabd3	]	};
   2181     key <AC03> {	[	  Uabd7,	Uabd9	]	};
   2182     key <AC04> {	[	  Uabd0,	Uabda	]	};
   2183     key <AC05> {	[	  Uabd2,	Uabd8	]	};
   2184     key <AC06> {	[	  Uabcd,	Uabea	]	};
   2185     key <AC07> {	[	  Uabd6,	Uabd3	]	};
   2186     key <AC08> {	[	  Uabc0,	Uabdb	]	};
   2187     key <AC09> {	[	  Uabc2,	Uabdc	]	};
   2188     key <AC10> {	[ semicolon,	colon		]	};
   2189     key <AC11> {	[ apostrophe,	quotedbl	]	};
   2190 
   2191     key <AB01> {	[	  Uabc9,	Uabe1	]	};
   2192     key <AB02> {	[	  Uabca,	Uabd9	]	};
   2193     key <AB03> {	[	  Uabc6,	Uabeb	]	};
   2194     key <AB04> {	[	  Uabda,	Uabed	]	};
   2195     key <AB05> {	[	  Uabd5,	Uabec	]	};
   2196     key <AB06> {	[	  Uabc5,	Uabdf	]	};
   2197     key <AB07> {	[	  Uabc3,	Uabdd	]	};
   2198     key <AB08> {	[     comma,	less		]	};
   2199     key <AB09> {	[    period,	greater		]	};
   2200     key <AB10> {	[     slash,	question	]	};
   2201 
   2202     key <BKSL> {	[ backslash,         bar	]	};
   2203 
   2204     include "level3(ralt_switch)"
   2205 };
   2206 
   2207 // This layout is developed by Niranjan Tambe in July 2019
   2208 // for typing Indic languages in International Phonetic Alphabet (IPA).
   2209 // Contact - niranjanvikastambe (a] gmail.com
   2210 
   2211 partial alphanumeric_keys modifier_keys
   2212 xkb_symbols "iipa" {
   2213 
   2214     name[Group1]= "Indic IPA";
   2215     key <AE01>	{ [	1,		exclam]	};
   2216     key <AE02>	{ [	2,		at]	};
   2217     key <AE03>	{ [	3,		numbersign]	};
   2218     key <AE04>	{ [	4,		U20B9]	};
   2219     key <AE05>	{ [	5,		percent]	};
   2220     key <AE06>	{ [	6,		asciicircum] };
   2221     key <AE07>	{ [	7,		ampersand]	};
   2222     key <AE08>	{ [	8,		asterisk]	};
   2223     key <AE09>	{ [	9,		parenleft]	};
   2224     key <AE10>	{ [	0,		parenright]	};
   2225     key <AE11>	{ [	minus,	underscore]	};
   2226     key <AE12>	{ [	equal,       plus]	};
   2227 
   2228     key <AD01>	{ [	U02B0,		U02B1]	}; // [], []
   2229     key <AD02>	{ [	U00E6,		q]	}; // [], [q] found in Urdu
   2230     key <AD03>	{ [	a,			U028B]	}; // [a], []
   2231     key <AD04>	{ [	i,			U026A]	}; // [i] []
   2232     key <AD05>	{ [	u,			U026F]	}; // [u] [] found in Tamil
   2233     key <AD06>	{ [	b,			Y]	}; // [b]
   2234     key <AD07>	{ [	h,			U014B]	}; // [h], []
   2235     key <AD08>	{ [	g,			U0263]	}; // [g], [] found in Urdu
   2236     key <AD09>	{ [	d,			U00F0]	}; // [d], [] found in Malayalam
   2237     key <AD10>	{ [	U02A4,		U02A3]	}; // [], [] found in Marathi
   2238     key <AD11>	{ [	U0256,		U027D]	}; // [], []
   2239     key <AD12>	{ [	bracketleft,	bracketright]	}; // "[", "]" needed for denoting phonetic symbols
   2240 
   2241     key <AC01>	{ [	o,		U0254]	}; // [o], [] found in Bangla
   2242     key <AC02>	{ [	e,		U025B]	}; // [e], []
   2243     key <AC03>	{ [	U0259,	U0361]	}; // [], [     ]
   2244     key <AC04>	{ [	i,		U026A]	}; // [i], []
   2245     key <AC05>	{ [	u,		U026F]	}; // [u], []
   2246     key <AC06>	{ [	p,		f]	}; // [p], [f]
   2247     key <AC07>	{ [	U027E,	r]	}; // [], [r]
   2248     key <AC08>	{ [	k,		x]	}; // [k], [x] found in Urdu
   2249     key <AC09>	{ [	t,		U03B8]	}; // [t], []
   2250     key <AC10>	{ [	U02A7,	U02A6]	}; // [], [] found in Marathi
   2251     key <AC11>	{ [	U0288,	quotedbl]	}; // []
   2252     key <TLDE>	{ [	grave,	asciitilde]	};
   2253 
   2254     key <BKSL>	{ [	backslash,	bar]	};
   2255     key <AB01>	{ [	U032A,		U0303]	}; // [ ], [ ] Dental mark, nasalisation mark
   2256     key <AB02>	{ [	U0306,		X]	}; // [  ] Short sound
   2257     key <AB03>	{ [	m,			U0273]	}; // [m], []
   2258     key <AB04>	{ [	n,			v]	}; // [n], [v]
   2259     key <AB05>	{ [	w,			z] }; // [w], [z]
   2260     key <AB06>	{ [	l,			U026D]	}; // [l], []
   2261     key <AB07>	{ [	s,			U0283]	}; // [s], []
   2262     key <AB08>	{ [	comma,		U0282]	}; // []
   2263     key <AB09>	{ [	period,		U02D0]	}; // [] Long sound
   2264     key <AB10>	{ [	j,			slash] }; // [j]
   2265 };
   2266 
   2267 // This layout is developed by Niranjan Tambe in July 2019
   2268 // for typing Marathi language with some necessary symbols.
   2269 // Contact - niranjanvikastambe (a] gmail.com
   2270 
   2271 xkb_symbols "marathi" {
   2272 	name[Group1]="Marathi (enhanced InScript)";
   2273 	key <TLDE> { [ U0962, U090C,   grave, asciitilde  ] }; // Added   & 
   2274 	key <AE01> { [ U0967, exclam,       1, exclam      ] }; // Added exclamation mark
   2275 	key <AE02> { [ U0968, U0945,       2, at          ] }; // Added 
   2276 	key <AE03> { [ U0969, U093D,  3, numbersign  ] }; // Added 
   2277 	key <AE04> { [ U096a, U20B9,      4		  ] }; // Added 
   2278 	key <AE05> { [ U096b, percent,     5, percent     ] };
   2279 	key <AE06> { [ U096c, asciicircum, 6, asciicircum ] };
   2280 	key <AE07> { [ U096d, U0970,   7, ampersand   ] }; // Added 
   2281 	key <AE08> { [ U096e, U0950,    8, asterisk    ] };
   2282 	key <AE09> { [ U096f, parenleft,   9, parenleft   ] };
   2283 	key <AE10> { [ U0966, parenright,  0, parenright  ] };
   2284 	key <AE11> { [ minus, U0903, minus, underscore    ] };
   2285 	key <AE12> { [ U0943, U090b, U0944, U0960 ] };
   2286 
   2287 	key <AD01> { [ U094c, U0914 ] };
   2288 	key <AD02> { [ U0948, U0910 ] };
   2289 	key <AD03> { [ U093e, U0906 ] };
   2290 	key <AD04> { [ U0940, U0908, U0963, U0961 ] };
   2291 	key <AD05> { [ U0942, U090a ] };
   2292 	key <AD06> { [ U092c, U092d ] };
   2293 	key <AD07> { [ U0939, U0919 ] };
   2294 	key <AD08> { [ U0917, U0918, U095a ] };
   2295 	key <AD09> { [ U0926, U0927 ] };
   2296 	key <AD10> { [ U091c, U091d, U095b ] };
   2297 	key <AD11> { [ U0921, U0922, U095c, U095d ] };
   2298 	key <AD12> { [ U093c, U091e ] };
   2299 	key <BKSL> { [ U0949, U0911, backslash, bar ] };
   2300 
   2301 	key <AC01> { [ U094b, U0913 ] };
   2302 	key <AC02> { [ U0947, U090f ] };
   2303 	key <AC03> { [ U094d, U0905 ] };
   2304 	key <AC04> { [ U093f, U0907, U0962, U090c ] };
   2305 	key <AC05> { [ U0941, U0909 ] };
   2306 	key <AC06> { [ U092a, U092b, NoSymbol, U095e ] };
   2307 	key <AC07> { [ U0930, U0931 ] };
   2308 	key <AC08> { [ U0915, U0916, U0958, U0959 ] };
   2309 	key <AC09> { [ U0924, U0925 ] };
   2310 	key <AC10> { [ U091a, U091b, U0952 ] };
   2311 	key <AC11> { [ U091f, U0920, NoSymbol, U0951 ] };
   2312 
   2313 	key <AB01> { [ apostrophe, U0972, U0953 ] }; // Added apostrophe & 
   2314 	key <AB02> { [ U0902, U0901, NoSymbol, U0950 ] };
   2315 	key <AB03> { [ U092e, U0923, U0954 ] };
   2316 	key <AB04> { [ U0928, quotedbl ] }; // Added "
   2317 	key <AB05> { [ U0935, UA8FB ] }; // Added headstroke
   2318 	key <AB06> { [ U0932, U0933 ] };
   2319 	key <AB07> { [ U0938, U0936 ] };
   2320 	key <AB08> { [ comma, U0937, U0970 ] };
   2321 	key <AB09> { [ period, U0964, U0965, U093d ] };
   2322 	key <AB10> { [ U092f, question, slash, question ] };
   2323 };
   2324 
   2325 
   2326 // EXTRAS:
   2327 
   2328 // Vedic and Miscellaneous symbols
   2329 // This layout covers the 'Extended Devanagari' and 'Vedic Extensions' Unicode blocks.
   2330 // This is helpful for including all the required symbols when typing complex texts
   2331 // such as those from Samaveda and Yajurveda.
   2332 // This layout only includes signs and symbols. Text needs to be typed seperately.
   2333 // Created by : Abhishek Deshpande     <abhishekdeshpande128 (a] gmail.com>
   2334 // Date : 27th October, 2020
   2335 partial alphanumeric_keys
   2336 xkb_symbols "san-misc" {
   2337      name[Group1] = "Sanskrit symbols";
   2338      key.type[group1]="FOUR_LEVEL";
   2339 
   2340     // Digits row
   2341     key <TLDE>  { [   U1CD0,  UA8FA  ] };
   2342     key <AE01>  { [   UA8E1,  U1CD1  ] };
   2343     key <AE02>  { [   UA8E2,  UA8F2  ] };
   2344     key <AE03>  { [   UA8E3,  UA8F3  ] };
   2345     key <AE04>  { [   UA8E4,  UA8F4  ] };
   2346     key <AE05>  { [   UA8E5,  UA8F5  ] };
   2347     key <AE06>  { [   UA8E6,  UA8F6  ] };
   2348     key <AE07>  { [   UA8E7,  UA8F7  ] };
   2349     key <AE08>  { [   UA8E8,  UA8F8  ] };
   2350     key <AE09>  { [   UA8E9,  UA8F9  ] };
   2351     key <AE10>  { [   UA8E0,  UA8FC  ] };
   2352     key <AE11>  { [   UA8FB,  U1CD2  ] };
   2353     key <AE12>  { [   U1CF2,  U1CF3  ] };
   2354     key <BKSL>  { [   U1CF8,  U1CF9  ] };
   2355 
   2356     // Q row
   2357     key <AD01>  { [   U1CD4,  U1CD5  ] };
   2358     key <AD02>  { [   U1CD6,  U1CD7  ] };
   2359     key <AD03>  { [   U1CD8,  U1CD9  ] };
   2360     key <AD04>  { [   UA8EF  ] };
   2361     key <AD05>  { [   U1CDA,  U1CDB  ] };
   2362     key <AD06>  { [   UA8FE,  UA8FF  ] };
   2363     key <AD07>  { [   UA8EB  ] };
   2364     key <AD08>  { [   U1CDC,  U1CDD  ] };
   2365     key <AD09>  { [   U1CDE,  U1CDF  ] };
   2366     key <AD10>  { [   UA8EE  ] };
   2367     key <AD11>  { [   U1CE0  ] };
   2368     key <AD12>  { [   U1CE1  ] };
   2369 
   2370     // A row
   2371     key <AC01>  { [   UA8EA  ] };
   2372     key <AC02>  { [   UA8F1  ] };
   2373     key <AC03>  { [   U1CE2  ] };
   2374     key <AC04>  { [   U1CE3,  U1CE4  ] };
   2375     key <AC05>  { [   U1CE5,  U1CE6  ] };
   2376     key <AC06>  { [   U1CE7,  U1CE8  ] };
   2377     key <AC07>  { [   U1CE9,  U1CEA  ] };
   2378     key <AC08>  { [   UA8EC  ] };
   2379     key <AC09>  { [   U1CEB,  U1CEC  ] };
   2380     key <AC10>  { [   U1CEE,  U1CEF  ] };
   2381     key <AC11>  { [   U1CF0,  U1CF1  ] };
   2382 
   2383     // Z row
   2384     key <AB01>  { [   U1CED  ] };
   2385     key <AB02>  { [   U1CF4  ] };
   2386     key <AB03>  { [   U1CF5  ] };
   2387     key <AB04>  { [   UA8F0  ] };
   2388     key <AB05>  { [   U1CF6  ] };
   2389     key <AB06>  { [   UA8ED  ] };
   2390     key <AB07>  { [   U0950,  UA8FD  ] };
   2391     key <AB08>  { [   U1CF7,  U093D  ] };
   2392     key <AB09>  { [   U1CFA,  U2638  ] };
   2393     key <AB10>  { [   U0FD5,  U2740  ] };
   2394 
   2395     include "rupeesign(4)"
   2396     include "level3(ralt_switch)"
   2397 };
   2398 
   2399 // Modi is an ancient Indian script that is used to write texts in Marathi, Hindi and
   2400 // Sanskrit. It is most commonly used to write the Marathi language in Maharashtra.
   2401 // This layout is based on the Marathi KaGaPa phonetic layout, just the characters
   2402 // that are not applicable in Modi are ommited.
   2403 //
   2404 // Created by : Abhishek Deshpande     <abhishekdeshpande128 (a] gmail.com>
   2405 // Date : 9th February, 2020
   2406 partial alphanumeric_keys
   2407 xkb_symbols "modi-kagapa" {
   2408     name[Group1] = "Modi (KaGaPa phonetic)";
   2409     key.type[group1]="FOUR_LEVEL";
   2410 
   2411     key <TLDE>  { [   grave,        asciitilde,   U201C           ] };  // U201C: left double quotation mark
   2412     key <AE01>  { [   1,            exclam,       U11651          ] };
   2413     key <AE02>  { [   2,            at,           U11652,  U20A8  ] };  // U20A8: generic rupee sign (Rs)
   2414     key <AE03>  { [   3,            numbersign,   U11653          ] };
   2415     key <AE04>  { [   4,            dollar,       U11654,  U20B9  ] };  // U20B9: new Indian rupee sign
   2416     key <AE05>  { [   5,            percent,      U11655          ] };
   2417     key <AE06>  { [   6,            asciicircum,  U11656,  U200C  ] };  // ZWNJ
   2418     key <AE07>  { [   7,            ampersand,    U11657,  U200D  ] };  // ZWJ
   2419     key <AE08>  { [   8,            asterisk,     U11658          ] };
   2420     key <AE09>  { [   9,            parenleft,    U11659          ] };
   2421     key <AE10>  { [   0,            parenright,   U11650,  U11643 ] };  // U11643: Modi abbreviation sign
   2422     key <AE11>  { [   minus,        underscore                    ] };
   2423     key <AE12>  { [   equal,        plus                          ] };
   2424     key <BKSL>  { [   backslash,    bar,          U11641,  U11642 ] };  // \: Modi danda, Modi double danda
   2425 
   2426     key <AD01>  { [   U11618,         U11619                      ] };  // Q: retroflex Modi letter Ta, Tha
   2427     key <AD02>  { [   U1161A,         U1161B                      ] };  // W: retroflex Modi letter Da, Dha
   2428     key <AD03>  { [   U11639,         U1160A,     U1160B          ] };  // E: Modi vovel sign E, Modi letter E, letter ai
   2429     key <AD04>  { [   U11628,         U11635,     U11606          ] };  // R: Modi ra, Modi vowel sign vocalic R, vocalic letter R
   2430     key <AD05>  { [   U1161D,         U1161E                      ] };  // T: dental Modi letter ta, tha
   2431     key <AD06>  { [   U11627,         U1163A                      ] };  // Y: Modi letter ya, Modi vowel sign ai
   2432     key <AD07>  { [   U11633,         U11634,     U11604,  U11605 ] };  // U: Modi vowel sign u, uu, Modi letter u, uu
   2433     key <AD08>  { [   U11631,         U11632,     U11602,  U11603 ] };  // I: Modi vowel sign i, ii, Modi letter i, ii
   2434     key <AD09>  { [   U1163B,         U1160C                      ] };  // O: Modi vowel sign o, Modi letter o
   2435     key <AD10>  { [   U11622,         U11623                      ] };  // P: Modi letter pa, pha
   2436     key <AD11>  { [   bracketleft,    braceleft                   ] };
   2437     key <AD12>  { [   bracketright,   braceright                  ] };
   2438 
   2439     key <AC01>  { [   U11630,       U11601,     U11600           ] };  // A: Modi vowel sign aa, Modi letter aa, Modi letter a
   2440     key <AC02>  { [   U1162D,       U1162B                       ] };  // S: Modi letter sa, sha
   2441     key <AC03>  { [   U1161F,       U11620                       ] };  // D: dental Modi letter da, dha
   2442     key <AC04>  { [   U1163F,       U11636,     U11607           ] };  // F: Modi sign virama, Modi vowel sign vocalic RR, letter vocalic RR
   2443     key <AC05>  { [   U11610,       U11611                       ] };  // G: Modi letter ga, gha
   2444     key <AC06>  { [   U1162E,       U1163E                       ] };  // H: Modi letter ha, Modi visarga
   2445     key <AC07>  { [   U11615,       U11616                       ] };  // J: Modi letter ja, jha
   2446     key <AC08>  { [   U1160E,       U1160F                       ] };  // K: Modi letter ka, kha
   2447     key <AC09>  { [   U11629,       U1162F,     U11637,  U11608  ] };  // L: Modi letter la, lla, Modi vowel sign vocalic L, letter vocalic L
   2448     key <AC10>  { [   semicolon,    colon                        ] };
   2449     key <AC11>  { [   apostrophe,   quotedbl                     ] };
   2450 
   2451     key <AB01>  { [   U11617,    U11612                     ] };  // Z: Modi letter nya, nga
   2452     key <AB02>  { [   U1162C,    U11609,   U11638           ] };  // X: Modi letter ssa, Modi letter vocalic ll, Modi vowel sign vocalic ll
   2453     key <AB03>  { [   U11613,    U11614                     ] };  // C: Modi letter ca, cha
   2454     key <AB04>  { [   U1162A,    U1163C,   U1160D           ] };  // V: Modi letter va, Modi vowel sign au, Modi letter au
   2455     key <AB05>  { [   U11624,    U11625                     ] };  // B: Modi letter ba, bha
   2456     key <AB06>  { [   U11621,    U1161C                     ] };  // N: Modi letter na, nna
   2457     key <AB07>  { [   U11626,    U1163D,   U093D,    U0950  ] };  // M: Modi ma, Modi anusvara, avagraha, Devanagari OM (Avagraha & OM commonly occur in Marathi texts, so they are mapped here for convenience.)
   2458     key <AB08>  { [   comma,     less,     U11640,   U11644 ] };  // ,: Modi chandrabindu, Modi sign huva
   2459     key <AB09>  { [   period,    greater                    ] };
   2460     key <AB10>  { [   slash,     question                   ] };
   2461 
   2462     include "level3(ralt_switch)"
   2463 };
   2464 
   2465 // Navees, a phonetic keyboard layout for Urdu
   2466 // https://saadatm.github.io/navees
   2467 partial alphanumeric_keys
   2468 xkb_symbols "urd-navees" {
   2469     include "pk(urd-navees)"
   2470     name[Group1]= "Urdu (Navees)";
   2471 };
   2472