Home | History | Annotate | Line # | Download | only in symbols
rs revision 1.1.1.6
      1 // Bosnian, Croatian, Serbian and Slovenian XKB keyboard mapping
      2 // (derived from "Danube" D.2)
      3 //
      4 // Danube D.2 from 2003-05-12 is available at http://srpski.org/dunav/
      5 //
      6 // Original authors:
      7 //  Danilo Segan ( ) <danilo (a] kvota.net>
      8 //  Chusslove Illich ( ) <caslav.ilic (a] gmx.net>
      9 //
     10 // Danilo Segan <danilo (a] kvota.net>:
     11 // - Modified for inclusion in XFree86
     12 // - Further modifications on 2005-08-18 to support Bosnian, Croatian
     13 //   and Slovenian in xkeyboard-config
     14 //  
     15 
     16 default  partial alphanumeric_keys
     17 xkb_symbols "basic" {
     18 
     19   name[Group1]= "Serbian";
     20 
     21   include "rs(cyrlevel3)"
     22   include "rs(common)"
     23   include "rs(cyralpha)"
     24   include "level3(ralt_switch)"
     25 };
     26 
     27 
     28 partial alphanumeric_keys
     29 xkb_symbols "latin" {
     30 
     31   name[Group1]= "Serbian (Latin)";
     32 
     33   include "latin(type3)"
     34   include "rs(latalpha)"
     35   include "rs(latlevel3)"
     36   include "rs(common)"
     37   include "level3(ralt_switch)"
     38 };
     39 
     40 
     41 partial alphanumeric_keys
     42 xkb_symbols "yz" {
     43   // Cyrillic_zhe and Cyrillic_ze swapped.
     44 
     45   name[Group1]= "Serbian (Cyrillic, Z and ZHE swapped)";
     46 
     47   include "rs(basic)"
     48 
     49   key <AD06> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // y
     50   key <AB01> {   [ Cyrillic_ze,         Cyrillic_ZE,    any,any ]   }; // z
     51 };
     52 
     53 partial hidden alphanumeric_keys
     54 xkb_symbols "common" {
     55   // "Common" keys: keys which are same for both latin and cyrillic keyboards
     56 
     57   key.type[Group1] = "FOUR_LEVEL";
     58 
     59   key <TLDE> {   [ grave,               asciitilde,    any,any ]   }; //
     60   key <AE01> {   [ 1,                   exclam,        any,any ]   }; //
     61   key <AE02> {   [ 2,                   quotedbl,      any,any ]   }; //
     62   key <AE03> {   [ 3,                   numbersign,    any,any ]   }; //
     63   key <AE04> {   [ 4,                   dollar,        any,any ]   }; //
     64   key <AE05> {   [ 5,                   percent,       any,any ]   }; //
     65   key <AE06> {   [ 6,                   ampersand,     any,any ]   }; //
     66   key <AE07> {   [ 7,                   slash,         any,any ]   }; //
     67   key <AE08> {   [ 8,                   parenleft,     any,any ]   }; //
     68   key <AE09> {   [ 9,                   parenright,    any,any ]   }; //
     69   key <AE10> {   [ 0,                   equal,         any,any ]   }; //
     70   key <AE11> {   [ apostrophe,          question,      any,any ]   }; //
     71   key <AE12> {   [ plus,                asterisk,      any,any ]   }; //
     72 
     73   key <AB08> {   [ comma,               semicolon,     any,any ]   }; //
     74   key <AB09> {   [ period,              colon,         any,any ]   }; //
     75   key <AB10> {   [ minus,               underscore,    any,any ]   }; //
     76 
     77   include "kpdl(comma)"
     78 };
     79 
     80 partial hidden alphanumeric_keys
     81 xkb_symbols "cyralpha" {
     82 
     83   key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
     84 
     85   key <AD01> {   [ Cyrillic_lje,        Cyrillic_LJE,   any,any ]   }; // q
     86   key <AD02> {   [ Cyrillic_nje,        Cyrillic_NJE,   any,any ]   }; // w
     87   key <AD03> {   [ Cyrillic_ie,         Cyrillic_IE,    any,any ]   }; // e
     88   key <AD04> {   [ Cyrillic_er,         Cyrillic_ER,    any,any ]   }; // r
     89   key <AD05> {   [ Cyrillic_te,         Cyrillic_TE,    any,any ]   }; // t
     90   key <AD06> {   [ Cyrillic_ze,         Cyrillic_ZE,    any,any ]   }; // y
     91   key <AD07> {   [ Cyrillic_u,          Cyrillic_U,     any,any ]   }; // u
     92   key <AD08> {   [ Cyrillic_i,          Cyrillic_I,     any,any ]   }; // i
     93   key <AD09> {   [ Cyrillic_o,          Cyrillic_O,     any,any ]   }; // o
     94   key <AD10> {   [ Cyrillic_pe,         Cyrillic_PE,    any,any ]   }; // p
     95   key <AD11> {   [ Cyrillic_sha,        Cyrillic_SHA,   any,any ]   }; // [ {
     96   key <AD12> {   [ Serbian_dje,         Serbian_DJE,    any,any ]   }; // ] }
     97 
     98   key <AC01> {   [ Cyrillic_a,          Cyrillic_A,     any,any ]   }; // a
     99   key <AC02> {   [ Cyrillic_es,         Cyrillic_ES,    any,any ]   }; // s
    100   key <AC03> {   [ Cyrillic_de,         Cyrillic_DE,    any,any ]   }; // d
    101   key <AC04> {   [ Cyrillic_ef,         Cyrillic_EF,    any,any ]   }; // f
    102   key <AC05> {   [ Cyrillic_ghe,        Cyrillic_GHE,   any,any ]   }; // g
    103   key <AC06> {   [ Cyrillic_ha,         Cyrillic_HA,    any,any ]   }; // h
    104   key <AC07> {   [ Cyrillic_je,         Cyrillic_JE,    any,any ]   }; // j
    105   key <AC08> {   [ Cyrillic_ka,         Cyrillic_KA,    any,any ]   }; // k
    106   key <AC09> {   [ Cyrillic_el,         Cyrillic_EL,    any,any ]   }; // l
    107   key <AC10> {   [ Cyrillic_che,        Cyrillic_CHE,   any,any ]   }; // ; :
    108   key <AC11> {   [ Serbian_tshe,        Serbian_TSHE,   any,any ]   }; // ' "
    109   key <BKSL> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // \ |
    110 
    111   key <AB01> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // z
    112   key <AB02> {   [ Cyrillic_dzhe,       Cyrillic_DZHE,  any,any ]   }; // x
    113   key <AB03> {   [ Cyrillic_tse,        Cyrillic_TSE,   any,any ]   }; // c
    114   key <AB04> {   [ Cyrillic_ve,         Cyrillic_VE,    any,any ]   }; // v
    115   key <AB05> {   [ Cyrillic_be,         Cyrillic_BE,    any,any ]   }; // b
    116   key <AB06> {   [ Cyrillic_en,         Cyrillic_EN,    any,any ]   }; // n
    117   key <AB07> {   [ Cyrillic_em,         Cyrillic_EM,    any,any ]   }; // m
    118 };
    119 
    120 
    121 partial hidden alphanumeric_keys
    122 xkb_symbols "latalpha" {
    123 
    124   key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
    125 
    126   key <AD11> {   [ scaron,              Scaron,        any,any ]   }; //
    127   key <AD12> {   [ dstroke,             Dstroke,       any,any ]   }; //
    128 
    129   key <AC10> {   [ ccaron,              Ccaron,        any,any ]   }; //
    130   key <AC11> {   [ cacute,              Cacute,        any,any ]   }; //
    131   key <BKSL> {   [ zcaron,              Zcaron,        any,any ]   }; //
    132 
    133 };
    134 
    135 partial hidden alphanumeric_keys
    136 xkb_symbols "twoletter" {
    137   // These are letters which are written in latin transcription with two-characters.
    138 
    139   key <AD01> {   type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC",
    140                  [ U1C9,                U1C8,         any,   U1C7 ]   }; // q
    141   key <AD02> {   type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC",
    142                  [ U1CC,                U1CB,         any,   U1CA ]   }; // w
    143   key <AB02> {   type[Group1] = "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC",
    144                  [ U1C6,                U1C5,         any,   U1C4 ]   }; // x
    145 
    146   // Also replace letter Y with Zcaron, since Y is of no use any longer
    147   key <AB01> {   [ zcaron,              Zcaron,        any,any ]   }; //
    148 };
    149 
    150 partial hidden alphanumeric_keys
    151 xkb_symbols "latlevel3" {
    152   key <TLDE> {   [ any,any,     notsign,             notsign     ]   }; // ` ~
    153   key <AE01> {   [ any,any,     dead_tilde,          asciitilde  ]   }; // 1 !
    154   key <AE02> {   [ any,any,     dead_caron,          caron 	 ]   }; // 2 @
    155   key <AE03> {   [ any,any,     dead_circumflex,     asciicircum ]   }; // 3 #
    156   key <AE04> {   [ any,any,     dead_breve,          breve 	 ]   }; // 4 $
    157   key <AE05> {   [ any,any,     dead_abovering,      degree	 ]   }; // 5 %
    158   key <AE06> {   [ any,any,     dead_ogonek,         ogonek	 ]   }; // 6 ^
    159   key <AE07> {   [ any,any,     dead_grave,          grave 	 ]   }; // 7 &
    160   key <AE08> {   [ any,any,     dead_abovedot,       abovedot 	 ]   }; // 8 *
    161   key <AE09> {   [ any,any,     dead_acute,          apostrophe  ]   }; // 9 (
    162   key <AE10> {   [ any,any,     dead_doubleacute,    doubleacute ]   }; // 0 )
    163   key <AE11> {   [ any,any,     dead_diaeresis,      diaeresis 	 ]   }; // - _
    164   key <AE12> {   [ any,any,     dead_cedilla,        cedilla 	 ]   }; // = +
    165 
    166   key <AD01> {   [ any,any,     backslash,           Greek_OMEGA ]   }; // q
    167   key <AD02> {   [ any,any,     bar,                 Lstroke 	 ]   }; // w
    168   key <AD03> {   [ any,any,     EuroSign,            EuroSign 	 ]   }; // e
    169   key <AD04> {   [ any,any,     paragraph,           registered  ]   }; // r
    170   key <AD05> {   [ any,any,     tslash,              Tslash 	 ]   }; // t // ALPHABETIC
    171   key <AD06> {   [ any,any,     leftarrow,           yen 	 ]   }; // y
    172   key <AD07> {   [ any,any,     downarrow,           uparrow 	 ]   }; // u
    173   key <AD08> {   [ any,any,     rightarrow,          idotless 	 ]   }; // i
    174   key <AD09> {   [ any,any,     oslash,              Ooblique 	 ]   }; // o // ALPHABETIC
    175   key <AD10> {   [ any,any,     thorn,               THORN 	 ]   }; // p // ALPHABETIC
    176   key <AD11> {   [ any,any,     division,            dead_abovering ]   }; // [
    177   key <AD12> {   [ any,any,     multiply,            dead_macron ]   }; // ]
    178 
    179   key <AC01> {   [ any,any,     ae,            	     AE               ]   }; // a // ALPHABETIC
    180   key <AC02> {   [ any,any,     doublelowquotemark,  guillemotright   ]   }; // s
    181   key <AC03> {   [ any,any,     leftdoublequotemark, guillemotleft    ]   }; // d
    182   key <AC04> {   [ any,any,     bracketleft,         ordfeminine      ]   }; // f
    183   key <AC05> {   [ any,any,     bracketright,        ENG 	      ]   }; // g
    184   key <AC06> {   [ any,any,     hstroke,             Hstroke 	      ]   }; // h // ALPHABETIC
    185   key <AC07> {   [ any,any,     NoSymbol,            NoSymbol 	      ]   }; // j
    186   key <AC08> {   [ any,any,     lstroke,             ampersand 	      ]   }; // k
    187   key <AC09> {   [ any,any,     lstroke,             Lstroke 	      ]   }; // l
    188   key <AC10> {   [ any,any,     dead_acute,          dead_doubleacute ]   }; // ;
    189   key <AC11> {   [ any,any,     ssharp,              dead_caron       ]   }; // '
    190   key <BKSL> {   [ any,any,     currency,            dead_breve       ]   }; // \
    191 
    192   key <AB01> {   [ any,any,     leftsinglequotemark, guillemotright   ]   }; // z
    193   key <AB02> {   [ any,any,     rightsinglequotemark,guillemotleft    ]   }; // x
    194   key <AB03> {   [ any,any,     cent,                copyright 	      ]   }; // c
    195   key <AB04> {   [ any,any,     at,                  grave 	      ]   }; // v
    196   key <AB05> {   [ any,any,     braceleft,           apostrophe       ]   }; // b
    197   key <AB06> {   [ any,any,     braceright,          braceright       ]   }; // n
    198   key <AB07> {   [ any,any,     asciicircum,         masculine 	      ]   }; // m
    199   key <AB08> {   [ any,any,     less,                multiply 	      ]   }; // , <
    200   key <AB09> {   [ any,any,     greater,             division 	      ]   }; // . >
    201   key <AB10> {   [ any,any,     emdash,              endash   	      ]   }; // / ?
    202 
    203 };
    204 
    205 partial hidden alphanumeric_keys
    206 xkb_symbols "cyrlevel3" {
    207   key <TLDE> {   [ any,any,     degree,              notsign          ]   }; // ` ~
    208   key <AE03> {   [ any,any,     dead_circumflex,     NoSymbol         ]   }; // 3 #
    209   key <AE07> {   [ any,any,     dead_grave,          NoSymbol         ]   }; // 7 &
    210   key <AE08> {   [ any,any,     dead_doublegrave,    NoSymbol         ]   }; // 8 *
    211   key <AE09> {   [ any,any,     dead_acute,          NoSymbol         ]   }; // 9 (
    212   key <AE10> {   [ any,any,     dead_invertedbreve,  NoSymbol         ]   }; // 0 )
    213   key <AE11> {   [ any,any,     dead_macron,         NoSymbol         ]   }; // - _
    214 
    215   key <AD01> {   [ any,any,     backslash,           NoSymbol         ]   }; // q
    216   key <AD02> {   [ any,any,     bar,                 NoSymbol         ]   }; // w
    217   key <AD03> {   [ any,any,     EuroSign,            sterling         ]   }; // e
    218   key <AD04> {   [ any,any,     paragraph,           registered       ]   }; // r
    219   key <AD05> {   [ any,any,     ellipsis,            NoSymbol         ]   }; // t // ALPHABETIC
    220   key <AD06> {   [ any,any,     leftarrow,           yen              ]   }; // y
    221   key <AD07> {   [ any,any,     downarrow,           uparrow          ]   }; // u
    222   key <AD08> {   [ any,any,     rightarrow,          NoSymbol         ]   }; // i
    223   key <AD09> {   [ any,any,     section,             NoSymbol         ]   }; // o // ALPHABETIC
    224   key <AD11> {   [ any,any,     division,            NoSymbol         ]   }; // [
    225   key <AD12> {   [ any,any,     multiply,            NoSymbol         ]   }; // ]
    226 
    227   key <AC02> {   [ any,any,     doublelowquotemark,  guillemotright   ]   }; // s
    228   key <AC03> {   [ any,any,     leftdoublequotemark, guillemotleft    ]   }; // d
    229   key <AC04> {   [ any,any,     bracketleft,         NoSymbol         ]   }; // f
    230   key <AC05> {   [ any,any,     bracketright,        NoSymbol         ]   }; // g
    231   key <BKSL> {   [ any,any,     currency,            NoSymbol         ]   }; // \
    232 
    233   key <AB01> {   [ any,any,     leftsinglequotemark, NoSymbol         ]   }; // z
    234   key <AB02> {   [ any,any,     rightsinglequotemark,NoSymbol         ]   }; // x
    235   key <AB03> {   [ any,any,     cent,                copyright        ]   }; // c
    236   key <AB04> {   [ any,any,     at,                  NoSymbol         ]   }; // v
    237   key <AB05> {   [ any,any,     braceleft,           NoSymbol         ]   }; // b
    238   key <AB06> {   [ any,any,     braceright,          NoSymbol         ]   }; // n
    239   key <AB07> {   [ any,any,     asciicircum,         NoSymbol         ]   }; // m
    240   key <AB08> {   [ any,any,     less,                NoSymbol         ]   }; // , <
    241   key <AB09> {   [ any,any,     greater,             NoSymbol         ]   }; // . >
    242   key <AB10> {   [ any,any,     emdash,              endash           ]   }; // / ?
    243 };
    244 
    245 partial alphanumeric_keys
    246 xkb_symbols "latinunicode" {
    247   // This mapping supports the Unicode characters 0x1c4-0x1cc (dz, lj, and nj
    248   // as single character). You get the title form with AltGr+Shift.
    249 
    250   name[Group1]= "Serbian (Latin Unicode)";
    251 
    252   include "rs(latin)"
    253   include "rs(twoletter)"
    254 };
    255 
    256 partial alphanumeric_keys
    257 xkb_symbols "latinyz" {
    258   // For those who insist on using "english-position" Z and Y.
    259 
    260   name[Group1]= "Serbian (Latin qwerty)";
    261 
    262   include "rs(latin)"
    263 
    264   key <AD06> {   [ y,                   Y,             any,any ]   }; // y
    265   key <AB01> {   [ z,                   Z,             any,any ]   }; // z
    266 };
    267 
    268 partial alphanumeric_keys
    269 xkb_symbols "latinunicodeyz" {
    270   // Unicode, ZHE and Z swapped.
    271 
    272   name[Group1]= "Serbian (Latin Unicode qwerty)";
    273 
    274   include "rs(latinunicode)"
    275 
    276   key <AD06> {   [ zcaron,              Zcaron,        any,any ]   }; // y
    277   key <AB01> {   [ z,                   Z,             any,any ]   }; // z
    278 };
    279 
    280 xkb_symbols "alternatequotes" {
    281   // Another acceptable pair of quotes for Serbian 
    282 
    283   name[Group1]= "Serbian (Cyrillic with guillemets)";
    284 
    285   include "rs(basic)"
    286 
    287   key <AC02> {   [ any,any,     guillemotright, NoSymbol ]   }; // s
    288   key <AC03> {   [ any,any,     guillemotleft,  NoSymbol ]   }; // d
    289 };
    290 
    291 xkb_symbols "latinalternatequotes" {
    292   // Another acceptable pair of quotes for Serbian 
    293 
    294   name[Group1]= "Serbian (Latin with guillemets)";
    295 
    296   include "rs(latin)"
    297 
    298   key <AC02> {   [ any,any,     guillemotright, NoSymbol ]   }; // s
    299   key <AC03> {   [ any,any,     guillemotleft,  NoSymbol ]   }; // d
    300 };
    301 
    302 xkb_symbols "rue" {
    303   // Layout for Pannonian Rusyn (spoken mainly in Serbia and
    304   // Croatia by the Rusyn people), based on Serbian Cyrillic layout.
    305   // Authors:
    306   //   Ljubomir J. Papuga ( . ) <papuga (a] zoho.com>
    307   //   Mihajlo Hornjak <smeceiotpad (a] gmail.com>
    308 
    309   name[Group1]= "Pannonian Rusyn";
    310 
    311   include "rs(basic)"
    312 
    313   key <TLDE> {   [ Cyrillic_softsign,         Cyrillic_SOFTSIGN         ]   }; // `
    314 
    315   key <AD01> {   [ Cyrillic_ya,               Cyrillic_YA               ]   }; // q
    316   key <AD02> {   [ Ukrainian_ie,              Ukrainian_IE              ]   }; // w
    317   key <AD12> {   [ Cyrillic_shcha,            Cyrillic_SHCHA            ]   }; // ]
    318 
    319   key <AC05> {   [ Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ]   }; // g
    320   key <AC07> {   [ Cyrillic_shorti,           Cyrillic_SHORTI           ]   }; // j
    321   key <AC11> {   [ Cyrillic_ghe,              Cyrillic_GHE              ]   }; // '
    322 
    323   key <AB01> {   [ Cyrillic_yu,               Cyrillic_YU               ]   }; // z
    324   key <AB02> {   [ Ukrainian_yi,              Ukrainian_YI              ]   }; // x
    325 };
    326 
    327 // EXTRAS:
    328 
    329 xkb_symbols "combiningkeys" {
    330   // Raw combining characters instead of dead keys,
    331   // especially good for post-accenting texts.
    332 
    333   name[Group1]= "Serbian (combining accents instead of dead keys)";
    334 
    335   include "rs(basic)"
    336 
    337   key <AE03> {   [ any,any,     U0302, dead_circumflex    ]   }; // 3, U0302 = COMBINING CIRCUMFLEX ACCENT
    338   key <AE07> {   [ any,any,     U0300, NoSymbol           ]   }; // 7, U0300 = COMBINING GRAVE ACCENT
    339   key <AE08> {   [ any,any,     U030F, NoSymbol           ]   }; // 8, U030F = COMBINING DOUBLE GRAVE ACCENT
    340   key <AE09> {   [ any,any,     U0301, NoSymbol           ]   }; // 9, U0301 = COMBINING ACUTE ACCENT
    341   key <AE10> {   [ any,any,     U0311, NoSymbol           ]   }; // 0, U0311 = COMBINING INVERTED BREVE
    342   key <AE11> {   [ any,any,     U0304, NoSymbol           ]   }; // -, U0304 = COMBINING MACRON
    343 };
    344