// Keyboard layouts for Kazachstan. // Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html // Baurzhan Ismagulov // TODO: // 1. AltGr with TLDE and LSGT. // 2. Dead key for ruskaz and kazrus. // 3. Ctrl + . // 4. Alt-Tab. // RST KazSSR 903-90 // levels 3 and 4 are non-standard extensions default partial alphanumeric_keys xkb_symbols "basic" { name[Group1] = "Kazakh"; key.type[group1] = "FOUR_LEVEL"; key { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; key { [ quotedbl, exclam ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ backslash, slash ] }; key { [ numerosign, question ] }; key { [ less, greater, bar, brokenbar ] }; key.type[group1] = "ALPHABETIC"; key { [ Cyrillic_schwa, Cyrillic_SCHWA ] }; key { [ Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; key { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; key { [ Cyrillic_shha, Cyrillic_SHHA ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA ] }; key { [ Cyrillic_ie, Cyrillic_IE ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; }; // Kikkarin KZ1 partial alphanumeric_keys xkb_symbols "ruskaz" { name[Group1] = "Russian (Kazakhstan, with Kazakh)"; key.type[group1] = "FOUR_LEVEL"; key { [ 1, exclam ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numerosign, numbersign ] }; key { [ 4, semicolon, dollar ] }; key { [ 5, percent ] }; key { [ 6, colon, asciicircum ] }; key { [ 7, question, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ backslash, slash, bar ] }; key { [ period, comma, slash, question ] }; key { [ less, greater, bar, brokenbar ] }; key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; key { [ Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] }; key { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; }; // Kikkarin KZ2 partial alphanumeric_keys xkb_symbols "kazrus" { name[Group1] = "Kazakh (with Russian)"; key.type[group1] = "FOUR_LEVEL"; key { [ 1, exclam ] }; key { [ 2, quotedbl, at ] }; key { [ 3, numerosign, numbersign ] }; key { [ 4, semicolon, dollar ] }; key { [ 5, percent ] }; key { [ 6, colon, asciicircum ] }; key { [ 7, question, ampersand ] }; key { [ 8, asterisk ] }; key { [ 9, parenleft ] }; key { [ 0, parenright ] }; key { [ minus, underscore ] }; key { [ equal, plus ] }; key { [ backslash, slash, bar ] }; key { [ period, comma, slash, question ] }; key { [ less, greater, bar, brokenbar ] }; key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] }; key { [ Cyrillic_u, Cyrillic_U ] }; key { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; key { [ Cyrillic_en, Cyrillic_EN ] }; key { [ Cyrillic_ghe, Cyrillic_GHE ] }; key { [ Cyrillic_sha, Cyrillic_SHA ] }; key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] }; key { [ Cyrillic_ze, Cyrillic_ZE ] }; key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] }; key { [ Cyrillic_yeru, Cyrillic_YERU ] }; key { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] }; key { [ Cyrillic_a, Cyrillic_A ] }; key { [ Cyrillic_pe, Cyrillic_PE ] }; key { [ Cyrillic_er, Cyrillic_ER ] }; key { [ Cyrillic_o, Cyrillic_O ] }; key { [ Cyrillic_el, Cyrillic_EL ] }; key { [ Cyrillic_de, Cyrillic_DE ] }; key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; key { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] }; key { [ Cyrillic_ya, Cyrillic_YA ] }; key { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] }; key { [ Cyrillic_es, Cyrillic_ES ] }; key { [ Cyrillic_em, Cyrillic_EM ] }; key { [ Cyrillic_te, Cyrillic_TE ] }; key { [ Cyrillic_i, Cyrillic_I ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; key { [ Cyrillic_be, Cyrillic_BE ] }; key { [ Cyrillic_yu, Cyrillic_YU ] }; }; partial alphanumeric_keys xkb_symbols "olpc" { // Contact: Walter Bender // We moved the Cyrillic IO off of the Tilde Key as an Alt-GR character // and moved it onto the Backslash key, making Backslash and Bar available // through the Latin side of the keyboard. include "kz(basic)" key { [ parenleft, parenright ] }; key { [ Cyrillic_io, Cyrillic_IO ] }; include "group(olpc)" }; partial alphanumeric_keys xkb_symbols "ext" { // Levels 3 and 4 represent main keyboard's numeric part of US layout, // parens are duplicated for consistency. include "kz(basic)" name[Group1] = "Kazakh (extended)"; key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; key { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] }; key { [ quotedbl, exclam, 1, exclam ] }; key { [ Cyrillic_schwa, Cyrillic_SCHWA, 2, at ] }; key { [ Ukrainian_i, Ukrainian_I, 3, numbersign ] }; key { [ Cyrillic_en_descender, Cyrillic_EN_descender, 4, dollar ] }; key { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, 5, percent ] }; key { [ comma, semicolon, 6, asciicircum ] }; key { [ period, colon, 7, ampersand ] }; key { [ Cyrillic_u_straight, Cyrillic_U_straight, 8, asterisk ] }; key { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, 9, parenleft ] }; key { [ Cyrillic_ka_descender, Cyrillic_KA_descender, 0, parenright ] }; key { [ Cyrillic_o_bar, Cyrillic_O_bar, minus, underscore ] }; key { [ Cyrillic_shha, Cyrillic_SHHA, equal, plus ] }; key { [ backslash, slash, bar, brokenbar ] }; key { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] }; key { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; key { [ Cyrillic_be, Cyrillic_BE, less ] }; key { [ Cyrillic_yu, Cyrillic_YU, greater ] }; include "level3(ralt_switch)" }; // Kazakh Latin (based on Kazakh alphabet version of 2018) // levels 3 and 4 are non-standard extensions partial alphanumeric_keys xkb_symbols "latin" { // Contact: Galym Kerimbekov name[Group1] = "Kazakh (Latin)"; key.type[group1] = "FOUR_LEVEL"; key { [ parenleft, parenright ] }; key { [ quotedbl, exclam ] }; key { [ comma, semicolon ] }; key { [ period, colon ] }; key { [ backslash, slash ] }; key { [ numerosign, question ] }; key { [ less, greater, bar, brokenbar ] }; key.type[group1] = "ALPHABETIC"; key { [ aacute, Aacute ] }; key { [ iacute, Iacute ] }; key { [ nacute, Nacute ] }; key { [ U01F5, U01F4 ] }; // gG with acute key { [ uacute, Uacute ] }; key { [ yacute, Yacute ] }; key { [ oacute, Oacute ] }; key { [ sacute, Sacute ] }; key { [ cacute, Cacute ] }; key { [ q, Q ] }; key { [ w, W ] }; key { [ e, E ] }; key { [ r, R ] }; key { [ t, T ] }; key { [ y, Y ] }; key { [ u, U ] }; key { [ i, I ] }; key { [ o, O ] }; key { [ p, P ] }; key { [ a, A ] }; key { [ s, S ] }; key { [ d, D ] }; key { [ f, F ] }; key { [ g, G ] }; key { [ h, H ] }; key { [ j, J ] }; key { [ k, K ] }; key { [ l, L ] }; key { [ z, Z ] }; key { [ x, X ] }; key { [ c, C ] }; key { [ v, M ] }; key { [ b, B ] }; key { [ n, N ] }; key { [ m, M ] }; };