// based on
// russian standard keyboard
// AEN <aen@logic.ru>
// 2001/12/23 by Leon Kanter <leon@blackcatlinux.com>
// 2005/12/09 Valery Inozemtsev <shrek@altlinux.ru>

// Windows layout
partial default alphanumeric_keys
xkb_symbols "winkeys" {
    include "ru(common)"

    name[Group1]= "Russian";

    key <AE03> {        [               3,      numerosign      ]       };
    key <AE04> {        [               4,       semicolon      ]       };
    key <AE05> {        [               5,         percent      ]       };
    key <AE06> {        [               6,           colon      ]       };
    key <AE07> {        [               7,        question      ]       };
    key <AE08> {        [               8,        asterisk      ]       };

    key <AB10> {        [          period,           comma      ]       };
    key <BKSL> {        [       backslash,           slash      ]       };
};

partial hidden alphanumeric_keys 
xkb_symbols "common" {

    key	<AE01> {	[		1,	    exclam 	]	};
    key	<AE02> {	[		2,        quotedbl	]	};
    key	<AE03> {	[		3,      numbersign	]	};
    key	<AE04> {	[		4,        asterisk	]	};
    key	<AE05> {	[		5,	     colon	]	};
    key	<AE06> {	[		6,	     comma	]	};
    key	<AE07> {	[		7,	    period	]	};
    key	<AE08> {	[		8,	 semicolon	]	};
    key	<AE09> {	[		9,	 parenleft	]	};
    key	<AE10> {	[		0,	parenright	]	};
    key	<AE11> {	[	    minus,	underscore	]	};
    key	<AE12> {	[	    equal,	      plus	]	};
    key	<BKSL> {	[	backslash,             bar	]	};
    key	<AB10> {	[	    slash,	  question	]	};
    key <LSGT> {        [           slash,             bar      ]       };

    key	<TLDE> {	[     Cyrillic_io,     Cyrillic_IO	]	};
    key	<AD01> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};
    key	<AD02> {	[    Cyrillic_tse,    Cyrillic_TSE	]	};
    key	<AD03> {	[      Cyrillic_u,	Cyrillic_U	]	};
    key	<AD04> {	[     Cyrillic_ka,     Cyrillic_KA	]	};
    key	<AD05> {	[     Cyrillic_ie,     Cyrillic_IE	]	};
    key	<AD06> {	[     Cyrillic_en,     Cyrillic_EN	]	};
    key	<AD07> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};
    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};
    key	<AD09> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};
    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE	]	};
    key	<AD11> {	[     Cyrillic_ha,     Cyrillic_HA	]	};
    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN	]	};
    key	<AC01> {	[     Cyrillic_ef,     Cyrillic_EF	]	};
    key	<AC02> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};
    key	<AC03> {	[     Cyrillic_ve,     Cyrillic_VE	]	};
    key	<AC04> {	[      Cyrillic_a,	Cyrillic_A	]	};
    key	<AC05> {	[     Cyrillic_pe,     Cyrillic_PE	]	};
    key	<AC06> {	[     Cyrillic_er,     Cyrillic_ER	]	};
    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O	]	};
    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL	]	};
    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE	]	};
    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};
    key	<AC11> {	[      Cyrillic_e,	Cyrillic_E	]	};
    key	<AB01> {	[     Cyrillic_ya,     Cyrillic_YA	]	};
    key	<AB02> {	[    Cyrillic_che,    Cyrillic_CHE	]	};
    key	<AB03> {	[     Cyrillic_es,     Cyrillic_ES	]	};
    key	<AB04> {	[     Cyrillic_em,     Cyrillic_EM	]	};
    key	<AB05> {	[      Cyrillic_i,	Cyrillic_I	]	};
    key	<AB06> {	[     Cyrillic_te,     Cyrillic_TE	]	};
    key	<AB07> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};
    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE	]	};
    key	<AB09> {	[     Cyrillic_yu,     Cyrillic_YU	]	};

    key.type[group1]="TWO_LEVEL";

    include "kpdl(comma)"
};

partial alphanumeric_keys
xkb_symbols "legacy" {
    include "ru(common)"

    name[Group1]= "Russian (legacy)";
};

partial alphanumeric_keys
xkb_symbols "olpc" {

    include "ru(common)"

    key        <TLDE> {        [          0x01000451,          0x01000401, grave       ]       }; // Ñ‘, Ð
    key <AE03> {        [               3,      numbersign, 0x01002116      ]       }; // â„–
    key <AE04> {        [               4,          dollar, semicolon   ]       };
    key <AE06> {        [               6,      asciicircum, colon      ]       };
    key <AE07> {        [               7,          ampersand           ]       };
    key <AE09> {        [               9,          parenleft, acute    ]       };
    key <AC12> {        [       backslash,          bar, slash          ]       };

    include "group(olpc)"
};

