1////////////////////////////////////////////////////////////////////////// 2// Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton@lml.bas.bg> 3// 4// This software may be used, modified, copied, distributed, and sold, 5// both in source and binary form provided that the above copyright 6// notice and these terms are retained. The name of the author may not 7// be used to endorse or promote products derived from this software 8// without prior permission. THIS SOFTWARE IS PROVIDED "AS IS" AND 9// ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT 10// SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT 11// OF THE USE OF THIS SOFTWARE. 12// 13////////////////////////////////////////////////////////////////////////// 14// Version 2.0 15 16// The following variants are defined in this file: 17 18// "bds" - the BDS keyboard layout compliant with the proposed 19// Bulgarian state standard BDS 5237:2006 20 21// "phonetic" - the phonetic Bulgarian layout with the traditional position 22// of the letters 23 24// "bas_phonetic" - the phonetic keyboard layout compliant with the 25// proposed Bulgarian state standard BDS 5237:2006 26 27// "latin" - an extended variant of the QWERTY layout with symbols that 28// Bulgarian users will type while the keyboard is in Latin mode 29 30// The reasons behind the layout of the symbols in levels 3 and 4 are 31// explained in http://arxiv.org/abs/0905.0484 (in Bulgarian). 32 33// Two notes for the maintainers of xkeyboard-config: 34 35// 1. Please do not use key names such as <LatQ> for the Bulgarian 36// phonetic layouts. The placement of the symbols must stay always 37// the same regardless of which one of the alias sets in 38// xkb/keycodes/aliases is used. 39 40// 2. The layouts should not include level3(ralt_switch). 41 42////////////////////////////////////////////////////////////////////////// 43 44// Describes Bulgarian keyboard "BDS" modified according to the 45// the new state standard BDS 5237:2006 and extended with symbols in 46// levels 3 and 4. 47default partial alphanumeric_keys 48xkb_symbols "bds" { 49 50 name[Group1]= "Bulgarian"; 51 52 key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]}; 53 key <AE01> {[ 1, exclam ]}; 54 key <AE02> {[ 2, question ]}; 55 key <AE03> {[ 3, plus, dagger, dagger ]}; 56 key <AE04> {[ 4, quotedbl ]}; 57 key <AE05> {[ 5, percent, U2329, U232A ]}; 58 key <AE06> {[ 6, equal, emdash, emdash ]}; 59 key <AE07> {[ 7, colon, ellipsis, ellipsis ]}; 60 key <AE08> {[ 8, slash, U0300, U0301 ]}; 61 key <AE09> {[ 9, endash ]}; 62 key <AE10> {[ 0, numerosign ]}; 63 key <AE11> {[ minus, dollar, U2011, EuroSign ]}; 64 key <AE12> {[ period, EuroSign ]}; 65 66 key <AD01> {[ comma, Cyrillic_yeru, rightsinglequotemark, leftsinglequotemark ]}; 67 key <AD02> {[ Cyrillic_u, Cyrillic_U ]}; 68 key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; 69 key <AD04> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; 70 key <AD05> {[ Cyrillic_sha, Cyrillic_SHA ]}; 71 key <AD06> {[ Cyrillic_shcha, Cyrillic_SHCHA ]}; 72 key <AD07> {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]}; 73 key <AD08> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; 74 key <AD09> {[ Cyrillic_de, Cyrillic_DE ]}; 75 key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]}; 76 key <AD11> {[ Cyrillic_tse, Cyrillic_TSE ]}; 77 key <AD12> {[ semicolon, section ]}; 78 79 key <AC01> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; 80 key <AC02> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; 81 key <AC03> {[ Cyrillic_a, Cyrillic_A ]}; 82 key <AC04> {[ Cyrillic_o, Cyrillic_O ]}; 83 key <AC05> {[ Cyrillic_zhe, Cyrillic_ZHE ]}; 84 key <AC06> {[ Cyrillic_ghe, Cyrillic_GHE ]}; 85 key <AC07> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; 86 key <AC08> {[ Cyrillic_en, Cyrillic_EN ]}; 87 key <AC09> {[ Cyrillic_ve, Cyrillic_VE ]}; 88 key <AC10> {[ Cyrillic_em, Cyrillic_EM ]}; 89 key <AC11> {[ Cyrillic_che, Cyrillic_CHE ]}; 90 key <BKSL> {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]}; 91 92 key <LSGT> {[ U045D, U040D ]}; 93 key <AB01> {[ Cyrillic_yu, Cyrillic_YU ]}; 94 key <AB02> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; 95 key <AB03> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; 96 key <AB04> {[ Cyrillic_e, Cyrillic_E ]}; 97 key <AB05> {[ Cyrillic_ef, Cyrillic_EF ]}; 98 key <AB06> {[ Cyrillic_ha, Cyrillic_HA ]}; 99 key <AB07> {[ Cyrillic_pe, Cyrillic_PE ]}; 100 key <AB08> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; 101 key <AB09> {[ Cyrillic_el, Cyrillic_EL ]}; 102 key <AB10> {[ Cyrillic_be, Cyrillic_BE ]}; 103 104 key <SPCE> {[ space, space, nobreakspace, nobreakspace ]}; 105 106 key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; 107}; 108 109// This is an improved variant of the traditional Bulgarian phonetic 110// keyboard. Some unnecessary symbols in levels 1 and 2 are replaced 111// by more useful ones (similar as in "bas_phonetic") and additional 112// symbols are added in levels 3 and 4. 113partial alphanumeric_keys 114xkb_symbols "phonetic" { 115 name[Group1]= "Bulgarian (traditional phonetic)"; 116 117 key <TLDE> {[ Cyrillic_che, Cyrillic_CHE ]}; 118 key <AE01> {[ 1, exclam ]}; 119 key <AE02> {[ 2, at ]}; 120 key <AE03> {[ 3, numerosign ]}; 121 key <AE04> {[ 4, dollar, EuroSign, EuroSign ]}; 122 key <AE05> {[ 5, percent ]}; 123 key <AE06> {[ 6, EuroSign ]}; 124 key <AE07> {[ 7, section ]}; 125 key <AE08> {[ 8, asterisk ]}; 126 key <AE09> {[ 9, parenleft, bracketleft, U2329 ]}; 127 key <AE10> {[ 0, parenright, bracketright, U232A ]}; 128 key <AE11> {[ minus, endash, U2011, U2011 ]}; 129 key <AE12> {[ equal, plus, emdash, dagger ]}; 130 131 key <AD01> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; 132 key <AD02> {[ Cyrillic_ve, Cyrillic_VE ]}; 133 key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]}; 134 key <AD04> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]}; 135 key <AD05> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]}; 136 key <AD06> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]}; 137 key <AD07> {[ Cyrillic_u, Cyrillic_U ]}; 138 key <AD08> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]}; 139 key <AD09> {[ Cyrillic_o, Cyrillic_O ]}; 140 key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]}; 141 key <AD11> {[ Cyrillic_sha, Cyrillic_SHA ]}; 142 key <AD12> {[ Cyrillic_shcha, Cyrillic_SHCHA ]}; 143 144 key <AC01> {[ Cyrillic_a, Cyrillic_A ]}; 145 key <AC02> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]}; 146 key <AC03> {[ Cyrillic_de, Cyrillic_DE ]}; 147 key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]}; 148 key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]}; 149 key <AC06> {[ Cyrillic_ha, Cyrillic_HA ]}; 150 key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]}; 151 key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]}; 152 key <AC09> {[ Cyrillic_el, Cyrillic_EL ]}; 153 key <AC10> {[ semicolon, colon, ellipsis, ellipsis ]}; 154 key <AC11> {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]}; 155 key <BKSL> {[ Cyrillic_yu, Cyrillic_YU ]}; 156 157 key <LSGT> {[ U045D, U040D ]}; 158 key <AB01> {[ Cyrillic_ze, Cyrillic_ZE ]}; 159 key <AB02> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; 160 key <AB03> {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]}; 161 key <AB04> {[ Cyrillic_zhe, Cyrillic_ZHE ]}; 162 key <AB05> {[ Cyrillic_be, Cyrillic_BE ]}; 163 key <AB06> {[ Cyrillic_en, Cyrillic_EN ]}; 164 key <AB07> {[ Cyrillic_em, Cyrillic_EM ]}; 165 key <AB08> {[ comma, less, guillemotleft, guillemotleft ]}; 166 key <AB09> {[ period, greater, guillemotright, guillemotright ]}; 167 key <AB10> {[ slash, question, U0300, U0301 ]}; 168 169 key <SPCE> {[ space, space, nobreakspace, nobreakspace ]}; 170 171 key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]}; 172}; 173 174// This is the Bulgarian phonetic keyboard according to the proposed 175// state standard BDS 5237:2006 with additional symbols in levels 3 and 4. 176partial alphanumeric_keys 177xkb_symbols "bas_phonetic" { 178 include "bg(phonetic)" 179 name[Group1]= "Bulgarian (new phonetic)"; 180 181 key <TLDE> {[ Cyrillic_yu, Cyrillic_YU ]}; 182 key <AD01> {[ Cyrillic_che, Cyrillic_CHE ]}; 183 key <AD02> {[ Cyrillic_sha, Cyrillic_SHA ]}; 184 key <AD11> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]}; 185 key <BKSL> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]}; 186 key <AB02> {[ Cyrillic_zhe, Cyrillic_ZHE ]}; 187 key <AB04> {[ Cyrillic_ve, Cyrillic_VE ]}; 188}; 189 190 191// This is an extended variant of the standard Latin QWERTY layout with 192// additional symbols in levels 3 and 4. 193hidden partial alphanumeric_keys 194xkb_symbols "latin" { 195 196 key <TLDE> {[ grave, asciitilde, U2248, U2245 ]}; 197 key <AE01> {[ 1, exclam, notsign, notsign ]}; 198 key <AE02> {[ 2, at, twosuperior, enfilledcircbullet ]}; 199 key <AE03> {[ 3, numbersign, threesuperior, notequal ]}; 200 key <AE04> {[ 4, dollar, EuroSign, sterling ]}; 201 key <AE05> {[ 5, percent, U2030, U2030 ]}; 202 key <AE06> {[ 6, asciicircum, logicaland, logicalor ]}; 203 key <AE07> {[ 7, ampersand, section, section ]}; 204 key <AE08> {[ 8, asterisk, infinity, multiply ]}; 205 key <AE09> {[ 9, parenleft, U2202, nabla ]}; 206 key <AE10> {[ 0, parenright, U2300, U2300 ]}; 207 key <AE11> {[ minus, underscore, U2011, endash ]}; 208 key <AE12> {[ equal, plus, emdash, plusminus ]}; 209 210 key <AD01> {[ q, Q, Greek_THETA, Greek_theta ]}; 211 key <AD02> {[ w, W, Greek_OMEGA, Greek_omega ]}; 212 key <AD03> {[ e, E, U2203, Greek_epsilon ]}; 213 key <AD04> {[ r, R, registered, Greek_rho ]}; 214 key <AD05> {[ t, T, trademark, Greek_tau ]}; 215 key <AD06> {[ y, Y, yen, Greek_upsilon ]}; 216 key <AD07> {[ u, U, intersection, union ]}; 217 key <AD08> {[ i, I, integral, Greek_iota ]}; 218 key <AD09> {[ o, O, degree, U222E ]}; 219 key <AD10> {[ p, P, Greek_PI, Greek_pi ]}; 220 key <AD11> {[ bracketleft, braceleft, U2286, includedin ]}; 221 key <AD12> {[ bracketright, braceright, U2208, U2209 ]}; 222 223 key <AC01> {[ a, A, U2200, Greek_alpha ]}; 224 key <AC02> {[ s, S, Greek_SIGMA, Greek_sigma ]}; 225 key <AC03> {[ d, D, Greek_DELTA, Greek_delta ]}; 226 key <AC04> {[ f, F, Greek_PHI, Greek_phi ]}; 227 key <AC05> {[ g, G, Greek_GAMMA, Greek_gamma ]}; 228 key <AC06> {[ h, H, U2225, Greek_eta ]}; 229 key <AC07> {[ j, J ]}; 230 key <AC08> {[ k, K, U03F0, Greek_kappa ]}; 231 key <AC09> {[ l, L, Greek_LAMBDA, Greek_lambda ]}; 232 key <AC10> {[ semicolon, colon, division, division ]}; 233 key <AC11> {[ apostrophe, quotedbl, leftdoublequotemark, rightdoublequotemark]}; 234 key <BKSL> {[ backslash, bar, identical, downtack ]}; 235 236 key <LSGT> {[ less, greater, U2266, U2267 ]}; 237 key <AB01> {[ z, Z, U2220, Greek_zeta ]}; 238 key <AB02> {[ x, X, Greek_XI, Greek_xi ]}; 239 key <AB03> {[ c, C, copyright, Greek_chi ]}; 240 key <AB04> {[ v, V, Greek_PSI, Greek_psi ]}; 241 key <AB05> {[ b, B, U03D1, Greek_beta ]}; 242 key <AB06> {[ n, N, U207F, Greek_nu ]}; 243 key <AB07> {[ m, M, Greek_mu, Greek_mu ]}; 244 key <AB08> {[ comma, less, U2266, U21D4 ]}; 245 key <AB09> {[ period, greater, U2267, U21D2 ]}; 246 key <AB10> {[ slash, question, leftsinglequotemark, rightsinglequotemark]}; 247 248 key <SPCE> {[ space, space, nobreakspace, nobreakspace ]}; 249 250 key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]}; 251}; 252