1// Based on http://www.sci.kz/~sairan/keyboard/kzkbd.html 2// Baurzhan Ismagulov <ibr@radix50.net> 3// 4 5// TODO: 6// 1. AltGr with TLDE and LSGT. 7// 2. Dead key for ruskaz and kazrus. 8// 3. Ctrl + <key>. 9// 4. Alt-Tab. 10 11// RST KazSSR 903-90 12// levels 3 and 4 are non-standard extensions 13default partial alphanumeric_keys 14xkb_symbols "basic" { 15 16 name[Group1] = "Kazakh"; 17 18key.type[group1] = "FOUR_LEVEL"; 19 20 key <TLDE> { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; 21 key <AE01> { [ quotedbl, exclam ] }; 22 key <AE06> { [ comma, semicolon ] }; 23 key <AE07> { [ period, colon ] }; 24 key <BKSL> { [ backslash, slash ] }; 25 key <AB10> { [ numerosign, question ] }; 26 key <LSGT> { [ less, greater, bar, brokenbar ] }; 27 28key.type[group1] = "ALPHABETIC"; 29 30 key <AE02> { [ Cyrillic_schwa, Cyrillic_SCHWA ] }; 31 key <AE03> { [ Ukrainian_i, Ukrainian_I ] }; 32 key <AE04> { [ Cyrillic_en_descender, Cyrillic_EN_descender ] }; 33 key <AE05> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; 34 key <AE08> { [ Cyrillic_u_straight, Cyrillic_U_straight ] }; 35 key <AE09> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; 36 key <AE10> { [ Cyrillic_ka_descender, Cyrillic_KA_descender ] }; 37 key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar ] }; 38 key <AE12> { [ Cyrillic_shha, Cyrillic_SHHA ] }; 39 40 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; 41 key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] }; 42 key <AD03> { [ Cyrillic_u, Cyrillic_U ] }; 43 key <AD04> { [ Cyrillic_ka, Cyrillic_KA ] }; 44 key <AD05> { [ Cyrillic_ie, Cyrillic_IE ] }; 45 key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; 46 key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] }; 47 key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; 48 key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; 49 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; 50 key <AD11> { [ Cyrillic_ha, Cyrillic_HA ] }; 51 key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; 52 key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; 53 key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] }; 54 key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; 55 key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; 56 key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; 57 key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; 58 key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; 59 key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; 60 key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; 61 key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; 62 key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; 63 key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; 64 key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] }; 65 key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; 66 key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; 67 key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; 68 key <AB05> { [ Cyrillic_i, Cyrillic_I ] }; 69 key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; 70 key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; 71 key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; 72}; 73 74// Kikkarin KZ1 75partial alphanumeric_keys 76xkb_symbols "ruskaz" { 77 78 name[Group1] = "Russian (Kazakhstan, with Kazakh)"; 79 80key.type[group1] = "FOUR_LEVEL"; 81 82 key <AE01> { [ 1, exclam ] }; 83 key <AE02> { [ 2, quotedbl, at ] }; 84 key <AE03> { [ 3, numerosign, numbersign ] }; 85 key <AE04> { [ 4, semicolon, dollar ] }; 86 key <AE05> { [ 5, percent ] }; 87 key <AE06> { [ 6, colon, asciicircum ] }; 88 key <AE07> { [ 7, question, ampersand ] }; 89 key <AE08> { [ 8, asterisk ] }; 90 key <AE09> { [ 9, parenleft ] }; 91 key <AE10> { [ 0, parenright ] }; 92 key <AE11> { [ minus, underscore ] }; 93 key <AE12> { [ equal, plus ] }; 94 key <BKSL> { [ backslash, slash, bar ] }; 95 key <AB10> { [ period, comma, slash, question ] }; 96 key <LSGT> { [ less, greater, bar, brokenbar ] }; 97 98key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; 99 100 key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; 101 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI, Cyrillic_u_straight_bar, Cyrillic_U_straight_bar ] }; 102 key <AD02> { [ Cyrillic_tse, Cyrillic_TSE ] }; 103 key <AD03> { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; 104 key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; 105 key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; 106 key <AD06> { [ Cyrillic_en, Cyrillic_EN, Cyrillic_en_descender, Cyrillic_EN_descender ] }; 107 key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE, Cyrillic_ghe_bar, Cyrillic_GHE_bar ] }; 108 key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; 109 key <AD09> { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; 110 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; 111 key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; 112 key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; 113 key <AC01> { [ Cyrillic_ef, Cyrillic_EF ] }; 114 key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] }; 115 key <AC03> { [ Cyrillic_ve, Cyrillic_VE ] }; 116 key <AC04> { [ Cyrillic_a, Cyrillic_A, Cyrillic_schwa, Cyrillic_SCHWA ] }; 117 key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; 118 key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; 119 key <AC07> { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; 120 key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; 121 key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; 122 key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; 123 key <AC11> { [ Cyrillic_e, Cyrillic_E ] }; 124 key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; 125 key <AB02> { [ Cyrillic_che, Cyrillic_CHE ] }; 126 key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; 127 key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; 128 key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; 129 key <AB05> { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; 130 key <AB07> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; 131 key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; 132 key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; 133}; 134 135// Kikkarin KZ2 136partial alphanumeric_keys 137xkb_symbols "kazrus" { 138 139 name[Group1] = "Kazakh (with Russian)"; 140 141key.type[group1] = "FOUR_LEVEL"; 142 143 key <AE01> { [ 1, exclam ] }; 144 key <AE02> { [ 2, quotedbl, at ] }; 145 key <AE03> { [ 3, numerosign, numbersign ] }; 146 key <AE04> { [ 4, semicolon, dollar ] }; 147 key <AE05> { [ 5, percent ] }; 148 key <AE06> { [ 6, colon, asciicircum ] }; 149 key <AE07> { [ 7, question, ampersand ] }; 150 key <AE08> { [ 8, asterisk ] }; 151 key <AE09> { [ 9, parenleft ] }; 152 key <AE10> { [ 0, parenright ] }; 153 key <AE11> { [ minus, underscore ] }; 154 key <AE12> { [ equal, plus ] }; 155 key <BKSL> { [ backslash, slash, bar ] }; 156 key <AB10> { [ period, comma, slash, question ] }; 157 key <LSGT> { [ less, greater, bar, brokenbar ] }; 158 159key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; 160 161 key <TLDE> { [ Cyrillic_io, Cyrillic_IO ] }; 162 key <AD01> { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; 163 key <AD02> { [ Cyrillic_en_descender, Cyrillic_EN_descender, Cyrillic_tse, Cyrillic_TSE ] }; 164 key <AD03> { [ Cyrillic_u, Cyrillic_U ] }; 165 key <AD04> { [ Cyrillic_ka, Cyrillic_KA, Cyrillic_ka_descender, Cyrillic_KA_descender ] }; 166 key <AD05> { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; 167 key <AD06> { [ Cyrillic_en, Cyrillic_EN ] }; 168 key <AD07> { [ Cyrillic_ghe, Cyrillic_GHE ] }; 169 key <AD08> { [ Cyrillic_sha, Cyrillic_SHA ] }; 170 key <AD09> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, Cyrillic_shcha, Cyrillic_SHCHA ] }; 171 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] }; 172 key <AD11> { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; 173 key <AD12> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; 174 key <AC01> { [ Cyrillic_o_bar, Cyrillic_O_bar, Cyrillic_ef, Cyrillic_EF ] }; 175 key <AC02> { [ Cyrillic_yeru, Cyrillic_YERU ] }; 176 key <AC03> { [ Cyrillic_ka_descender, Cyrillic_KA_descender, Cyrillic_ve, Cyrillic_VE ] }; 177 key <AC04> { [ Cyrillic_a, Cyrillic_A ] }; 178 key <AC05> { [ Cyrillic_pe, Cyrillic_PE ] }; 179 key <AC06> { [ Cyrillic_er, Cyrillic_ER ] }; 180 key <AC07> { [ Cyrillic_o, Cyrillic_O ] }; 181 key <AC08> { [ Cyrillic_el, Cyrillic_EL ] }; 182 key <AC09> { [ Cyrillic_de, Cyrillic_DE ] }; 183 key <AC10> { [ Cyrillic_zhe, Cyrillic_ZHE ] }; 184 key <AC11> { [ Cyrillic_schwa, Cyrillic_SCHWA, Cyrillic_e, Cyrillic_E ] }; 185 key <AB01> { [ Cyrillic_ya, Cyrillic_YA ] }; 186 key <AB02> { [ Ukrainian_i, Ukrainian_I, Cyrillic_che, Cyrillic_CHE ] }; 187 key <AB03> { [ Cyrillic_es, Cyrillic_ES ] }; 188 key <AB04> { [ Cyrillic_em, Cyrillic_EM ] }; 189 key <AB06> { [ Cyrillic_te, Cyrillic_TE ] }; 190 key <AB05> { [ Cyrillic_i, Cyrillic_I ] }; 191 key <AB07> { [ Cyrillic_u_straight, Cyrillic_U_straight, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; 192 key <AB08> { [ Cyrillic_be, Cyrillic_BE ] }; 193 key <AB09> { [ Cyrillic_yu, Cyrillic_YU ] }; 194}; 195 196partial alphanumeric_keys 197xkb_symbols "olpc" { 198 199// Contact: Walter Bender <walter@laptop.org> 200 201// We moved the Cyrillic IO off of the Tilde Key as an Alt-GR character 202// and moved it onto the Backslash key, making Backslash and Bar available 203// through the Latin side of the keyboard. 204 205 include "kz(basic)" 206 207 key <TLDE> { [ parenleft, parenright ] }; 208 key <BKSL> { [ Cyrillic_io, Cyrillic_IO ] }; 209 210 include "group(olpc)" 211}; 212 213partial alphanumeric_keys 214xkb_symbols "ext" { 215 216// Levels 3 and 4 represent main keyboard's numeric part of US layout, 217// parens are duplicated for consistency. 218 219 include "kz(basic)" 220 name[Group1] = "Kazakh (extended)"; 221 222key.type[group1] = "FOUR_LEVEL_ALPHABETIC"; 223 224 key <TLDE> { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] }; 225 key <AE01> { [ quotedbl, exclam, 1, exclam ] }; 226 key <AE02> { [ Cyrillic_schwa, Cyrillic_SCHWA, 2, at ] }; 227 key <AE03> { [ Ukrainian_i, Ukrainian_I, 3, numbersign ] }; 228 key <AE04> { [ Cyrillic_en_descender, Cyrillic_EN_descender, 4, dollar ] }; 229 key <AE05> { [ Cyrillic_ghe_bar, Cyrillic_GHE_bar, 5, percent ] }; 230 key <AE06> { [ comma, semicolon, 6, asciicircum ] }; 231 key <AE07> { [ period, colon, 7, ampersand ] }; 232 key <AE08> { [ Cyrillic_u_straight, Cyrillic_U_straight, 8, asterisk ] }; 233 key <AE09> { [ Cyrillic_u_straight_bar, Cyrillic_U_straight_bar, 9, parenleft ] }; 234 key <AE10> { [ Cyrillic_ka_descender, Cyrillic_KA_descender, 0, parenright ] }; 235 key <AE11> { [ Cyrillic_o_bar, Cyrillic_O_bar, minus, underscore ] }; 236 key <AE12> { [ Cyrillic_shha, Cyrillic_SHHA, equal, plus ] }; 237 key <BKSL> { [ backslash, slash, bar, brokenbar ] }; 238 key <AD11> { [ Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft ] }; 239 key <AD12> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright ] }; 240 key <AC11> { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; 241 key <AB08> { [ Cyrillic_be, Cyrillic_BE, less ] }; 242 key <AB09> { [ Cyrillic_yu, Cyrillic_YU, greater ] }; 243 244 include "level3(ralt_switch)" 245}; 246 247// Kazakh Latin (based on Kazakh alphabet version of 2018) 248// levels 3 and 4 are non-standard extensions 249partial alphanumeric_keys 250xkb_symbols "latin" { 251 252// Contact: Galym Kerimbekov <housegregory299@gmail.com> 253 254 name[Group1] = "Kazakh (Latin)"; 255 256key.type[group1] = "FOUR_LEVEL"; 257 258 key <TLDE> { [ parenleft, parenright ] }; 259 key <AE01> { [ quotedbl, exclam ] }; 260 key <AE06> { [ comma, semicolon ] }; 261 key <AE07> { [ period, colon ] }; 262 key <BKSL> { [ backslash, slash ] }; 263 key <AB10> { [ numerosign, question ] }; 264 key <LSGT> { [ less, greater, bar, brokenbar ] }; 265 266key.type[group1] = "ALPHABETIC"; 267 268 key <AE02> { [ aacute, Aacute ] }; 269 key <AE03> { [ iacute, Iacute ] }; 270 key <AE04> { [ nacute, Nacute ] }; 271 key <AE05> { [ U01F5, U01F4 ] }; // gG with acute 272 key <AE08> { [ uacute, Uacute ] }; 273 key <AE09> { [ yacute, Yacute ] }; 274 key <AE10> { [ oacute, Oacute ] }; 275 key <AE11> { [ sacute, Sacute ] }; 276 key <AE12> { [ cacute, Cacute ] }; 277 278 key <AD01> { [ q, Q ] }; 279 key <AD02> { [ w, W ] }; 280 key <AD03> { [ e, E ] }; 281 key <AD04> { [ r, R ] }; 282 key <AD05> { [ t, T ] }; 283 key <AD06> { [ y, Y ] }; 284 key <AD07> { [ u, U ] }; 285 key <AD08> { [ i, I ] }; 286 key <AD09> { [ o, O ] }; 287 key <AD10> { [ p, P ] }; 288 key <AC01> { [ a, A ] }; 289 key <AC02> { [ s, S ] }; 290 key <AC03> { [ d, D ] }; 291 key <AC04> { [ f, F ] }; 292 key <AC05> { [ g, G ] }; 293 key <AC06> { [ h, H ] }; 294 key <AC07> { [ j, J ] }; 295 key <AC08> { [ k, K ] }; 296 key <AC09> { [ l, L ] }; 297 key <AB01> { [ z, Z ] }; 298 key <AB02> { [ x, X ] }; 299 key <AB03> { [ c, C ] }; 300 key <AB04> { [ v, M ] }; 301 key <AB05> { [ b, B ] }; 302 key <AB06> { [ n, N ] }; 303 key <AB07> { [ m, M ] }; 304}; 305