partial alphanumeric_keys
xkb_symbols "typewriter" {
    include "ru(common)"
    name[Group1]= "Russian (typewriter)";
    key	<TLDE> {	[	      bar,	      plus	] 	};
    key	<AE01> {	[      numerosign,		 1 	]	};
    key	<AE02> {	[           minus,		 2	]	};
    key	<AE03> {	[	    slash,		 3	]	};
    key	<AE04> {	[	 quotedbl,		 4	]	};
    key	<AE05> {	[	    colon,		 5	]	};
    key	<AE06> {	[	    comma,		 6	]	};
    key	<AE07> {	[	   period,		 7	]	};
    key	<AE08> {	[      underscore,		 8	]	};
    key	<AE09> {	[	 question,		 9	]	};
    key	<AE10> {	[	  percent,		 0	]	};
    key	<AE11> {	[	   exclam,	     equal	]	};
    key	<AE12> {	[       semicolon,	 backslash	]	};

    key	<BKSL> {	[	parenright,	 parenleft	]	};

    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN	]	};
    key	<AB10> {	[     Cyrillic_io,     Cyrillic_IO	]	};
};

partial alphanumeric_keys
xkb_symbols "typewriter-legacy" {
    include "ru(common)"
    name[Group1]= "Russian (typewriter, legacy)";
    key	<TLDE> {	[      apostrophe,	  quotedbl	] 	};
    key	<AE01> {	[	   exclam,		 1 	]	};
    key	<AE02> {	[      numerosign,		 2	]	};
    key	<AE03> {	[	    slash,		 3	]	};
    key	<AE04> {	[	semicolon,		 4	]	};
    key	<AE05> {	[	    colon,		 5	]	};
    key	<AE06> {	[	    comma,		 6	]	};
    key	<AE07> {	[	   period,		 7	]	};
    key	<AE08> {	[      underscore,		 8	]	};
    key	<AE09> {	[	 question,		 9	]	};
    key	<AE10> {	[	  percent,		 0	]	};
    key	<BKSL> {	[	parenleft,	parenright	]	};

    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN	]	};
    key	<AB10> {	[     Cyrillic_io,     Cyrillic_IO	]	};
};

partial alphanumeric_keys
xkb_symbols "phonetic" {

    name[Group1]= "Russian (phonetic)";

    key	<AE01> {	[		1,	    exclam 	]	};
    key	<AE02> {	[		2,        	at	]	};
    key	<AE03> {	[		3,     Cyrillic_io 	]	};
    key	<AE04> {	[		4,     Cyrillic_IO	]	};
    key	<AE05> {	[		5, Cyrillic_hardsign   	]	};
    key	<AE06> {	[		6, Cyrillic_HARDSIGN	]	};
    key	<AE07> {	[		7,	 ampersand	]	};
    key	<AE08> {	[		8,        asterisk	]	};
    key	<AE09> {	[		9,	 parenleft	]	};
    key	<AE10> {	[		0,	parenright	]	};
    key <AE11> {	[	    minus,	underscore	]	};

    key	<AB09> {	[	   period,	   greater	]	};
    key	<AB10> {	[	    slash,	  question	]	};
    key	<AB08> {	[	    comma,	      less	]	};
    key	<AC10> {	[	semicolon,	     colon	]	};
    key	<AC11> {	[      apostrophe,	  quotedbl	]	};
    key	<LSGT> {	[	      bar,	 brokenbar	]	};

    key	<TLDE> {	[     Cyrillic_yu,     Cyrillic_YU	]	};
    key	<LatQ> {	[     Cyrillic_ya,     Cyrillic_YA	]	};
    key	<LatZ> {	[     Cyrillic_ze,     Cyrillic_ZE	]	};
    key	<LatS> {	[     Cyrillic_es,     Cyrillic_ES	]	};
    key	<LatA> {	[      Cyrillic_a,	Cyrillic_A	]	};
    key	<LatW> {	[     Cyrillic_ve,     Cyrillic_VE	]	};
    key	<LatC> {	[    Cyrillic_tse,    Cyrillic_TSE	]	};
    key	<LatX> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};
    key	<LatD> {	[     Cyrillic_de,     Cyrillic_DE	]	};
    key	<LatE> {	[     Cyrillic_ie,     Cyrillic_IE	]	};
    key	<LatV> {	[    Cyrillic_zhe,    Cyrillic_ZHE	]	};
    key	<LatF> {	[     Cyrillic_ef,     Cyrillic_EF	]	};
    key	<LatT> {	[     Cyrillic_te,     Cyrillic_TE	]	};
    key	<LatR> {	[     Cyrillic_er,     Cyrillic_ER	]	};
    key	<LatN> {	[     Cyrillic_en,     Cyrillic_EN	]	};
    key	<LatB> {	[     Cyrillic_be,     Cyrillic_BE	]	};
    key	<LatH> {	[     Cyrillic_ha,     Cyrillic_HA	]	};
    key	<LatG> {	[    Cyrillic_ghe,    Cyrillic_GHE	]	};
    key	<LatY> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};
    key	<LatM> {	[     Cyrillic_em,     Cyrillic_EM	]	};
    key	<LatJ> {	[ Cyrillic_shorti, Cyrillic_SHORTI	]	};
    key	<LatU> {	[      Cyrillic_u,	Cyrillic_U	]	};
    key	<LatK> {	[     Cyrillic_ka,     Cyrillic_KA	]	};
    key	<LatI> {	[      Cyrillic_i,	Cyrillic_I	]	};
    key	<LatO> {	[      Cyrillic_o,	Cyrillic_O	]	};
    key	<LatL> {	[     Cyrillic_el,     Cyrillic_EL	]	};
    key	<LatP> {	[     Cyrillic_pe,     Cyrillic_PE	]	};

    key	<AD11> {	[    Cyrillic_sha,    Cyrillic_SHA	]	};
    key	<AE12> {	[    Cyrillic_che,    Cyrillic_CHE	]	};
    key	<AD12> {	[  Cyrillic_shcha,  Cyrillic_SHCHA	]	};
    key	<BKSL> {	[      Cyrillic_e,	Cyrillic_E	]	};
};

