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