diff --git a/rules/base.xml.in b/rules/base.xml.in
index 5d0eb91..80ec3a3 100644
--- a/rules/base.xml.in
+++ b/rules/base.xml.in
@@ -1771,7 +1771,7 @@
phonetic
- <_description>Traditional Phonetic
+ <_description>Traditional phonetic
@@ -1779,7 +1779,7 @@
bas_phonetic
- <_description>Standard Phonetic
+ <_description>New phonetic
diff --git a/symbols/bg b/symbols/bg
index 4e4ca07..cf737a0 100644
--- a/symbols/bg
+++ b/symbols/bg
@@ -1,212 +1,364 @@
//////////////////////////////////////////////////////////////////////////
-// Copyright (C) 1999, 2000, 2005 by Anton Zinoviev
+// Copyright (C) 1999, 2000, 2007, 2009 by Anton Zinoviev
//
// This software may be used, modified, copied, distributed, and sold,
-// in both source and binary form provided that the above copyright
-// and these terms are retained. Under no circumstances is the author
-// responsible for the proper functioning of this software, nor does
-// the author assume any responsibility for damages incurred with its
-// use.
+// both in source and binary form provided that the above copyright
+// notice and these terms are retained. The name of the author may not
+// be used to endorse or promote products derived from this software
+// without prior permission. THIS SOFTWARE IS PROVIDES "AS IS" AND
+// ANY EXPRESS OR IMPLIED WARRANTIES ARE DISCLAIMED. IN NO EVENT
+// SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES ARISING IN ANY WAY OUT
+// OF THE USE OF THIS SOFTWARE.
//
//////////////////////////////////////////////////////////////////////////
-// Version 1.9-BAN
+// Version 2.0
+// The following variants are defined in this file:
+
+// "bds" - the BDS keyboard layout compliant with the proposed
+// Bulgarian state standard BDS 5237:2006
+
+// "phonetic" - Bulgarian phonetic layout with traditional position of
+// the letters.
+
+// "bas_phonetic" - the phonetic keyboard layout compliant with the
+// proposed Bulgarian state standard BDS 5237:2006
+
+// "latin" - an extended variant of the QWERTY layout with symbols
+// Bulgarian users will type while the keyboard is in Latin mode.
+
+// The reasons behind the layout of the symbols in levels 3 and 4 are
+// explained in http://arxiv.org/abs/0905.0484 (in Bulgarian).
+
+// Two notes for the maintainers of xkeyboard-config:
+
+// 1. Please do not use key names such as for the Bulgarian
+// phonetic layouts. The placement of the symbols must stay always
+// the same regardless of which one of the alias sets in
+// xkb/keycodes/aliases is used.
+
+// 2. The layouts should not include level3(ralt_switch).
+
+//////////////////////////////////////////////////////////////////////////
+
+// Describes Bulgarian keyboard "BDS" modified according to the
+// the new state standard BDS 5237:2006 and extended with symbols in
+// levels 3 and 4.
partial default alphanumeric_keys
xkb_symbols "bds" {
+
name[Group1]= "Bulgaria";
-key.type[Group1] = "TWO_LEVEL";
- key { [ parenleft, parenright ] };
+ key { [ parenleft, parenright,
+ bracketleft, bracketright ] };
key { [ 1, exclam ] };
key { [ 2, question ] };
- key { [ 3, plus ] };
+ key { [ 3, plus,
+ dagger, dagger ] };
key { [ 4, quotedbl ] };
- key { [ 5, percent ] };
- key { [ 6, equal ] };
- key { [ 7, colon ] };
- key { [ 8, slash ] };
- key { [ 9, emdash ] };
+ key { [ 5, percent,
+ U2329, U232A ] };
+ key { [ 6, equal,
+ emdash, emdash ] };
+ key { [ 7, colon,
+ ellipsis, ellipsis ] };
+ key { [ 8, slash,
+ U0300, U0301 ] };
+ key { [ 9, endash ] };
key { [ 0, numerosign ] };
- key { [ minus, dollar ] };
+ key { [ minus, dollar,
+ U2011, EuroSign ] };
key { [ period, EuroSign ] };
- key { [ comma, Cyrillic_yeru ] };
-key.type[Group1] = "ALPHABETIC";
+
+ key { [ comma, Cyrillic_yeru,
+ rightsinglequotemark, leftsinglequotemark ] };
key { [ Cyrillic_u, Cyrillic_U ] };
- key { [ Cyrillic_ie, Cyrillic_IE ] };
- key { [ Cyrillic_i, Cyrillic_I ] };
+ key { [ Cyrillic_ie, Cyrillic_IE,
+ Cyrillic_e, Cyrillic_E ] };
+ key { [ Cyrillic_i, Cyrillic_I,
+ U045D, U040D ] };
key { [ Cyrillic_sha, Cyrillic_SHA ] };
key { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
- key { [ Cyrillic_ka, Cyrillic_KA ] };
- key { [ Cyrillic_es, Cyrillic_ES ] };
+ key { [ Cyrillic_ka, Cyrillic_KA,
+ copyright, copyright ] };
+ key { [ Cyrillic_es, Cyrillic_ES,
+ copyright, copyright ] };
key { [ Cyrillic_de, Cyrillic_DE ] };
key { [ Cyrillic_ze, Cyrillic_ZE ] };
key { [ Cyrillic_tse, Cyrillic_TSE ] };
-key.type[Group1] = "TWO_LEVEL";
key { [ semicolon, section ] };
-key.type[Group1] = "ALPHABETIC";
- key { [ Cyrillic_softsign, U045D ] };
- key { [ Cyrillic_ya, Cyrillic_YA ] };
+
+ key { [ Cyrillic_softsign, U045D,
+ Cyrillic_yeru, Cyrillic_YERU ] };
+ key { [ Cyrillic_ya, Cyrillic_YA,
+ U0463, U0462 ] };
key { [ Cyrillic_a, Cyrillic_A ] };
key { [ Cyrillic_o, Cyrillic_O ] };
key { [ Cyrillic_zhe, Cyrillic_ZHE ] };
key { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key { [ Cyrillic_te, Cyrillic_TE ] };
+ key { [ Cyrillic_te, Cyrillic_TE,
+ trademark, trademark ] };
key { [ Cyrillic_en, Cyrillic_EN ] };
key { [ Cyrillic_ve, Cyrillic_VE ] };
key { [ Cyrillic_em, Cyrillic_EM ] };
key { [ Cyrillic_che, Cyrillic_CHE ] };
+ key { [ doublelowquotemark, leftdoublequotemark,
+ guillemotleft, guillemotright ] };
+
+ key { [ U045D, U040D ] };
key { [ Cyrillic_yu, Cyrillic_YU ] };
- key { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
+ key { [ Cyrillic_shorti, Cyrillic_SHORTI,
+ U046D, U046C ] };
+ key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,
+ U046B, U046A ] };
key { [ Cyrillic_e, Cyrillic_E ] };
key { [ Cyrillic_ef, Cyrillic_EF ] };
key { [ Cyrillic_ha, Cyrillic_HA ] };
key { [ Cyrillic_pe, Cyrillic_PE ] };
- key { [ Cyrillic_er, Cyrillic_ER ] };
+ key { [ Cyrillic_er, Cyrillic_ER,
+ registered, registered ] };
key { [ Cyrillic_el, Cyrillic_EL ] };
key { [ Cyrillic_be, Cyrillic_BE ] };
-
-key.type[Group1] = "TWO_LEVEL";
- key { [ doublelowquotemark,leftdoublequotemark ] };
- key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- // End alphanumeric section
-
+ key { [ space, space,
+ nobreakspace, nobreakspace ] };
+
+
key { type[Group1] = "KEYPAD",
[ KP_Delete, KP_Separator ] };
-
};
+// This is improved variant of the traditional Bulgarian phonetic
+// keyboard. Some unnecessary symbols in levels 1 and 2 are replaced
+// by more useful (the same way as in "bas_phonetic") and additional
+// symbols in levels 3 and 4 are added.
partial alphanumeric_keys
xkb_symbols "phonetic" {
-
- name[Group1]= "Bulgaria - Traditional Phonetic";
+ name[Group1]= "Bulgaria - Traditinal phonetic";
key { [ Cyrillic_che, Cyrillic_CHE ] };
key { [ 1, exclam ] };
key { [ 2, at ] };
- key { [ 3, numbersign ] };
- key { [ 4, dollar ] };
+ key { [ 3, numerosign ] };
+ key { [ 4, dollar,
+ EuroSign, EuroSign ] };
key { [ 5, percent ] };
- key { [ 6, asciicircum ] };
- key { [ 7, ampersand ] };
+ key { [ 6, EuroSign ] };
+ key { [ 7, section ] };
key { [ 8, asterisk ] };
- key { [ 9, parenleft ] };
- key { [ 0, parenright ] };
- key { [ minus, underscore ] };
- key { [ equal, plus ] };
-
- key { [ Cyrillic_ya, Cyrillic_YA ] };
- key { [ Cyrillic_ve, Cyrillic_VE ] };
- key { [ Cyrillic_ie, Cyrillic_IE ] };
- key { [ Cyrillic_er, Cyrillic_ER ] };
- key { [ Cyrillic_te, Cyrillic_TE ] };
- key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key { [ Cyrillic_u, Cyrillic_U ] };
- key { [ Cyrillic_i, Cyrillic_I ] };
- key { [ Cyrillic_o, Cyrillic_O ] };
- key { [ Cyrillic_pe, Cyrillic_PE ] };
+ key { [ 9, parenleft,
+ bracketleft, U2329 ] };
+ key { [ 0, parenright,
+ bracketright, U232A ] };
+ key { [ minus, endash,
+ U2011, U2011 ] };
+ key { [ equal, plus,
+ emdash, dagger ] };
+
+ key { [ Cyrillic_ya, Cyrillic_YA,
+ U0463, U0462 ] };
+ key { [ Cyrillic_ve, Cyrillic_VE ] };
+ key { [ Cyrillic_ie, Cyrillic_IE,
+ Cyrillic_e, Cyrillic_E ] };
+ key { [ Cyrillic_er, Cyrillic_ER,
+ registered, registered ] };
+ key { [ Cyrillic_te, Cyrillic_TE,
+ trademark, trademark ] };
+ key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN,
+ U046B, U046A ] };
+ key { [ Cyrillic_u, Cyrillic_U ] };
+ key { [ Cyrillic_i, Cyrillic_I,
+ U045D, U040D ] };
+ key { [ Cyrillic_o, Cyrillic_O ] };
+ key { [ Cyrillic_pe, Cyrillic_PE ] };
key { [ Cyrillic_sha, Cyrillic_SHA ] };
key { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
-
- key { [ Cyrillic_a, Cyrillic_A ] };
- key { [ Cyrillic_es, Cyrillic_ES ] };
- key { [ Cyrillic_de, Cyrillic_DE ] };
- key { [ Cyrillic_ef, Cyrillic_EF ] };
- key { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key { [ Cyrillic_ha, Cyrillic_HA ] };
- key { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key { [ Cyrillic_ka, Cyrillic_KA ] };
- key { [ Cyrillic_el, Cyrillic_EL ] };
- key { [ semicolon, colon ] };
- key { [ quoteright, quotedbl ] };
+
+
+ key { [ Cyrillic_a, Cyrillic_A ] };
+ key { [ Cyrillic_es, Cyrillic_ES,
+ copyright, copyright ] };
+ key { [ Cyrillic_de, Cyrillic_DE ] };
+ key { [ Cyrillic_ef, Cyrillic_EF ] };
+ key { [ Cyrillic_ghe, Cyrillic_GHE ] };
+ key { [ Cyrillic_ha, Cyrillic_HA ] };
+ key { [ Cyrillic_shorti, Cyrillic_SHORTI,
+ U046D, U046C ] };
+ key { [ Cyrillic_ka, Cyrillic_KA ] };
+ key { [ Cyrillic_el, Cyrillic_EL ] };
+ key { [ semicolon, colon,
+ ellipsis, ellipsis ] };
+ key { [ apostrophe, quotedbl,
+ rightsinglequotemark, leftsinglequotemark ] };
key { [ Cyrillic_yu, Cyrillic_YU ] };
+
+
+ key { [ U045D, U040D ] };
+ key { [ Cyrillic_ze, Cyrillic_ZE ] };
+ key { [ Cyrillic_softsign, U045D,
+ Cyrillic_yeru, Cyrillic_YERU ] };
+ key { [ Cyrillic_tse, Cyrillic_TSE,
+ copyright, copyright ] };
+ key { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key { [ Cyrillic_be, Cyrillic_BE ] };
+ key { [ Cyrillic_en, Cyrillic_EN ] };
+ key { [ Cyrillic_em, Cyrillic_EM ] };
+ key { [ comma, doublelowquotemark,
+ guillemotleft, guillemotleft ] };
+ key { [ period, leftdoublequotemark,
+ guillemotright, guillemotright ] };
+ key { [ slash, question,
+ U0300, U0301 ] };
- key { [ Cyrillic_ze, Cyrillic_ZE ] };
- key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
- key { [ Cyrillic_tse, Cyrillic_TSE ] };
- key { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key { [ Cyrillic_be, Cyrillic_BE ] };
- key { [ Cyrillic_en, Cyrillic_EN ] };
- key { [ Cyrillic_em, Cyrillic_EM ] };
- key { [ comma, less ] };
- key { [ period, greater ] };
- key { [ slash, question ] };
- // End alphanumeric section
+ key { [ space, space,
+ nobreakspace, nobreakspace ] };
+
+
+ key { type[Group1] = "KEYPAD",
+ [ KP_Delete, KP_Separator ] };
};
-partial alphanumeric_keys
+// This is the Bulgarian phonetic keyboard acording to the proposed
+// state standard BDS 5237:2006 with additional symbols in
+// levels 3 and 4.
+partial alphanumeric_keys
xkb_symbols "bas_phonetic" {
- name[Group1]= "Bulgaria - Standard Phonetic";
-
-key.type[Group1] = "ALPHABETIC";
- key { [ Cyrillic_yu, Cyrillic_YU ] };
-key.type[Group1] = "TWO_LEVEL";
- key { [ 1, exclam ] };
- key { [ 2, at ] };
- key { [ 3, numerosign ] };
- key { [ 4, dollar ] };
- key { [ 5, percent ] };
- key { [ 6, EuroSign ] };
- key { [ 7, section ] };
- key { [ 8, asterisk ] };
- key { [ 9, parenleft ] };
- key { [ 0, parenright ] };
- key { [ minus, emdash ] };
- key { [ equal, plus ] };
-
-key.type[Group1] = "ALPHABETIC";
- key { [ Cyrillic_che, Cyrillic_CHE ] };
- key { [ Cyrillic_sha, Cyrillic_SHA ] };
- key { [ Cyrillic_ie, Cyrillic_IE ] };
- key { [ Cyrillic_er, Cyrillic_ER ] };
- key { [ Cyrillic_te, Cyrillic_TE ] };
- key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] };
- key { [ Cyrillic_u, Cyrillic_U ] };
- key { [ Cyrillic_i, Cyrillic_I ] };
- key { [ Cyrillic_o, Cyrillic_O ] };
- key { [ Cyrillic_pe, Cyrillic_PE ] };
- key { [ Cyrillic_ya, Cyrillic_YA ] };
- key { [ Cyrillic_shcha, Cyrillic_SHCHA ] };
-
- key { [ Cyrillic_a, Cyrillic_A ] };
- key { [ Cyrillic_es, Cyrillic_ES ] };
- key { [ Cyrillic_de, Cyrillic_DE ] };
- key { [ Cyrillic_ef, Cyrillic_EF ] };
- key { [ Cyrillic_ghe, Cyrillic_GHE ] };
- key { [ Cyrillic_ha, Cyrillic_HA ] };
- key { [ Cyrillic_shorti, Cyrillic_SHORTI ] };
- key { [ Cyrillic_ka, Cyrillic_KA ] };
- key { [ Cyrillic_el, Cyrillic_EL ] };
-key.type[Group1] = "TWO_LEVEL";
- key { [ semicolon, colon ] };
- key { [ apostrophe, quotedbl ] };
-key.type[Group1] = "ALPHABETIC";
- key { [ Cyrillic_softsign, U045D ] };
-
- key { [ Cyrillic_ze, Cyrillic_ZE ] };
- key { [ Cyrillic_zhe, Cyrillic_ZHE ] };
- key { [ Cyrillic_tse, Cyrillic_TSE ] };
- key { [ Cyrillic_ve, Cyrillic_VE ] };
- key { [ Cyrillic_be, Cyrillic_BE ] };
- key { [ Cyrillic_en, Cyrillic_EN ] };
- key { [ Cyrillic_em, Cyrillic_EM ] };
-key.type[Group1] = "TWO_LEVEL";
- key { [ comma, doublelowquotemark ] };
- key { [ period, leftdoublequotemark ] };
- key { [ slash, question ] };
-
- key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] };
-
- // End alphanumeric section
+ include "bg(phonetic)"
+ name[Group1]= "Bulgaria - New phonetic";
+
+ key { [ Cyrillic_yu, Cyrillic_YU ] };
+ key { [ Cyrillic_che, Cyrillic_CHE ] };
+ key { [ Cyrillic_sha, Cyrillic_SHA ] };
+ key { [ Cyrillic_ya, Cyrillic_YA,
+ U0463, U0462 ] };
+ key { [ Cyrillic_softsign, U045D,
+ Cyrillic_yeru, Cyrillic_YERU ] };
+ key { [ Cyrillic_zhe, Cyrillic_ZHE ] };
+ key { [ Cyrillic_ve, Cyrillic_VE ] };
+};
+
+
+// This is extended variant of the standard Latin QWERTY layout with
+// additional symbols in levels 3 and 4.
+partial hidden alphanumeric_keys
+xkb_symbols "latin" {
+
+ name[Group1]= "Bulgaria - Latin";
+
+ key { [ grave, asciitilde,
+ U2248, U2245 ] };
+ key { [ 1, exclam,
+ notsign, notsign ] };
+ key { [ 2, at,
+ twosuperior, enfilledcircbullet ] };
+ key { [ 3, numbersign,
+ threesuperior, notequal ] };
+ key { [ 4, dollar,
+ EuroSign, sterling ] };
+ key { [ 5, percent,
+ U2030, U2030 ] };
+ key { [ 6, asciicircum,
+ logicaland, logicalor ] };
+ key { [ 7, ampersand,
+ section, section ] };
+ key { [ 8, asterisk,
+ infinity, multiply ] };
+ key { [ 9, parenleft,
+ U2202, nabla ] };
+ key { [ 0, parenright,
+ U2300, U2300 ] };
+ key { [ minus, underscore,
+ U2011, endash ] };
+ key { [ equal, plus,
+ emdash, plusminus ] };
+
+
+ key { [ q, Q,
+ Greek_THETA, Greek_theta ] };
+ key { [ w, W,
+ Greek_OMEGA, Greek_omega ] };
+ key { [ e, E,
+ U2203, Greek_epsilon ] };
+ key { [ r, R,
+ registered, Greek_rho ] };
+ key { [ t, T,
+ trademark, Greek_tau ] };
+ key { [ y, Y,
+ yen, Greek_upsilon ] };
+ key { [ u, U,
+ intersection, union ] };
+ key { [ i, I,
+ integral, Greek_iota ] };
+ key { [ o, O,
+ degree, U222E ] };
+ key { [ p, P,
+ Greek_PI, Greek_pi ] };
+ key { [ bracketleft, braceleft,
+ U2286, includedin ] };
+ key { [ bracketright, braceright,
+ U2208, U2209 ] };
+
+
+ key { [ a, A,
+ U2200, Greek_alpha ] };
+ key { [ s, S,
+ Greek_SIGMA, Greek_sigma ] };
+ key { [ d, D,
+ Greek_DELTA, Greek_delta ] };
+ key { [ f, F,
+ Greek_PHI, Greek_phi ] };
+ key { [ g, G,
+ Greek_GAMMA, Greek_gamma ] };
+ key { [ h, H,
+ U2225, Greek_eta ] };
+ key { [ j, J ] };
+ key { [ k, K,
+ U03F0, Greek_kappa ] };
+ key { [ l, L,
+ Greek_LAMBDA, Greek_lambda ] };
+ key { [ semicolon, colon,
+ division, division ] };
+ key { [ apostrophe, quotedbl,
+ leftdoublequotemark, rightdoublequotemark ] };
+ key