partial alphanumeric_keys
xkb_symbols "phonetic_winkeys" {

    include "ru(phonetic)"
    name[Group1]= "Russian (phonetic WinKeys)";

    key	<LatX> {	[     Cyrillic_ha,     Cyrillic_HA	]	};
    key	<LatH> {	[     Cyrillic_che,     Cyrillic_CHE	]	};
    key	<AE12> {	[ Cyrillic_softsign, Cyrillic_softsign  ]	};

};

partial alphanumeric_keys
xkb_symbols "tt" {
    include "ru(winkeys)"
    name[Group1]= "Tatar";

    key.type[group1]="FOUR_LEVEL";

    key <TLDE> {       [      0x010004bb,      0x010004ba,
                             Cyrillic_io,     Cyrillic_IO      ]       };
    key        <AD02> {        [      0x010004e9,      0x010004e8,
                            Cyrillic_tse,    Cyrillic_TSE      ]       };
    key        <AD09> {        [      0x010004d9,      0x010004d8,
                          Cyrillic_shcha,  Cyrillic_SHCHA      ]       };
    key        <AD12> {        [      0x010004af,      0x010004ae,
                       Cyrillic_hardsign,Cyrillic_HARDSIGN     ]       };
    key        <AC10> {        [      0x010004a3,      0x010004a2,
                            Cyrillic_zhe,    Cyrillic_ZHE      ]       };
    key        <AB07> {        [      0x01000497,      0x01000496,
                       Cyrillic_softsign,Cyrillic_SOFTSIGN     ]       };

    include "level3(ralt_switch)"

};

partial alphanumeric_keys 
xkb_symbols "os_legacy" {
    include "ru(common)"

    name[Group1]= "Ossetian (legacy)";

    key	<TLDE> {	[      Cyrillic_e,      Cyrillic_E	]	};
    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O, Cyrillic_io, Cyrillic_IO	]	};
    key	<AC11> {	[      0x010004D5,      0x010004D4      ]	};
};

partial alphanumeric_keys 
xkb_symbols "os_winkeys" {
    include "ru(winkeys)"

    name[Group1]= "Ossetian (WinKeys)";

    key	<TLDE> {	[      Cyrillic_e,      Cyrillic_E	]	};
    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O, Cyrillic_io, Cyrillic_IO	]	};
    key	<AC11> {	[      0x010004D5,      0x010004D4      ]	};
};

