1 //////////////////////////////////////////////////////////////////////////
2 // Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton@lml.bas.bg>
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 PROVIDES "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.
13 //////////////////////////////////////////////////////////////////////////
16 // The following variants are defined in this file:
18 // "bds" - the BDS keyboard layout compliant with the proposed
19 // Bulgarian state standard BDS 5237:2006
21 // "phonetic" - Bulgarian phonetic layout with traditional position of
24 // "bas_phonetic" - the phonetic keyboard layout compliant with the
25 // proposed Bulgarian state standard BDS 5237:2006
27 // "latin" - an extended variant of the QWERTY layout with symbols
28 // Bulgarian users will type while the keyboard is in Latin mode.
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).
33 // Two notes for the maintainers of xkeyboard-config:
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.
40 // 2. The layouts should not include level3(ralt_switch).
42 //////////////////////////////////////////////////////////////////////////
44 // Describes Bulgarian keyboard "BDS" modified according to the
45 // the new state standard BDS 5237:2006 and extended with symbols in
47 partial default alphanumeric_keys
50 name[Group1]= "Bulgarian";
52 key <TLDE> { [ parenleft, parenright,
53 bracketleft, bracketright ] };
54 key <AE01> { [ 1, exclam ] };
55 key <AE02> { [ 2, question ] };
56 key <AE03> { [ 3, plus,
58 key <AE04> { [ 4, quotedbl ] };
59 key <AE05> { [ 5, percent,
61 key <AE06> { [ 6, equal,
63 key <AE07> { [ 7, colon,
64 ellipsis, ellipsis ] };
65 key <AE08> { [ 8, slash,
67 key <AE09> { [ 9, endash ] };
68 key <AE10> { [ 0, numerosign ] };
69 key <AE11> { [ minus, dollar,
71 key <AE12> { [ period, EuroSign ] };
74 key <AD01> { [ comma, Cyrillic_yeru,
75 rightsinglequotemark, leftsinglequotemark ] };
76 key <AD02> { [ Cyrillic_u, Cyrillic_U ] };
77 key <AD03> { [ Cyrillic_ie, Cyrillic_IE,
78 Cyrillic_e, Cyrillic_E ] };
79 key <AD04> { [ Cyrillic_i, Cyrillic_I,
81 key <AD05> { [ Cyrillic_sha, Cyrillic_SHA ] };
82 key <AD06> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
83 key <AD07> { [ Cyrillic_ka, Cyrillic_KA,
84 copyright, copyright ] };
85 key <AD08> { [ Cyrillic_es, Cyrillic_ES,
86 copyright, copyright ] };
87 key <AD09> { [ Cyrillic_de, Cyrillic_DE ] };
88 key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
89 key <AD11> { [ Cyrillic_tse, Cyrillic_TSE ] };
90 key <AD12> { [ semicolon, section ] };
93 key <AC01> { [ Cyrillic_softsign, U045D,
94 Cyrillic_yeru, Cyrillic_YERU ] };
95 key <AC02> { [ Cyrillic_ya, Cyrillic_YA,
97 key <AC03> { [ Cyrillic_a, Cyrillic_A ] };
98 key <AC04> { [ Cyrillic_o, Cyrillic_O ] };
99 key <AC05> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
100 key <AC06> { [ Cyrillic_ghe, Cyrillic_GHE ] };
101 key <AC07> { [ Cyrillic_te, Cyrillic_TE,
102 trademark, trademark ] };
103 key <AC08> { [ Cyrillic_en, Cyrillic_EN ] };
104 key <AC09> { [ Cyrillic_ve, Cyrillic_VE ] };
105 key <AC10> { [ Cyrillic_em, Cyrillic_EM ] };
106 key <AC11> { [ Cyrillic_che, Cyrillic_CHE ] };
107 key <BKSL> { [ doublelowquotemark, leftdoublequotemark,
108 guillemotleft, guillemotright ] };
111 key <LSGT> { [ U045D, U040D ] };
112 key <AB01> { [ Cyrillic_yu, Cyrillic_YU ] };
113 key <AB02> { [ Cyrillic_shorti, Cyrillic_SHORTI,
115 key <AB03> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,
117 key <AB04> { [ Cyrillic_e, Cyrillic_E ] };
118 key <AB05> { [ Cyrillic_ef, Cyrillic_EF ] };
119 key <AB06> { [ Cyrillic_ha, Cyrillic_HA ] };
120 key <AB07> { [ Cyrillic_pe, Cyrillic_PE ] };
121 key <AB08> { [ Cyrillic_er, Cyrillic_ER,
122 registered, registered ] };
123 key <AB09> { [ Cyrillic_el, Cyrillic_EL ] };
124 key <AB10> { [ Cyrillic_be, Cyrillic_BE ] };
127 key <SPCE> { [ space, space,
128 nobreakspace, nobreakspace ] };
131 key <KPDL> { type[Group1] = "KEYPAD",
132 [ KP_Delete, KP_Separator ] };
135 // This is improved variant of the traditional Bulgarian phonetic
136 // keyboard. Some unnecessary symbols in levels 1 and 2 are replaced
137 // by more useful (the same way as in "bas_phonetic") and additional
138 // symbols in levels 3 and 4 are added.
139 partial alphanumeric_keys
140 xkb_symbols "phonetic" {
141 name[Group1]= "Bulgarian (traditional phonetic)";
143 key <TLDE> { [ Cyrillic_che, Cyrillic_CHE ] };
144 key <AE01> { [ 1, exclam ] };
145 key <AE02> { [ 2, at ] };
146 key <AE03> { [ 3, numerosign ] };
147 key <AE04> { [ 4, dollar,
148 EuroSign, EuroSign ] };
149 key <AE05> { [ 5, percent ] };
150 key <AE06> { [ 6, EuroSign ] };
151 key <AE07> { [ 7, section ] };
152 key <AE08> { [ 8, asterisk ] };
153 key <AE09> { [ 9, parenleft,
154 bracketleft, U2329 ] };
155 key <AE10> { [ 0, parenright,
156 bracketright, U232A ] };
157 key <AE11> { [ minus, endash,
159 key <AE12> { [ equal, plus,
162 key <AD01> { [ Cyrillic_ya, Cyrillic_YA,
164 key <AD02> { [ Cyrillic_ve, Cyrillic_VE ] };
165 key <AD03> { [ Cyrillic_ie, Cyrillic_IE,
166 Cyrillic_e, Cyrillic_E ] };
167 key <AD04> { [ Cyrillic_er, Cyrillic_ER,
168 registered, registered ] };
169 key <AD05> { [ Cyrillic_te, Cyrillic_TE,
170 trademark, trademark ] };
171 key <AD06> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,
173 key <AD07> { [ Cyrillic_u, Cyrillic_U ] };
174 key <AD08> { [ Cyrillic_i, Cyrillic_I,
176 key <AD09> { [ Cyrillic_o, Cyrillic_O ] };
177 key <AD10> { [ Cyrillic_pe, Cyrillic_PE ] };
178 key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] };
179 key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
182 key <AC01> { [ Cyrillic_a, Cyrillic_A ] };
183 key <AC02> { [ Cyrillic_es, Cyrillic_ES,
184 copyright, copyright ] };
185 key <AC03> { [ Cyrillic_de, Cyrillic_DE ] };
186 key <AC04> { [ Cyrillic_ef, Cyrillic_EF ] };
187 key <AC05> { [ Cyrillic_ghe, Cyrillic_GHE ] };
188 key <AC06> { [ Cyrillic_ha, Cyrillic_HA ] };
189 key <AC07> { [ Cyrillic_shorti, Cyrillic_SHORTI,
191 key <AC08> { [ Cyrillic_ka, Cyrillic_KA ] };
192 key <AC09> { [ Cyrillic_el, Cyrillic_EL ] };
193 key <AC10> { [ semicolon, colon,
194 ellipsis, ellipsis ] };
195 key <AC11> { [ apostrophe, quotedbl,
196 rightsinglequotemark, leftsinglequotemark ] };
197 key <BKSL> { [ Cyrillic_yu, Cyrillic_YU ] };
200 key <LSGT> { [ U045D, U040D ] };
201 key <AB01> { [ Cyrillic_ze, Cyrillic_ZE ] };
202 key <AB02> { [ Cyrillic_softsign, U045D,
203 Cyrillic_yeru, Cyrillic_YERU ] };
204 key <AB03> { [ Cyrillic_tse, Cyrillic_TSE,
205 copyright, copyright ] };
206 key <AB04> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
207 key <AB05> { [ Cyrillic_be, Cyrillic_BE ] };
208 key <AB06> { [ Cyrillic_en, Cyrillic_EN ] };
209 key <AB07> { [ Cyrillic_em, Cyrillic_EM ] };
210 key <AB08> { [ comma, doublelowquotemark,
211 guillemotleft, guillemotleft ] };
212 key <AB09> { [ period, leftdoublequotemark,
213 guillemotright, guillemotright ] };
214 key <AB10> { [ slash, question,
218 key <SPCE> { [ space, space,
219 nobreakspace, nobreakspace ] };
222 key <KPDL> { type[Group1] = "KEYPAD",
223 [ KP_Delete, KP_Separator ] };
227 // This is the Bulgarian phonetic keyboard acording to the proposed
228 // state standard BDS 5237:2006 with additional symbols in
230 partial alphanumeric_keys
231 xkb_symbols "bas_phonetic" {
232 include "bg(phonetic)"
233 name[Group1]= "Bulgarian (new phonetic)";
235 key <TLDE> { [ Cyrillic_yu, Cyrillic_YU ] };
236 key <AD01> { [ Cyrillic_che, Cyrillic_CHE ] };
237 key <AD02> { [ Cyrillic_sha, Cyrillic_SHA ] };
238 key <AD11> { [ Cyrillic_ya, Cyrillic_YA,
240 key <BKSL> { [ Cyrillic_softsign, U045D,
241 Cyrillic_yeru, Cyrillic_YERU ] };
242 key <AB02> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
243 key <AB04> { [ Cyrillic_ve, Cyrillic_VE ] };
247 // This is extended variant of the standard Latin QWERTY layout with
248 // additional symbols in levels 3 and 4.
249 partial hidden alphanumeric_keys
250 xkb_symbols "latin" {
252 key <TLDE> { [ grave, asciitilde,
254 key <AE01> { [ 1, exclam,
255 notsign, notsign ] };
256 key <AE02> { [ 2, at,
257 twosuperior, enfilledcircbullet ] };
258 key <AE03> { [ 3, numbersign,
259 threesuperior, notequal ] };
260 key <AE04> { [ 4, dollar,
261 EuroSign, sterling ] };
262 key <AE05> { [ 5, percent,
264 key <AE06> { [ 6, asciicircum,
265 logicaland, logicalor ] };
266 key <AE07> { [ 7, ampersand,
267 section, section ] };
268 key <AE08> { [ 8, asterisk,
269 infinity, multiply ] };
270 key <AE09> { [ 9, parenleft,
272 key <AE10> { [ 0, parenright,
274 key <AE11> { [ minus, underscore,
276 key <AE12> { [ equal, plus,
277 emdash, plusminus ] };
281 Greek_THETA, Greek_theta ] };
283 Greek_OMEGA, Greek_omega ] };
285 U2203, Greek_epsilon ] };
287 registered, Greek_rho ] };
289 trademark, Greek_tau ] };
291 yen, Greek_upsilon ] };
293 intersection, union ] };
295 integral, Greek_iota ] };
299 Greek_PI, Greek_pi ] };
300 key <AD11> { [ bracketleft, braceleft,
301 U2286, includedin ] };
302 key <AD12> { [ bracketright, braceright,
307 U2200, Greek_alpha ] };
309 Greek_SIGMA, Greek_sigma ] };
311 Greek_DELTA, Greek_delta ] };
313 Greek_PHI, Greek_phi ] };
315 Greek_GAMMA, Greek_gamma ] };
317 U2225, Greek_eta ] };
318 key <AC07> { [ j, J ] };
320 U03F0, Greek_kappa ] };
322 Greek_LAMBDA, Greek_lambda ] };
323 key <AC10> { [ semicolon, colon,
324 division, division ] };
325 key <AC11> { [ apostrophe, quotedbl,
326 leftdoublequotemark, rightdoublequotemark ] };
327 key <BKSL> { [ backslash, bar,
328 identical, downtack ] };
331 key <LSGT> { [ less, greater,
334 U2220, Greek_zeta ] };
336 Greek_XI, Greek_xi ] };
338 copyright, Greek_chi ] };
340 Greek_PSI, Greek_psi ] };
342 U03D1, Greek_beta ] };
346 Greek_mu, Greek_mu ] };
347 key <AB08> { [ comma, less,
349 key <AB09> { [ period, greater,
351 key <AB10> { [ slash, question,
352 leftsinglequotemark, rightsinglequotemark ] };
355 key <SPCE> { [ space, space,
356 nobreakspace, nobreakspace ] };
359 key <KPDL> { type[Group1] = "KEYPAD",
360 [ KP_Delete, KP_Decimal ] };