//
// US International/Belarusian/Russian keyboard layout
// Alexander Mikhailian <mikhailian@altern.org>
//

partial default alphanumeric_keys
xkb_symbols "basic" {

    // Describes the differences between a very simple en_US
    // keyboard and a very simple Belarusian keybaord

    name[Group1]= "US International";
    name[Group2]= "Belarusian";
    name[Group3]= "Russian";

    key <TLDE>  { [     dead_grave,       dead_tilde        ],
                  [     Cyrillic_io,      Cyrillic_IO       ],
                  [     Cyrillic_io,      Cyrillic_IO       ] };
    key <LSGT> {  [     less,             greater           ],
                  [     bar,              brokenbar         ],
                  [     bar,              brokenbar         ] };
    key <AD01> {  [     q,                Q                 ],
                  [     Cyrillic_shorti,  Cyrillic_SHORTI   ],
                  [     Cyrillic_shorti,  Cyrillic_SHORTI   ] };
    key <AE01> {  [     1,                exclam            ],
                  [     1,                exclam            ],
                  [     1,                exclam            ] };
    key <AB01> {  [     z,                Z                 ],
                  [     Cyrillic_ya,      Cyrillic_YA       ],
                  [     Cyrillic_ya,      Cyrillic_YA       ] };
    key <AC02> {  [     s,                S                 ],
                  [     Cyrillic_yeru,    Cyrillic_YERU     ],
                  [     Cyrillic_yeru,    Cyrillic_YERU     ] };
    key <AC01> {  [     a,                A                 ],
                  [     Cyrillic_ef,      Cyrillic_EF       ],
                  [     Cyrillic_ef,      Cyrillic_EF       ] };
    key <AD02> {  [     w,                W                 ],
                  [     Cyrillic_tse,     Cyrillic_TSE      ],
                  [     Cyrillic_tse,     Cyrillic_TSE      ] };
    key <AE02> {  [     2,                at                ],
                  [     2,                quotedbl          ],
                  [     2,                quotedbl          ] };
    key <AB03> {  [     c,                C                 ],
                  [     Cyrillic_es,      Cyrillic_ES       ],
                  [     Cyrillic_es,      Cyrillic_ES       ] };
    key <AB02> {  [     x,                X                 ],
                  [     Cyrillic_che,     Cyrillic_CHE      ],
                  [     Cyrillic_che,     Cyrillic_CHE      ] };
    key <AC03> {  [     d,                D                 ],
                  [     Cyrillic_ve,      Cyrillic_VE       ],
                  [     Cyrillic_ve,      Cyrillic_VE       ] };
    key <AD03> {  [     e,                E                 ],
                  [     Cyrillic_u,       Cyrillic_U        ],
                  [     Cyrillic_u,       Cyrillic_U        ] };
    key <AE04> {  [     4,                dollar            ],
                  [     4,                semicolon         ],
                  [     4,                semicolon         ] };
    key <AE03> {  [     3,                numbersign        ],
                  [     3,                numbersign        ],
                  [     3,                numbersign        ] };
    key <AB04> {  [     v,                V                 ],
                  [     Cyrillic_em,      Cyrillic_EM       ],
                  [     Cyrillic_em,      Cyrillic_EM       ] };
    key <AC04> {  [     f,                F                 ],
                  [     Cyrillic_a,       Cyrillic_A        ],
                  [     Cyrillic_a,       Cyrillic_A        ] };
    key <AD05> {  [     t,                T                 ],
                  [     Cyrillic_ie,      Cyrillic_IE       ],
                  [     Cyrillic_ie,      Cyrillic_IE       ] };
    key <AD04> {  [     r,                R                 ],
                  [     Cyrillic_ka,      Cyrillic_KA       ],
                  [     Cyrillic_ka,      Cyrillic_KA       ] };
    key <AE05> {  [     5,                percent           ],
                  [     5,                percent           ],
                  [     5,                percent           ] };
    key <AB06> {  [     n,                N                 ],
                  [     Cyrillic_te,      Cyrillic_TE       ],
                  [     Cyrillic_te,      Cyrillic_TE       ] };
    key <AB05> {  [     b,                B                 ],
                  [     Ukrainian_i,      Ukrainian_I       ],
                  [     Cyrillic_i,       Cyrillic_I        ] };
    key <AC06> {  [     h,                H                 ],
                  [     Cyrillic_er,      Cyrillic_ER       ],
                  [     Cyrillic_er,      Cyrillic_ER       ] };
    key <AC05> {  [     g,                G                 ],
                  [     Cyrillic_pe,      Cyrillic_PE       ],
                  [     Cyrillic_pe,      Cyrillic_PE       ] };
    key <AD06> {  [     y,                Y                 ],
                  [     Cyrillic_en,      Cyrillic_EN       ],
                  [     Cyrillic_en,      Cyrillic_EN       ] };
    key <AE06> {  [     6,                dead_circumflex   ],
                  [     6,                colon             ],
                  [     6,                colon             ] };
    key <AB07> {  [     m,                M                 ],
                  [     Cyrillic_softsign, Cyrillic_SOFTSIGN  ],
                  [     Cyrillic_softsign, Cyrillic_SOFTSIGN  ] };
    key <AC07> {  [     j,                J                 ],
                  [     Cyrillic_o,       Cyrillic_O        ],
                  [     Cyrillic_o,       Cyrillic_O        ] };
    key <AD07> {  [     u,                U                 ],
                  [     Cyrillic_ghe,     Cyrillic_GHE      ],
                  [     Cyrillic_ghe,     Cyrillic_GHE      ] };
    key <AE07> {  [     7,                ampersand         ],
                  [     7,                question          ],
                  [     7,                question          ] };
    key <AE08> {  [     8,                asterisk          ],
                  [     8,                asterisk          ],
                  [     8,                asterisk          ] };
    key <AB08> {  [     dead_cedilla,           less              ],
                  [     Cyrillic_be,      Cyrillic_BE       ],
                  [     Cyrillic_be,      Cyrillic_BE       ] };
    key <AC08> {  [     k,                K                 ],
                  [     Cyrillic_el,      Cyrillic_EL       ],
                  [     Cyrillic_el,      Cyrillic_EL       ] };
    key <AD08> {  [     i,                I                 ],
                  [     Cyrillic_sha,     Cyrillic_SHA      ],
                  [     Cyrillic_sha,     Cyrillic_SHA      ] };
    key <AD09> {  [     o,                O                 ],
                  [     Byelorussian_shortu, Byelorussian_SHORTU ],
                  [     Cyrillic_shcha,   Cyrillic_SHCHA    ] };
    key <AE10> {  [     0,                parenright        ],
                  [     0,                parenright        ],
                  [     0,                parenright        ] };
    key <AE09> {  [     9,                parenleft         ],
                  [     9,                parenleft         ],
                  [     9,                parenleft         ] };
    key <AB09> {  [     period,           greater           ],
                  [     Cyrillic_yu,      Cyrillic_YU       ],
                  [     Cyrillic_yu,      Cyrillic_YU       ] };
    key <AB10> {  [     slash,            question          ],
                  [     period,           comma             ],
                  [     period,           comma             ] };
    key <AC09> {  [     l,                L                 ],
                  [     Cyrillic_de,      Cyrillic_DE       ],
                  [     Cyrillic_de,      Cyrillic_DE       ] };
    key <AC10> {  [     semicolon,        colon             ],
                  [     Cyrillic_zhe,     Cyrillic_ZHE      ],
                  [     Cyrillic_zhe,     Cyrillic_ZHE      ] };
    key <AD10> {  [     p,                P                 ],
                  [     Cyrillic_ze,      Cyrillic_ZE       ],
                  [     Cyrillic_ze,      Cyrillic_ZE       ] };
    key <AE11> {  [     minus,            underscore        ],
                  [     minus,            underscore        ],
                  [     minus,            underscore        ] };
    key <AC11> {  [     dead_acute,       dead_diaeresis    ],
                  [     Cyrillic_e,       Cyrillic_E        ],
                  [     Cyrillic_e,       Cyrillic_E        ] };
    key <AD11> {  [     bracketleft,      braceleft         ],
                  [     Cyrillic_ha,      Cyrillic_HA       ],
                  [     Cyrillic_ha,      Cyrillic_HA       ] };
    key <AE12> {  [     equal,            plus              ],
                  [     equal,            plus              ],
                  [     equal,            plus              ] };
    key <AD12> {  [     bracketright,     braceright        ],
                  [     apostrophe,       apostrophe        ],
                  [     Cyrillic_hardsign, Cyrillic_HARDSIGN] };
    key <BKSL> {  [     backslash,        bar               ],
                  [     slash,            bar               ],
                  [     slash,            bar               ] };

    // End alphanumeric section

    // Begin modifier mappings

    modifier_map Shift  { Shift_L };
    modifier_map Lock   { Caps_Lock, ISO_Lock };
    modifier_map Control{ Control_L };
    modifier_map Mod3   { Mode_switch };
};

partial alphanumeric_keys
xkb_symbols "winkeys" {
    include "by(basic)"
    key <AE04> {  [     4,                dollar            ],
                  [     4,                semicolon         ],
                  [     4,                semicolon         ] };
    key <AE03> {  [     3,                numbersign        ],
                  [     3,                numbersign        ],
                  [     3,                numbersign        ] };
    key <AE05> {  [     5,                percent           ],
                  [     5,                percent           ],
                  [     5,                percent           ] };
    key <AE06> {  [     6,                asciicircum       ],
                  [     6,                colon             ],
                  [     6,                colon             ] };
    key <AE07> {  [     7,                ampersand         ],
                  [     7,                question          ],
                  [     7,                question          ] };
    key <AE08> {  [     8,                asterisk          ],
                  [     8,                asterisk          ],
                  [     8,                asterisk          ] };
    key <AB10> {  [     slash,            question          ],
                  [     period,           comma             ],
                  [     period,           comma             ] };
    key <BKSL> {  [     backslash,        bar               ],
                  [     slash,            bar               ],
                  [     slash,            bar               ] };
};