partial alphanumeric_keys
xkb_symbols "cv" {
    include "ru(winkeys)"

    name[Group1]= "Chuvash";

    key.type[group1]="FOUR_LEVEL";

    key        <AD03> {        [      Cyrillic_u,	Cyrillic_U,
                            0x010004f3,    0x010004f2      ]       };
    key        <AD05> {        [      Cyrillic_ie,     Cyrillic_IE,
                       0x01000115,	0x01000114     ]       };
    key        <AC04> {        [      Cyrillic_a,	Cyrillic_A,
                          abreve,  Abreve      ]       };
    key        <AB03> {        [      Cyrillic_es,     Cyrillic_ES,
                            ccedilla,    Ccedilla      ]       };

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "udm" {
    include "ru(winkeys)"

    name[Group1]= "Udmurt";

    key.type[group1]="FOUR_LEVEL";

    key	<AE01> {	[	 question,	    exclam,    1,       1 	]	};
    key	<AE02> {	[	parenleft,        quotedbl,    2,       2	]	};
    key	<AE03> {	[      parenright,      numerosign,    3,       3	]	};
    key	<AE04> {	[	    colon,       semicolon,    4,       4	]	};
    key	<AE05> {	[	 asterisk,	   percent,    5,       5	]	};
    key	<AE06> {	[      0x010004dd,	0x010004dc,    6,       6	]	};
    key	<AE07> {	[      0x010004e7,	0x010004e6,    7,       7	]	};
    key	<AE08> {	[      0x010004f5,	0x010004f4,    8,       8	]	};
    key	<AE09> {	[      0x010004e5,	0x010004e4,    9,       9	]	};
    key	<AE10> {	[      0x010004df,	0x010004de,    0,       0	]	};

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "cv_latin" {
    include "us(alt-intl)"

    name[Group1]= "Chuvash (Latin)";

    key.type[group1]="FOUR_LEVEL";

    key        <AD01> {	[	  q,	Q,    0x01000161,       0x01000160 ] };
    key        <AD02> {	[	  w,	W,    udiaeresis,       Udiaeresis ] };
    key        <AD03> { [         e,	E,    0x01000115,	0x01000114 ] };
    key        <AD07> {	[	  u,	U,    udiaeresis,       Udiaeresis ] };
    key        <AD08> {	[	  i,	I,    0x0100012d,       0x0100012c ] };
    key        <AD09> {	[	  o,	O,    odiaeresis,       Odiaeresis ] };
    key        <AC01> { [	  a,    A,        abreve,           Abreve ] };
    key        <AC02> { [	  s,    S,      scedilla,         Scedilla ] };
    key        <AC05> { [	  g,    G,        gbreve,           Gbreve ] };
    key        <AC07> { [	  j,    J,    0x01000131,       0x01000130 ] };
    key        <AB03> { [         c,    C,      ccedilla,         Ccedilla ] };

    include "level3(ralt_switch)"

};

// Komi language layout
// based on
// russian standard keyboard
// Vlad Shakhov <lumpen.intellectual@gmail.com>
// Last Changes 2007/10/23 by Vlad Shakhov <lumpen.intellectual@gmail.com>

partial alphanumeric_keys 
xkb_symbols "kom" {

    include "ru(winkeys)"

    name[Group1]= "Komi";

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

// cyrilllic o with diaeresis 
    key	<AC07> { [ 	Cyrillic_o,		Cyrillic_O,		
			U04E7,  		U04E6		] };
    
// hard I as additional key for soft Cyrillic_I 
    key <AB05> { [      Cyrillic_i,		Cyrillic_I,
			Ukrainian_i,     	Ukrainian_I     ] };

    include "level3(ralt_switch)"
};

// Yakut language layout
// 2008/04/23 Yakov Aleksandrov <bertjickty@yandex.ru>
// 2008/04/23 Anatoliy Zhozhikov <jav@sitc.ru>
// 2008/04/23 Aleksandr Varlamov
partial alphanumeric_keys
xkb_symbols "sah" {

    include "ru(winkeys)"

    name[Group1]= "Yakut";

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";

    key <TLDE> { [	Cyrillic_io,		Cyrillic_IO,
    			U04EB,			U04EA			] };
    key <AD01> { [	Cyrillic_shorti,	Cyrillic_SHORTI,
			U048B,			U048A			] };
    key <AD03> { [	Cyrillic_u,		Cyrillic_U,
			Cyrillic_u_straight,	Cyrillic_U_straight	] };
    key <AD04> { [	Cyrillic_ka,		Cyrillic_KA,
    			U04C4,			U04C3			] };
    key <AD06> { [	Cyrillic_en,		Cyrillic_EN,
			U04A5,			U04A4			] };
    key <AD07> { [	Cyrillic_ghe,		Cyrillic_GHE,
			U0495,			U0494			] };
    key <AD10> { [	Cyrillic_ze,		Cyrillic_ZE,
    			U04E1,			U04E0			] };
    key <AD11> { [	Cyrillic_ha,		Cyrillic_HA,
			Cyrillic_shha,		Cyrillic_SHHA		] };
    key <AC07> { [	Cyrillic_o,		Cyrillic_O,
			Cyrillic_o_bar,		Cyrillic_O_bar		] };
    key <AC10> { [	Cyrillic_zhe,		Cyrillic_ZHE,
    			U0461,			U0460			] };
    key <AB02> { [	Cyrillic_che,		Cyrillic_CHE,
    			Cyrillic_u_macron,	Cyrillic_U_macron	] };
    key <AB04> { [	Cyrillic_em,		Cyrillic_EM,
    			U04C8,			U04C7			] };
    key <AB05> { [	Cyrillic_i,		Cyrillic_I,
			Cyrillic_i_macron,	Cyrillic_I_macron	] };

    include "level3(ralt_switch)"
};


//Kalmyk language layout
//based on the Kalmyk language layout: http://soft.oyrat.org/
//Nikolay Korneev <halmg@oyrat.org>
//Toli Miron <mirontoli@gmail.com>
        
partial alphanumeric_keys
xkb_symbols "xal" {
    include "ru(winkeys)"

    name[Group1]= "Kalmyk";

    key.type[group1]="FOUR_LEVEL";

    key <AE01> {        [                     question,                  exclam,               1      ]       };
    key <AE02> {        [      	            numerosign,                quotedbl,               2      ]       };
    key <AE03> {        [          Cyrillic_u_straight,     Cyrillic_U_straight,               3      ]       };
    key <AE04> {        [               Cyrillic_schwa,          Cyrillic_SCHWA,               4      ]       }; 
    key <AE05> {        [                     asterisk,                 percent,               5      ]       };
    key <AE06> {        [        Cyrillic_en_descender,   Cyrillic_EN_descender,               6      ]       };
    key <AE07> {        [               Cyrillic_o_bar,          Cyrillic_O_bar,               7      ]       }; 
    key <AE08> {        [                Cyrillic_shha,           Cyrillic_SHHA,               8      ]       }; 
    key <AE09> {        [       Cyrillic_zhe_descender,  Cyrillic_ZHE_descender,               9      ]       };
    key <AE10> {        [                    semicolon,                   colon,               0      ]       };

    key <TLDE> {        [                    parenleft,               parenright, Cyrillic_io, Cyrillic_IO    ]       };

    key <AD02> {        [                 Cyrillic_tse,             Cyrillic_TSE,         dollar      ]       };
    key <AD03> {        [                   Cyrillic_u,               Cyrillic_U,       EuroSign      ]       }; 
    key <AD04> {        [                  Cyrillic_ka,              Cyrillic_KA,     registered      ]       }; 
    key <AD05> {        [                  Cyrillic_ie,              Cyrillic_IE,      trademark      ]       }; 
    key <AD11> {        [                  Cyrillic_ha,              Cyrillic_HA,    bracketleft      ]       }; 
    key <AD12> {        [            Cyrillic_hardsign,        Cyrillic_HARDSIGN,   bracketright      ]       };
    key <AC11> {        [                   Cyrillic_e,               Cyrillic_E,     apostrophe      ]       };
    key <AB03> {        [                  Cyrillic_es,              Cyrillic_ES,      copyright      ]       }; 
    key <AB08> {        [                  Cyrillic_be,              Cyrillic_BE,           less      ]       };
    key <AB09> {        [                  Cyrillic_yu,              Cyrillic_YU,        greater      ]       };

    include "level3(ralt_switch)"
};

partial alphanumeric_keys
xkb_symbols "dos" {

    include "ru(common)"

    name[Group1]= "Russian (DOS)";

    key        <TLDE> {        [   parenright,  parenleft   ] };
    key        <AE04> {        [   4,           currency    ] };
    key        <AE09> {        [   9,           question    ] };
    key        <AE10> {        [   0,           percent     ] };

    key        <AB10> {        [   Cyrillic_io, Cyrillic_IO ] };
};

partial alphanumeric_keys
xkb_symbols "bak" {
    include "ru(winkeys)"

    name[Group1]= "Bashkirian";
    key.type[group1]="FOUR_LEVEL";

    key <TLDE> { [     0x010004d9,       0x010004d8,   Cyrillic_io,   Cyrillic_IO      ] };
    key <AE01> { [     exclam,           quotedbl,      1,       1       ] };
    key <AE02> { [     0x010004e9,       0x010004e8,    2,       2 ] };
    key <AE03> { [     0x010004a1,       0x010004a0,    3,       3 ] };
    key <AE04> { [     0x01000493,       0x01000492,    4,       4 ] };
    key <AE05> { [     0x010004ab,       0x010004aa,    5,       5 ] };
    key <AE06> { [     colon,            semicolon,     6,       6 ] };
    key <AE07> { [     0x01000499,       0x01000498,    7,       7 ] };
    key <AE08> { [     0x010004bb,       0x010004ba,    8,       8 ] };
    key <AE09> { [     question,         parenleft,     9,       9 ] };
    key <AE10> { [     numerosign,       parenright,    0,       0 ] };
    key <AE11> { [     minus,            percent,       minus,    underscore     ]};
    key <AE12> { [     0x010004af, 0x010004ae,    equal,  plus    ]};
    key <BKSL> { [     0x010004a3, 0x010004a2,    backslash,        slash     ]};	
	
    include "level3(ralt_switch)"
};

// Serbian charecters added as third level symbols to Russian keyboard layout.

partial alphanumeric_keys
xkb_symbols "srp" {
    include "ru(common)"
    include "level3(ralt_switch)"

    name[Group1]= "Serbian (Russia)";

    key <AE03> { [ 3, numerosign ] };
    key <AE04> { [ 4, semicolon ] };
    key <AE05> { [ 5, percent ] };
    key <AE06> { [ 6, colon ] };
    key <AE07> { [ 7, question ] };
    key <AE08> { [ 8, asterisk ] };
    key <AB10> { [ period, comma ] };
    key <BKSL> { [ backslash, slash ] };
    key	<AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, U458, U408 ] };
    key	<AD06> { [ Cyrillic_en, Cyrillic_EN, U45A, U40A ] };
    key	<AC08> { [ Cyrillic_el, Cyrillic_EL, U459, U409 ] };
    key	<AC09> { [ Cyrillic_de, Cyrillic_DE, U45F, U40F ] };
    key	<AC10> { [ Cyrillic_zhe, Cyrillic_ZHE, U452, U402 ] };
    key	<AB02> { [ Cyrillic_che, Cyrillic_CHE, U45B, U40B ] };
};

