bg revision bfd7cbc1
1e52adb7bSmrg//////////////////////////////////////////////////////////////////////////
2e52adb7bSmrg// Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev <anton@lml.bas.bg>
3e52adb7bSmrg//
4e52adb7bSmrg// This software may be used, modified, copied, distributed, and sold,
5e52adb7bSmrg// both in source and binary form provided that the above copyright
6e52adb7bSmrg// notice and these terms are retained. The name of the author may not
7e52adb7bSmrg// be used to endorse or promote products derived from this software
8e52adb7bSmrg// without prior permission.  THIS SOFTWARE IS PROVIDES "AS IS" AND
9e52adb7bSmrg// ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED.  IN NO EVENT
10e52adb7bSmrg// SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT
11e52adb7bSmrg// OF THE USE OF THIS SOFTWARE.
12e52adb7bSmrg//
13e52adb7bSmrg////////////////////////////////////////////////////////////////////////// 
14e52adb7bSmrg// Version 2.0
15e52adb7bSmrg
16e52adb7bSmrg// The following variants are defined in this file:
17e52adb7bSmrg
18e52adb7bSmrg// "bds" - the BDS keyboard layout compliant with the proposed
19e52adb7bSmrg//         Bulgarian state standard BDS 5237:2006
20e52adb7bSmrg
21e52adb7bSmrg// "phonetic" - Bulgarian phonetic layout with traditional position of
22e52adb7bSmrg//              the letters.
23e52adb7bSmrg
24e52adb7bSmrg// "bas_phonetic" - the phonetic keyboard layout compliant with the
25e52adb7bSmrg//                  proposed Bulgarian state standard BDS 5237:2006
26e52adb7bSmrg
27e52adb7bSmrg// "latin" - an extended variant of the QWERTY layout with symbols
28e52adb7bSmrg//           Bulgarian users will type while the keyboard is in Latin mode.
29e52adb7bSmrg
30e52adb7bSmrg// The reasons behind the layout of the symbols in levels 3 and 4 are
31ca86eba8Smrg// explained in http://arxiv.org/abs/0905.0484  (in Bulgarian).
32ca86eba8Smrg
33ca86eba8Smrg// Two notes for the maintainers of xkeyboard-config:
34ca86eba8Smrg
35ca86eba8Smrg// 1. Please do not use key names such as <LatQ> for the Bulgarian
36e52adb7bSmrg// phonetic layouts.  The placement of the symbols must stay always
37e52adb7bSmrg// the same regardless of which one of the alias sets in
38e52adb7bSmrg// xkb/keycodes/aliases is used.
39e52adb7bSmrg
40e52adb7bSmrg// 2. The layouts should not include level3(ralt_switch).
41e52adb7bSmrg
42e52adb7bSmrg////////////////////////////////////////////////////////////////////////// 
43e52adb7bSmrg
44e52adb7bSmrg// Describes Bulgarian keyboard "BDS" modified according to the
45e52adb7bSmrg// the new state standard BDS 5237:2006 and extended with symbols in
46e52adb7bSmrg// levels 3 and 4.
47e52adb7bSmrgpartial default alphanumeric_keys
48e52adb7bSmrgxkb_symbols "bds" {
49e52adb7bSmrg
50e52adb7bSmrg  name[Group1]= "Bulgarian";
51e52adb7bSmrg  
52e52adb7bSmrg  key <TLDE> {   [ parenleft,         parenright,
53e52adb7bSmrg		   bracketleft,       bracketright        ]    };
54e52adb7bSmrg  key <AE01> {   [ 1,                 exclam              ]    };
55e52adb7bSmrg  key <AE02> {   [ 2,                 question            ]    };
56e52adb7bSmrg  key <AE03> {   [ 3,                 plus,
57e52adb7bSmrg		   dagger,            dagger              ]    };
58e52adb7bSmrg  key <AE04> {   [ 4,                 quotedbl            ]    };
59e52adb7bSmrg  key <AE05> {   [ 5,                 percent,
60e52adb7bSmrg		   U2329,             U232A               ]    };
61e52adb7bSmrg  key <AE06> {   [ 6,                 equal,
62e52adb7bSmrg		   emdash,            emdash              ]    };
63e52adb7bSmrg  key <AE07> {   [ 7,                 colon,
64e52adb7bSmrg		   ellipsis,          ellipsis            ]    };
65e52adb7bSmrg  key <AE08> {   [ 8,                 slash,
66e52adb7bSmrg		   U0300,             U0301               ]    };
67e52adb7bSmrg  key <AE09> {   [ 9,                 endash              ]    };
68e52adb7bSmrg  key <AE10> {   [ 0,                 numerosign          ]    };
69e52adb7bSmrg  key <AE11> {   [ minus,             dollar,
70e52adb7bSmrg		   U2011,             EuroSign            ]    };
71e52adb7bSmrg  key <AE12> {   [ period,            EuroSign            ]    };
72e52adb7bSmrg
73e52adb7bSmrg
74e52adb7bSmrg  key <AD01> {   [ comma,             Cyrillic_yeru,
75e52adb7bSmrg		   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,
80		   U045D,             U040D               ]    };
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             ]    };
91
92
93  key <AC01> {   [ Cyrillic_softsign, U045D,
94		   Cyrillic_yeru,     Cyrillic_YERU       ]    };
95  key <AC02> {   [ Cyrillic_ya,       Cyrillic_YA,
96		   U0463,             U0462               ]    };
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      ]    };
109
110
111  key <LSGT> {   [ U045D,             U040D               ]    };
112  key <AB01> {   [ Cyrillic_yu,       Cyrillic_YU         ]    };
113  key <AB02> {   [ Cyrillic_shorti,   Cyrillic_SHORTI,
114		   U046D,             U046C               ]    };
115  key <AB03> {   [ Cyrillic_hardsign, Cyrillic_HARDSIGN,
116		   U046B,             U046A               ]    };
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         ]    };
125
126
127  key <SPCE> {   [ space,             space,
128		   nobreakspace,      nobreakspace        ]    };
129    
130
131  key <KPDL> {   type[Group1] = "KEYPAD",
132                 [ KP_Delete,         KP_Separator        ]    };
133};
134
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.
139partial alphanumeric_keys 
140xkb_symbols "phonetic" {
141  name[Group1]= "Bulgarian (traditional phonetic)";
142  
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,
158		   U2011,             U2011               ]    };
159  key <AE12> {   [ equal,             plus,
160		   emdash,            dagger              ]    };
161
162  key <AD01> {   [ Cyrillic_ya,       Cyrillic_YA,
163		   U0463,             U0462               ]    };
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,
172		   U046B,             U046A               ]    };
173  key <AD07> {   [ Cyrillic_u,        Cyrillic_U          ]    };
174  key <AD08> {   [ Cyrillic_i,        Cyrillic_I,
175		   U045D,             U040D               ]    };
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      ]    };
180  
181  
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,
190		   U046D,             U046C               ]    };
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         ]    };
198  
199  
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,
215		   U0300,             U0301               ]    };
216
217
218  key <SPCE> {   [ space,             space,
219		   nobreakspace,      nobreakspace        ]    };
220
221
222  key <KPDL> {   type[Group1] = "KEYPAD",
223                 [ KP_Delete,           KP_Separator         ]    };
224
225};
226
227// This is the Bulgarian phonetic keyboard acording to the proposed
228// state standard BDS 5237:2006 with additional symbols in
229// levels 3 and 4.
230partial alphanumeric_keys 
231xkb_symbols "bas_phonetic" {
232  include "bg(phonetic)"
233  name[Group1]= "Bulgarian (new phonetic)";
234  
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,
239		   U0463,             U0462               ]    };
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         ]    };
244};
245
246
247// This is extended variant of the standard Latin QWERTY layout with
248// additional symbols in levels 3 and 4.
249partial hidden alphanumeric_keys 
250xkb_symbols "latin" {
251  
252  key <TLDE> {   [ grave,             asciitilde,
253		   U2248,             U2245               ]    };
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,
263		   U2030,             U2030               ]    };
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,
271		   U2202,             nabla               ]    };
272  key <AE10> {   [ 0,                 parenright,
273		   U2300,             U2300               ]    };
274  key <AE11> {   [ minus,             underscore,
275		   U2011,             endash              ]    };
276  key <AE12> {   [ equal,             plus,
277		   emdash,            plusminus           ]    };
278
279
280  key <AD01> {   [ q,                 Q,
281		   Greek_THETA,       Greek_theta         ]    };
282  key <AD02> {   [ w,                 W,
283		   Greek_OMEGA,       Greek_omega         ]    };
284  key <AD03> {   [ e,                 E,
285		   U2203,             Greek_epsilon       ]    };
286  key <AD04> {   [ r,                 R,
287		   registered,        Greek_rho           ]    };
288  key <AD05> {   [ t,                 T,
289		   trademark,         Greek_tau           ]    };
290  key <AD06> {   [ y,                 Y,
291		   yen,               Greek_upsilon       ]    };
292  key <AD07> {   [ u,                 U,
293		   intersection,      union               ]    };
294  key <AD08> {   [ i,                 I,
295		   integral,          Greek_iota          ]    };
296  key <AD09> {   [ o,                 O,
297		   degree,            U222E               ]    };
298  key <AD10> {   [ p,                 P,
299		   Greek_PI,          Greek_pi            ]    };
300  key <AD11> {   [ bracketleft,       braceleft,
301		   U2286,             includedin          ]    };
302  key <AD12> {   [ bracketright,      braceright,
303		   U2208,             U2209               ]    };
304
305
306  key <AC01> {   [ a,                 A,
307		   U2200,             Greek_alpha         ]    };
308  key <AC02> {   [ s,                 S,
309		   Greek_SIGMA,       Greek_sigma         ]    };
310  key <AC03> {   [ d,                 D,
311		   Greek_DELTA,       Greek_delta         ]    };
312  key <AC04> {   [ f,                 F,
313		   Greek_PHI,         Greek_phi           ]    };
314  key <AC05> {   [ g,                 G,
315		   Greek_GAMMA,       Greek_gamma         ]    };
316  key <AC06> {   [ h,                 H,
317		   U2225,             Greek_eta           ]    };
318  key <AC07> {   [ j,                 J                   ]    };
319  key <AC08> {   [ k,                 K,
320		   U03F0,             Greek_kappa         ]    };
321  key <AC09> {   [ l,                 L,
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            ]    };
329
330
331  key <LSGT> {   [ less,              greater,
332		   U2266,             U2267               ]    };
333  key <AB01> {   [ z,                 Z,
334		   U2220,             Greek_zeta          ]    };
335  key <AB02> {   [ x,                 X,
336		   Greek_XI,          Greek_xi            ]    };
337  key <AB03> {   [ c,                 C,
338		   copyright,         Greek_chi           ]    };
339  key <AB04> {   [ v,                 V,
340		   Greek_PSI,         Greek_psi           ]    };
341  key <AB05> {   [ b,                 B,
342		   U03D1,             Greek_beta          ]    };
343  key <AB06> {   [ n,                 N,
344		   U207F,             Greek_nu            ]    };
345  key <AB07> {   [ m,                 M,
346		   Greek_mu,          Greek_mu            ]    };
347  key <AB08> {   [ comma,             less,
348		   U2266,             U21D4               ]    };
349  key <AB09> {   [ period,            greater,
350		   U2267,             U21D2               ]    };
351  key <AB10> {   [ slash,             question,
352		   leftsinglequotemark, rightsinglequotemark ] };
353
354
355  key <SPCE> {   [ space,             space,
356		   nobreakspace,      nobreakspace        ]    };
357
358
359  key <KPDL> {   type[Group1] = "KEYPAD",
360                 [ KP_Delete,           KP_Decimal        ]    };
361};
362