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