// Mari language layout
// based on Russian standard keyboard
// http://www.marlamuter.ru/
partial alphanumeric_keys
xkb_symbols "chm" {
    include "ru(common)"
    
    name[Group1]= "Mari";

    key.type[group1]="FOUR_LEVEL_ALPHABETIC";
    key <AC04> { [      Cyrillic_a,     Cyrillic_A,    U04D3,       U04D2     ] };
    key <AD03> { [      Cyrillic_u, Cyrillic_U,    U04F1,       U04F0     ] };
    key <AC02> { [      Cyrillic_ui,    Cyrillic_UI,   U04F9,       U04F8     ] };
    key <AD06> { [      Cyrillic_n, Cyrillic_N,    U04A5,       U04A4     ] };
    key <AC11> { [      Cyrillic_e, Cyrillic_E,    U04E9,       U04E8     ] };
    key <AC10> { [      Cyrillic_zh,    Cyrillic_ZH,   U04EB,       U04EA     ] };
    key <AC01> { [      Cyrillic_f, Cyrillic_F,     UF537,      UF536     ] };

    include "level3(ralt_switch)"
};

// EXTRAS:

// Church Slavonic language layout
// based on
// russian standard keyboard
// Aleksandr Andreev and Yuri Shardt 
// Last Changes 2010/08/01. Contact <aleksandr.andreev@gmail.com>

