3
// based on a keyboard map:
5
1
//////////////////////////////////////////////////////////////////////////
6
// Copyright (C) 1999, 2000 by Anton Zinoviev <anton@lml.bas.bg>
2
// Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton@lml.bas.bg>
8
4
// This software may be used, modified, copied, distributed, and sold,
9
// in both source and binary form provided that the above copyright
10
// and these terms are retained. Under no circumstances is the author
11
// responsible for the proper functioning of this software, nor does
12
// the author assume any responsibility for damages incurred with its
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.
15
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
18
47
partial default alphanumeric_keys
19
48
xkb_symbols "bds" {
20
// BDS is the Bulgarian Institute for Standardization
22
50
name[Group1]= "Bulgaria";
24
key <TLDE> { [ parenleft, parenright ] };
52
key <TLDE> { [ parenleft, parenright,
53
bracketleft, bracketright ] };
25
54
key <AE01> { [ 1, exclam ] };
26
55
key <AE02> { [ 2, question ] };
27
key <AE03> { [ 3, plus ] };
56
key <AE03> { [ 3, plus,
28
58
key <AE04> { [ 4, quotedbl ] };
29
key <AE05> { [ 5, percent ] };
30
key <AE06> { [ 6, equal ] };
31
key <AE07> { [ 7, colon ] };
32
key <AE08> { [ 8, slash ] };
33
key <AE09> { [ 9, emdash ] };
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 ] };
34
68
key <AE10> { [ 0, numerosign ] };
35
key <AE11> { [ minus, I ] };
36
key <AE12> { [ period, V ] };
38
key <AD01> { [ comma, Cyrillic_yeru ] };
69
key <AE11> { [ minus, dollar,
71
key <AE12> { [ period, EuroSign ] };
74
key <AD01> { [ comma, Cyrillic_yeru,
75
rightsinglequotemark, leftsinglequotemark ] };
39
76
key <AD02> { [ Cyrillic_u, Cyrillic_U ] };
40
key <AD03> { [ Cyrillic_ie, Cyrillic_IE ] };
41
key <AD04> { [ Cyrillic_i, Cyrillic_I ] };
77
key <AD03> { [ Cyrillic_ie, Cyrillic_IE,
78
Cyrillic_e, Cyrillic_E ] };
79
key <AD04> { [ Cyrillic_i, Cyrillic_I,
42
81
key <AD05> { [ Cyrillic_sha, Cyrillic_SHA ] };
43
82
key <AD06> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
44
key <AD07> { [ Cyrillic_ka, Cyrillic_KA ] };
45
key <AD08> { [ Cyrillic_es, Cyrillic_ES ] };
83
key <AD07> { [ Cyrillic_ka, Cyrillic_KA,
84
copyright, copyright ] };
85
key <AD08> { [ Cyrillic_es, Cyrillic_ES,
86
copyright, copyright ] };
46
87
key <AD09> { [ Cyrillic_de, Cyrillic_DE ] };
47
88
key <AD10> { [ Cyrillic_ze, Cyrillic_ZE ] };
48
89
key <AD11> { [ Cyrillic_tse, Cyrillic_TSE ] };
49
90
key <AD12> { [ semicolon, section ] };
51
key <AC01> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
52
key <AC02> { [ Cyrillic_ya, Cyrillic_YA ] };
93
key <AC01> { [ Cyrillic_softsign, U045D,
94
Cyrillic_yeru, Cyrillic_YERU ] };
95
key <AC02> { [ Cyrillic_ya, Cyrillic_YA,
53
97
key <AC03> { [ Cyrillic_a, Cyrillic_A ] };
54
98
key <AC04> { [ Cyrillic_o, Cyrillic_O ] };
55
99
key <AC05> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
56
100
key <AC06> { [ Cyrillic_ghe, Cyrillic_GHE ] };
57
key <AC07> { [ Cyrillic_te, Cyrillic_TE ] };
101
key <AC07> { [ Cyrillic_te, Cyrillic_TE,
102
trademark, trademark ] };
58
103
key <AC08> { [ Cyrillic_en, Cyrillic_EN ] };
59
104
key <AC09> { [ Cyrillic_ve, Cyrillic_VE ] };
60
105
key <AC10> { [ Cyrillic_em, Cyrillic_EM ] };
61
106
key <AC11> { [ Cyrillic_che, Cyrillic_CHE ] };
62
key <BKSL> { [ apostrophe, Cyrillic_YERU ] };
107
key <BKSL> { [ doublelowquotemark, leftdoublequotemark,
108
guillemotleft, guillemotright ] };
111
key <LSGT> { [ U045D, U040D ] };
64
112
key <AB01> { [ Cyrillic_yu, Cyrillic_YU ] };
65
key <AB02> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
66
key <AB03> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
113
key <AB02> { [ Cyrillic_shorti, Cyrillic_SHORTI,
115
key <AB03> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,
67
117
key <AB04> { [ Cyrillic_e, Cyrillic_E ] };
68
118
key <AB05> { [ Cyrillic_ef, Cyrillic_EF ] };
69
119
key <AB06> { [ Cyrillic_ha, Cyrillic_HA ] };
70
120
key <AB07> { [ Cyrillic_pe, Cyrillic_PE ] };
71
key <AB08> { [ Cyrillic_er, Cyrillic_ER ] };
121
key <AB08> { [ Cyrillic_er, Cyrillic_ER,
122
registered, registered ] };
72
123
key <AB09> { [ Cyrillic_el, Cyrillic_EL ] };
73
124
key <AB10> { [ Cyrillic_be, Cyrillic_BE ] };
127
key <SPCE> { [ space, space,
128
nobreakspace, nobreakspace ] };
75
// End alphanumeric section
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.
79
139
partial alphanumeric_keys
80
140
xkb_symbols "phonetic" {
82
name[Group1]= "Bulgaria - Phonetic";
141
name[Group1]= "Bulgaria - Traditional phonetic";
84
143
key <TLDE> { [ Cyrillic_che, Cyrillic_CHE ] };
85
144
key <AE01> { [ 1, exclam ] };
86
145
key <AE02> { [ 2, at ] };
87
key <AE03> { [ 3, numbersign ] };
88
key <AE04> { [ 4, dollar ] };
146
key <AE03> { [ 3, numerosign ] };
147
key <AE04> { [ 4, dollar,
148
EuroSign, EuroSign ] };
89
149
key <AE05> { [ 5, percent ] };
90
key <AE06> { [ 6, asciicircum ] };
91
key <AE07> { [ 7, ampersand ] };
150
key <AE06> { [ 6, EuroSign ] };
151
key <AE07> { [ 7, section ] };
92
152
key <AE08> { [ 8, asterisk ] };
93
key <AE09> { [ 9, parenleft ] };
94
key <AE10> { [ 0, parenright ] };
95
key <AE11> { [ minus, underscore ] };
96
key <AE12> { [ equal, plus ] };
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,
98
key <LatQ> { [ Cyrillic_ya, Cyrillic_YA ] };
99
key <LatW> { [ Cyrillic_ve, Cyrillic_VE ] };
100
key <LatE> { [ Cyrillic_ie, Cyrillic_IE ] };
101
key <LatR> { [ Cyrillic_er, Cyrillic_ER ] };
102
key <LatT> { [ Cyrillic_te, Cyrillic_TE ] };
103
key <LatY> { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
104
key <LatU> { [ Cyrillic_u, Cyrillic_U ] };
105
key <LatI> { [ Cyrillic_i, Cyrillic_I ] };
106
key <LatO> { [ Cyrillic_o, Cyrillic_O ] };
107
key <LatP> { [ Cyrillic_pe, Cyrillic_PE ] };
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 ] };
108
178
key <AD11> { [ Cyrillic_sha, Cyrillic_SHA ] };
109
179
key <AD12> { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
111
key <LatA> { [ Cyrillic_a, Cyrillic_A ] };
112
key <LatS> { [ Cyrillic_es, Cyrillic_ES ] };
113
key <LatD> { [ Cyrillic_de, Cyrillic_DE ] };
114
key <LatF> { [ Cyrillic_ef, Cyrillic_EF ] };
115
key <LatG> { [ Cyrillic_ghe, Cyrillic_GHE ] };
116
key <LatH> { [ Cyrillic_ha, Cyrillic_HA ] };
117
key <LatJ> { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
118
key <LatK> { [ Cyrillic_ka, Cyrillic_KA ] };
119
key <LatL> { [ Cyrillic_el, Cyrillic_EL ] };
120
key <AC10> { [ semicolon, colon ] };
121
key <AC11> { [ quoteright, quotedbl ] };
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 ] };
122
197
key <BKSL> { [ Cyrillic_yu, Cyrillic_YU ] };
124
key <LatZ> { [ Cyrillic_ze, Cyrillic_ZE ] };
125
key <LatX> { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
126
key <LatC> { [ Cyrillic_tse, Cyrillic_TSE ] };
127
key <LatV> { [ Cyrillic_zhe, Cyrillic_ZHE ] };
128
key <LatB> { [ Cyrillic_be, Cyrillic_BE ] };
129
key <LatN> { [ Cyrillic_en, Cyrillic_EN ] };
130
key <LatM> { [ Cyrillic_em, Cyrillic_EM ] };
131
key <AB08> { [ comma, less ] };
132
key <AB09> { [ period, greater ] };
133
key <AB10> { [ slash, question ] };
135
// End alphanumeric section
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]= "Bulgaria - 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 ] };