bg revision 1.1.1.7 1 //////////////////////////////////////////////////////////////////////////
2 // Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton (a] 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 // "bekl" - the enhanced variant of the Bulgarian BDS keyboard, proposed
28 // in May 2020.
29
30 // "latin" - an extended variant of the QWERTY layout with symbols that
31 // Bulgarian users will type while the keyboard is in Latin mode
32
33 // The reasons behind the layout of the symbols in levels 3 and 4 are
34 // explained in http://arxiv.org/abs/0905.0484 (in Bulgarian).
35
36 // Two notes for the maintainers of xkeyboard-config:
37
38 // 1. Please do not use key names such as <LatQ> for the Bulgarian
39 // phonetic layouts. The placement of the symbols must stay always
40 // the same regardless of which one of the alias sets in
41 // xkb/keycodes/aliases is used.
42
43 // 2. The layouts should not include level3(ralt_switch).
44
45 //////////////////////////////////////////////////////////////////////////
46
47 // Describes Bulgarian keyboard "BDS" modified according to the
48 // the new state standard BDS 5237:2006 and extended with symbols in
49 // levels 3 and 4.
50 default partial alphanumeric_keys
51 xkb_symbols "bds" {
52
53 name[Group1]= "Bulgarian";
54
55 key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]};
56 key <AE01> {[ 1, exclam ]};
57 key <AE02> {[ 2, question ]};
58 key <AE03> {[ 3, plus, dagger, dagger ]};
59 key <AE04> {[ 4, quotedbl ]};
60 key <AE05> {[ 5, percent, U2329, U232A ]};
61 key <AE06> {[ 6, equal, emdash, emdash ]};
62 key <AE07> {[ 7, colon, ellipsis, ellipsis ]};
63 key <AE08> {[ 8, slash, U0300, U0301 ]};
64 key <AE09> {[ 9, endash ]};
65 key <AE10> {[ 0, numerosign ]};
66 key <AE11> {[ minus, dollar, U2011, EuroSign ]};
67 key <AE12> {[ period, EuroSign ]};
68
69 key <AD01> {[ comma, Cyrillic_yeru, rightsinglequotemark, leftsinglequotemark ]};
70 key <AD02> {[ Cyrillic_u, Cyrillic_U ]};
71 key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
72 key <AD04> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
73 key <AD05> {[ Cyrillic_sha, Cyrillic_SHA ]};
74 key <AD06> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
75 key <AD07> {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]};
76 key <AD08> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]};
77 key <AD09> {[ Cyrillic_de, Cyrillic_DE ]};
78 key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]};
79 key <AD11> {[ Cyrillic_tse, Cyrillic_TSE ]};
80 key <AD12> {[ semicolon, section ]};
81
82 key <AC01> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
83 key <AC02> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
84 key <AC03> {[ Cyrillic_a, Cyrillic_A ]};
85 key <AC04> {[ Cyrillic_o, Cyrillic_O ]};
86 key <AC05> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
87 key <AC06> {[ Cyrillic_ghe, Cyrillic_GHE ]};
88 key <AC07> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
89 key <AC08> {[ Cyrillic_en, Cyrillic_EN ]};
90 key <AC09> {[ Cyrillic_ve, Cyrillic_VE ]};
91 key <AC10> {[ Cyrillic_em, Cyrillic_EM ]};
92 key <AC11> {[ Cyrillic_che, Cyrillic_CHE ]};
93 key <BKSL> {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]};
94
95 key <LSGT> {[ U045D, U040D ]};
96 key <AB01> {[ Cyrillic_yu, Cyrillic_YU ]};
97 key <AB02> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
98 key <AB03> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
99 key <AB04> {[ Cyrillic_e, Cyrillic_E ]};
100 key <AB05> {[ Cyrillic_ef, Cyrillic_EF ]};
101 key <AB06> {[ Cyrillic_ha, Cyrillic_HA ]};
102 key <AB07> {[ Cyrillic_pe, Cyrillic_PE ]};
103 key <AB08> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
104 key <AB09> {[ Cyrillic_el, Cyrillic_EL ]};
105 key <AB10> {[ Cyrillic_be, Cyrillic_BE ]};
106
107 key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
108
109 key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
110 };
111
112 // This is an improved variant of the traditional Bulgarian phonetic
113 // keyboard. Some unnecessary symbols in levels 1 and 2 are replaced
114 // by more useful ones (similar as in "bas_phonetic") and additional
115 // symbols are added in levels 3 and 4.
116 partial alphanumeric_keys
117 xkb_symbols "phonetic" {
118 name[Group1]= "Bulgarian (traditional phonetic)";
119
120 key <TLDE> {[ Cyrillic_che, Cyrillic_CHE ]};
121 key <AE01> {[ 1, exclam ]};
122 key <AE02> {[ 2, at ]};
123 key <AE03> {[ 3, numerosign ]};
124 key <AE04> {[ 4, dollar, EuroSign, EuroSign ]};
125 key <AE05> {[ 5, percent ]};
126 key <AE06> {[ 6, EuroSign ]};
127 key <AE07> {[ 7, section ]};
128 key <AE08> {[ 8, asterisk ]};
129 key <AE09> {[ 9, parenleft, bracketleft, U2329 ]};
130 key <AE10> {[ 0, parenright, bracketright, U232A ]};
131 key <AE11> {[ minus, endash, U2011, U2011 ]};
132 key <AE12> {[ equal, plus, emdash, dagger ]};
133
134 key <AD01> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
135 key <AD02> {[ Cyrillic_ve, Cyrillic_VE ]};
136 key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
137 key <AD04> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
138 key <AD05> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
139 key <AD06> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
140 key <AD07> {[ Cyrillic_u, Cyrillic_U ]};
141 key <AD08> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
142 key <AD09> {[ Cyrillic_o, Cyrillic_O ]};
143 key <AD10> {[ Cyrillic_pe, Cyrillic_PE ]};
144 key <AD11> {[ Cyrillic_sha, Cyrillic_SHA ]};
145 key <AD12> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
146
147 key <AC01> {[ Cyrillic_a, Cyrillic_A ]};
148 key <AC02> {[ Cyrillic_es, Cyrillic_ES, copyright, copyright ]};
149 key <AC03> {[ Cyrillic_de, Cyrillic_DE ]};
150 key <AC04> {[ Cyrillic_ef, Cyrillic_EF ]};
151 key <AC05> {[ Cyrillic_ghe, Cyrillic_GHE ]};
152 key <AC06> {[ Cyrillic_ha, Cyrillic_HA ]};
153 key <AC07> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
154 key <AC08> {[ Cyrillic_ka, Cyrillic_KA ]};
155 key <AC09> {[ Cyrillic_el, Cyrillic_EL ]};
156 key <AC10> {[ semicolon, colon, ellipsis, ellipsis ]};
157 key <AC11> {[ apostrophe, quotedbl, rightsinglequotemark, leftsinglequotemark ]};
158 key <BKSL> {[ Cyrillic_yu, Cyrillic_YU ]};
159
160 key <LSGT> {[ U045D, U040D ]};
161 key <AB01> {[ Cyrillic_ze, Cyrillic_ZE ]};
162 key <AB02> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
163 key <AB03> {[ Cyrillic_tse, Cyrillic_TSE, copyright, copyright ]};
164 key <AB04> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
165 key <AB05> {[ Cyrillic_be, Cyrillic_BE ]};
166 key <AB06> {[ Cyrillic_en, Cyrillic_EN ]};
167 key <AB07> {[ Cyrillic_em, Cyrillic_EM ]};
168 key <AB08> {[ comma, less, doublelowquotemark, guillemotleft ]};
169 key <AB09> {[ period, greater, leftdoublequotemark, guillemotright ]};
170 key <AB10> {[ slash, question, U0300, U0301 ]};
171
172 key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
173
174 key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
175 };
176
177 // This is the Bulgarian phonetic keyboard according to the proposed
178 // state standard BDS 5237:2006 with additional symbols in levels 3 and 4.
179 partial alphanumeric_keys
180 xkb_symbols "bas_phonetic" {
181 include "bg(phonetic)"
182 name[Group1]= "Bulgarian (new phonetic)";
183
184 key <TLDE> {[ Cyrillic_yu, Cyrillic_YU ]};
185 key <AD01> {[ Cyrillic_che, Cyrillic_CHE ]};
186 key <AD02> {[ Cyrillic_sha, Cyrillic_SHA ]};
187 key <AD11> {[ Cyrillic_ya, Cyrillic_YA, U0463, U0462 ]};
188 key <BKSL> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
189 key <AB02> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
190 key <AB04> {[ Cyrillic_ve, Cyrillic_VE ]};
191 };
192
193 // This is an enhanced variant of the Bulgarian BDS keyboard, proposed
194 // in May 2020 by a group of more than 500 linguists, teachers, writers,
195 // translators, IT specialists, professors and many more.
196 partial alphanumeric_keys
197 xkb_symbols "bekl" {
198
199 name[Group1]= "Bulgarian (enhanced)";
200
201 key <TLDE> {[ parenleft, parenright, bracketleft, bracketright ]};
202 key <AE01> {[ 1, exclam ]};
203 key <AE02> {[ 2, question, U0040, U0040 ]};
204 key <AE03> {[ 3, plus, dagger, dagger ]};
205 key <AE04> {[ 4, quotedbl ]};
206 key <AE05> {[ 5, percent, U2329, U232A ]};
207 key <AE06> {[ 6, equal, emdash, emdash ]};
208 key <AE07> {[ 7, colon, ellipsis, ellipsis ]};
209 key <AE08> {[ 8, slash, U0300, U0301 ]};
210 key <AE09> {[ 9, endash ]};
211 key <AE10> {[ 0, numerosign ]};
212 key <AE11> {[ minus, dollar, U2011, EuroSign ]};
213 key <AE12> {[ period, EuroSign ]};
214
215 key <AD01> {[ comma, U02BC ]};
216 key <AD02> {[ Cyrillic_u, Cyrillic_U ]};
217 key <AD03> {[ Cyrillic_ie, Cyrillic_IE, Cyrillic_e, Cyrillic_E ]};
218 key <AD04> {[ Cyrillic_i, Cyrillic_I, U045D, U040D ]};
219 key <AD05> {[ Cyrillic_sha, Cyrillic_SHA ]};
220 key <AD06> {[ Cyrillic_shcha, Cyrillic_SHCHA ]};
221 key <AD07> {[ Cyrillic_ka, Cyrillic_KA, copyright, copyright ]};
222 key <AD08> {[ Cyrillic_es, Cyrillic_ES ]};
223 key <AD09> {[ Cyrillic_de, Cyrillic_DE ]};
224 key <AD10> {[ Cyrillic_ze, Cyrillic_ZE ]};
225 key <AD11> {[ Cyrillic_tse, Cyrillic_TSE ]};
226 key <AD12> {[ semicolon, section ]};
227
228 key <AC01> {[ Cyrillic_softsign, U045D, Cyrillic_yeru, Cyrillic_YERU ]};
229 key <AC02> {[ Cyrillic_ya, Cyrillic_YA ]};
230 key <AC03> {[ Cyrillic_a, Cyrillic_A ]};
231 key <AC04> {[ Cyrillic_o, Cyrillic_O ]};
232 key <AC05> {[ Cyrillic_zhe, Cyrillic_ZHE ]};
233 key <AC06> {[ Cyrillic_ghe, Cyrillic_GHE ]};
234 key <AC07> {[ Cyrillic_te, Cyrillic_TE, trademark, trademark ]};
235 key <AC08> {[ Cyrillic_en, Cyrillic_EN ]};
236 key <AC09> {[ Cyrillic_ve, Cyrillic_VE ]};
237 key <AC10> {[ Cyrillic_em, Cyrillic_EM ]};
238 key <AC11> {[ Cyrillic_che, Cyrillic_CHE ]};
239 key <BKSL> {[ doublelowquotemark, leftdoublequotemark, guillemotleft, guillemotright ]};
240
241 key <LSGT> {[ U045D, U040D ]};
242 key <AB01> {[ Cyrillic_yu, Cyrillic_YU ]};
243 key <AB02> {[ Cyrillic_shorti, Cyrillic_SHORTI, U046D, U046C ]};
244 key <AB03> {[ Cyrillic_hardsign, Cyrillic_HARDSIGN, U046B, U046A ]};
245 key <AB04> {[ U0463, U0462 ]};
246 key <AB05> {[ Cyrillic_ef, Cyrillic_EF ]};
247 key <AB06> {[ Cyrillic_ha, Cyrillic_HA ]};
248 key <AB07> {[ Cyrillic_pe, Cyrillic_PE ]};
249 key <AB08> {[ Cyrillic_er, Cyrillic_ER, registered, registered ]};
250 key <AB09> {[ Cyrillic_el, Cyrillic_EL ]};
251 key <AB10> {[ Cyrillic_be, Cyrillic_BE ]};
252
253 key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
254
255 key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Separator ]};
256 };
257
258
259 // This is an extended variant of the standard Latin QWERTY layout with
260 // additional symbols in levels 3 and 4.
261 hidden partial alphanumeric_keys
262 xkb_symbols "latin" {
263
264 key <TLDE> {[ grave, asciitilde, U2248, U2245 ]};
265 key <AE01> {[ 1, exclam, notsign, notsign ]};
266 key <AE02> {[ 2, at, twosuperior, enfilledcircbullet ]};
267 key <AE03> {[ 3, numbersign, threesuperior, notequal ]};
268 key <AE04> {[ 4, dollar, EuroSign, sterling ]};
269 key <AE05> {[ 5, percent, U2030, U2030 ]};
270 key <AE06> {[ 6, asciicircum, logicaland, logicalor ]};
271 key <AE07> {[ 7, ampersand, section, section ]};
272 key <AE08> {[ 8, asterisk, infinity, multiply ]};
273 key <AE09> {[ 9, parenleft, U2202, nabla ]};
274 key <AE10> {[ 0, parenright, U2300, U2300 ]};
275 key <AE11> {[ minus, underscore, U2011, endash ]};
276 key <AE12> {[ equal, plus, emdash, plusminus ]};
277
278 key <AD01> {[ q, Q, Greek_THETA, Greek_theta ]};
279 key <AD02> {[ w, W, Greek_OMEGA, Greek_omega ]};
280 key <AD03> {[ e, E, U2203, Greek_epsilon ]};
281 key <AD04> {[ r, R, registered, Greek_rho ]};
282 key <AD05> {[ t, T, trademark, Greek_tau ]};
283 key <AD06> {[ y, Y, yen, Greek_upsilon ]};
284 key <AD07> {[ u, U, intersection, union ]};
285 key <AD08> {[ i, I, integral, Greek_iota ]};
286 key <AD09> {[ o, O, degree, U222E ]};
287 key <AD10> {[ p, P, Greek_PI, Greek_pi ]};
288 key <AD11> {[ bracketleft, braceleft, U2286, includedin ]};
289 key <AD12> {[ bracketright, braceright, U2208, U2209 ]};
290
291 key <AC01> {[ a, A, U2200, Greek_alpha ]};
292 key <AC02> {[ s, S, Greek_SIGMA, Greek_sigma ]};
293 key <AC03> {[ d, D, Greek_DELTA, Greek_delta ]};
294 key <AC04> {[ f, F, Greek_PHI, Greek_phi ]};
295 key <AC05> {[ g, G, Greek_GAMMA, Greek_gamma ]};
296 key <AC06> {[ h, H, U2225, Greek_eta ]};
297 key <AC07> {[ j, J ]};
298 key <AC08> {[ k, K, U03F0, Greek_kappa ]};
299 key <AC09> {[ l, L, Greek_LAMBDA, Greek_lambda ]};
300 key <AC10> {[ semicolon, colon, division, division ]};
301 key <AC11> {[ apostrophe, quotedbl, leftdoublequotemark, rightdoublequotemark]};
302 key <BKSL> {[ backslash, bar, identical, downtack ]};
303
304 key <LSGT> {[ less, greater, U2266, U2267 ]};
305 key <AB01> {[ z, Z, U2220, Greek_zeta ]};
306 key <AB02> {[ x, X, Greek_XI, Greek_xi ]};
307 key <AB03> {[ c, C, copyright, Greek_chi ]};
308 key <AB04> {[ v, V, Greek_PSI, Greek_psi ]};
309 key <AB05> {[ b, B, U03D1, Greek_beta ]};
310 key <AB06> {[ n, N, U207F, Greek_nu ]};
311 key <AB07> {[ m, M, Greek_mu, Greek_mu ]};
312 key <AB08> {[ comma, less, U2266, U21D4 ]};
313 key <AB09> {[ period, greater, U2267, U21D2 ]};
314 key <AB10> {[ slash, question, leftsinglequotemark, rightsinglequotemark]};
315
316 key <SPCE> {[ space, space, nobreakspace, nobreakspace ]};
317
318 key <KPDL> { type[Group1] = "KEYPAD", [ KP_Delete, KP_Decimal ]};
319 };
320