partial alphanumeric_keys
xkb_symbols "chu"
{
	    name[Group1]= "Church Slavonic";
	    key <TLDE> { [ U0457, U0407, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign
	    key <AE01> { [ U0461, U0460, U047D, U047C] }; // ѡ Ѡ ѽ Ѽ
	    key <AE02> { [ U0454, U0404, U0465, U0464] }; // є Є ѥ Ѥ
	    key <AE03> { [ U046F, U046E, U0469, U0468] }; // ѯ Ѯ ѩ Ѩ
	    key <AE04> { [ U0471, U0470, U046D, U046C] }; // ѱ Ѱ ѭ Ѭ
	    key <AE05> { [ U0473, U0472, UA657, UA656] }; // ѳ Ѳ iotified A
	    key <AE06> { [ U0475, U0474, U0477, U0476] }; // ѵ Ѵ ѷ Ѷ
	    key <AE07> { [ U047B, U047A, UA64D, UA64C] }; // ѻ Ѻ ꙍ Ꙍ
	    key <AE08> { [ U047F, U047E, U046B, U046A] }; // ѿ Ѿ ѫ Ѫ
	    key <AE09> { [ U0455, U0405, parenleft, U002A ] }; // ѕ Ѕ ( *
	    key <AE10> { [ Cyrillic_u,	Cyrillic_U, parenright, U0488 ] }; // у У ) NB: for diagraph Ouk, use Cyrillic_o + Cyrillic_u
	    key <AE11> { [ U0483, U0486, U0487, U005F] }; // а҃ а҆ а҇, _ (titlo, psili, pokrytie, underscore)
	    key <AE12> { [ U0301, U0300, U0484, UA67E] }; //  а̀ а́ а҄ ꙾ (oxia, varia, kamora, kavyka)
	    key	<AD01> {	[ Cyrillic_shorti, Cyrillic_SHORTI, U0456	]	};
	    key	<AD02> {	[    Cyrillic_tse,    Cyrillic_TSE, U2DF0	]	};
	    key	<AD03> {	[   UA64B,  UA64A, U2DF9  	]	}; // Cyrillic monograph Uk (not U)!
	    key	<AD04> {	[     Cyrillic_ka,     Cyrillic_KA, U2DE6	]	};
	    key	<AD05> {	[     Cyrillic_ie,     Cyrillic_IE, U2DF7	]	};
	    key	<AD06> {	[     Cyrillic_en,     Cyrillic_EN, U2DE9	]	};
	    key	<AD07> {	[    Cyrillic_ghe,    Cyrillic_GHE, U2DE2	]	};
	    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA, U2DF2	]	};
	    key	<AD09> {	[  Cyrillic_shcha,  Cyrillic_SHCHA, U2DF3	]	};
	    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE, U2DE5	]	};
	    key	<AD11> {	[     Cyrillic_ha,     Cyrillic_HA, U2DEF	]	};
	    key	<AD12> {	[Cyrillic_hardsign,Cyrillic_HARDSIGN, UA67D	]	}; // Payerok
	    key <BKSL> { [backslash, slash, colon, question] }; // \ / : ? (note, for Slavonic question use semicolon
	    key	<AC01> {	[     Cyrillic_ef,     Cyrillic_EF	]	};
	    key	<AC02> {	[   Cyrillic_yeru,   Cyrillic_YERU	]	};
	    key	<AC03> {	[     Cyrillic_ve,     Cyrillic_VE, U2DE1	]	};
	    key	<AC04> {	[      Cyrillic_a,	Cyrillic_A, U2DF6	]	};
	    key	<AC05> {	[     Cyrillic_pe,     Cyrillic_PE, U2DEB	]	};
	    key	<AC06> {	[     Cyrillic_er,     Cyrillic_ER, U2DEC	]	};
	    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O, U2DEA	]	};
	    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL, U2DE7	]	};
	    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE, U2DE3	]	};
	    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE, U2DE4	]	};
	    key	<AC11> {	[     U0463,	U0462, U2DFA	]	}; // Yat
	    key	<AB01> {	[    U0467, U0466, U2DFD 	]	}; // Small Yus
	    key	<AB02> {	[    Cyrillic_che,    Cyrillic_CHE, U2DF1	]	};
	    key	<AB03> {	[     Cyrillic_es,     Cyrillic_ES, U2DED	]	};
	    key	<AB04> {	[     Cyrillic_em,     Cyrillic_EM, U2DE8	]	};
	    key	<AB05> {	[      Cyrillic_i,	Cyrillic_I	]	};
	    key	<AB06> {	[     Cyrillic_te,     Cyrillic_TE, U2DEE	]	};
	    key	<AB07> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN	]	};
	    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE, U2DE0	]	};
	    key	<AB09> {	[     Cyrillic_yu,     Cyrillic_YU, U2DFB	]	};
	    key <AB10> {        [          period,    comma, semicolon, exclam      ]       };
};


