Home | History | Annotate | Line # | Download | only in symbols
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