// RUU (Russian-Ukrainian United keyboard layout).
// Modified Russian standart keyboard with third level contains Ukrainian
// and Belorusian alphabetic letters and commonly used Unicode symbols.
// Description http://wiki.opennet.ru/RUU [russian]
// Vasyĺ V. Vercynśkyj <fuckel@ukr.net>
// Last Changes 2011/05/11
//
// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
// │ ' ~ │ ! ≈ │ " ∞ │ № ₴ │ ; € │ % ‰ │ : ≤ │ ? ≥ │ * × │ ( { │ ) } │ _ – │ + ± ┃ ⌫       ┃
// │ ’  ́ │ 1 ÷ │ 2 ¤ │ 3 § │ 4 $ │ 5 ° │ 6 < │ 7 > │ 8 • │ 9 [ │ 0 ] │ - — │ = ≠ ┃Backspace┃
// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
// ┃       ┃ Й   │ Ц   │ У Ў │ К   │ Е Ё │ Н   │ Г Ґ │ Ш   │ Щ   │ З   │ Х   │ Ъ Ї ┃ Enter ┃
// ┃ Tab ↹ ┃ й   │ ц   │ у ў │ к ® │ е ё │ н   │ г ґ │ ш   │ щ   │ з   │ х   │ ъ ї ┃   ⏎   ┃
// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
// ┃ Caps   ┃ Ф   │ Ы І │ В   │ А   │ П   │ Р   │ О   │ Л   │ Д   │ Ж   │ Э Є │ | ¦ ┃      ┃
// ┃ Lock ⇬ ┃ ф   │ ы і │ в   │ а   │ п   │ р   │ о   │ л   │ д   │ ж   │ э є │ / \ ┃      ┃
// ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫
// ┃          ┃ Я   │ Ч   │ С   │ М   │ И   │ Т   │ Ь   │ Б „ │ Ю “ │ , … ┃                ┃
// ┃  Shift ⇧ ┃ я   │ ч   │ с © │ м   │ и   │ т ™ │ ь µ │ б « │ ю » │ . / ┃     Shift ⇧    ┃
// ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛
// ┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
// ┃ Ctrl  ┃ Meta  ┃  Alt  ┃                Space              ┃AltGr ⇮┃ Menu  ┃ Ctrl  ┃
// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛



partial alphanumeric_keys
xkb_symbols "ruu" {
    include "ru(common)"

    name[Group1]= "Russian (with Ukrainian-Belorussian layout)";

    key <TLDE> {    [	U2019,		apostrophe,	U0301,		asciitilde	]	};	// Apostrophe and Stress symbol
    key <AE01> {    [	1,		exclam,		U00F7,		U2248		]	};	// Division Sign and Almost Equal To
    key <AE02> {    [	2,		quotedbl,	currency,	infinity	]	};
    key <AE03> {    [	3,		numerosign,	U00A7,		U20B4		]	};	// Paragraph and Hryvnia sign
    key <AE04> {    [	4,		semicolon,	dollar,		EuroSign	]	};
    key <AE05> {    [	5,		percent,	degree,		U2030		]	};	// Per Mille Sign
    key <AE06> {    [	6,		colon,		less,		U2264		]	};	// Less-Than Or Equal To
    key <AE07> {    [	7,		question,	greater,	U2265		]	};	// Greater-Than Or Equal To
    key <AE08> {    [	8,		asterisk,	enfilledcircbullet, U00D7	]	};	// Multiplication Sign
    key <AE09> {    [	9,		parenleft,	bracketleft,	braceleft	]	};
    key <AE10> {    [	0,		parenright,	bracketright,	braceright	]	};
    key <AE11> {    [	minus,		underscore,	emdash,		endash		]	};
    key <AE12> {    [	equal,		plus,		notequal,	plusminus	]	};
    key <AD03> {    [	Cyrillic_u,	Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ]	};
    key <AD04> {    [	Cyrillic_ka,	Cyrillic_KA,	registered			]	};	// Registered tm
    key <AD05> {    [	Cyrillic_ie,	Cyrillic_IE,	Cyrillic_io,	Cyrillic_IO	]	};
    key <AD07> {    [Cyrillic_ge, Cyrillic_GE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] };
    key <AD10> {    [	Cyrillic_ze,	Cyrillic_ZE,	U00B6				]	};	// Pilcrow Sign
    key <AD12> {    [Cyrillic_hardsign,	Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI	]	};
    key <AC02> {    [	Cyrillic_yeru,	Cyrillic_YERU,	Ukrainian_i,  Ukrainian_I	]	};
    key <AC11> {    [	Cyrillic_e,	Cyrillic_E,	Ukrainian_ie,Ukrainian_IE	]	};
    key <BKSL> {    [	slash,		bar,		backslash,	U00A6		]	};	// Broken Bar
    key <AB03> {    [	Cyrillic_es,	Cyrillic_ES,	copyright			]	};
    key <AB06> {    [	Cyrillic_te,	Cyrillic_TE,	trademark			]	};
    key <AB07> {    [	Cyrillic_softsign, Cyrillic_SOFTSIGN, U00B5			]	};	// Micro Sign
    key <AB08> {    [	Cyrillic_be,	Cyrillic_BE,	guillemotleft,	doublelowquotemark ]	};
    key <AB09> {    [	Cyrillic_yu,	Cyrillic_YU,	guillemotright,	leftdoublequotemark ]	};
    key <AB10> {    [	period,		comma,		slash,		ellipsis	]	};

    include "level3(ralt_switch)"
};
