first feed-in of the layouts. The revolution is coming
[xorg/xkeyboard-config] / symbols / sr
1 // $XFree86$
2 // Serbian XKB keyboard mapping (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 (Данило Шеган) <dsegan@gmx.net>
8 //  Chusslove Illich (Часлав Илић) <chaslav@sezampro.yu>
9 //
10 // Modified for inclusion in XFree86 by Danilo Segan <dsegan@gmx.net>
11 //  
12 //
13
14 default partial alphanumeric_keys
15 xkb_symbols "default" {
16
17   name[Group1]= "Serbian Cyrillic";
18
19   include "pc/sr(level3)"
20   include "pc/sr(common)"
21   include "pc/sr(cyralpha)"
22   include "level3(ralt_switch_multikey)"
23 };
24
25 partial alphanumeric_keys
26 xkb_symbols "yz" {
27   // Cyrillic_zhe and Cyrillic_ze swapped.
28
29   name[Group1]= "Serbian Cyrillic (swap Zhe, Ze)";
30
31   include "pc/sr(default)"
32
33   key <AD06> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // y
34   key <AB01> {   [ Cyrillic_ze,         Cyrillic_ZE,    any,any ]   }; // z
35 };
36
37 partial alphanumeric_keys
38 xkb_symbols "common" {
39   // "Common" keys: keys which are same for both latin and cyrillic keyboards
40
41   key.type[Group1] = "FOUR_LEVEL";
42
43   key <TLDE> {   [ quoteleft,           asciitilde,    any,any ]   }; //
44   key <AE01> {   [ 1,                   exclam,        any,any ]   }; //
45   key <AE02> {   [ 2,                   quotedbl,      any,any ]   }; //
46   key <AE03> {   [ 3,                   numbersign,    any,any ]   }; //
47   key <AE04> {   [ 4,                   dollar,        any,any ]   }; //
48   key <AE05> {   [ 5,                   percent,       any,any ]   }; //
49   key <AE06> {   [ 6,                   ampersand,     any,any ]   }; //
50   key <AE07> {   [ 7,                   slash,         any,any ]   }; //
51   key <AE08> {   [ 8,                   parenleft,     any,any ]   }; //
52   key <AE09> {   [ 9,                   parenright,    any,any ]   }; //
53   key <AE10> {   [ 0,                   equal,         any,any ]   }; //
54   key <AE11> {   [ apostrophe,          question,      any,any ]   }; //
55   key <AE12> {   [ plus,                asterisk,      any,any ]   }; //
56
57   key <AB08> {   [ comma,               semicolon,     any,any ]   }; //
58   key <AB09> {   [ period,              colon,         any,any ]   }; //
59   key <AB10> {   [ minus,               underscore,    any,any ]   }; //
60 };
61
62 partial alphanumeric_keys
63 xkb_symbols "cyralpha" {
64
65   key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
66
67   key <AD01> {   [ Cyrillic_lje,        Cyrillic_LJE,   any,any ]   }; // q
68   key <AD02> {   [ Cyrillic_nje,        Cyrillic_NJE,   any,any ]   }; // w
69   key <AD03> {   [ Cyrillic_ie,         Cyrillic_IE,    any,any ]   }; // e
70   key <AD04> {   [ Cyrillic_er,         Cyrillic_ER,    any,any ]   }; // r
71   key <AD05> {   [ Cyrillic_te,         Cyrillic_TE,    any,any ]   }; // t
72   key <AD06> {   [ Cyrillic_ze,         Cyrillic_ZE,    any,any ]   }; // y
73   key <AD07> {   [ Cyrillic_u,          Cyrillic_U,     any,any ]   }; // u
74   key <AD08> {   [ Cyrillic_i,          Cyrillic_I,     any,any ]   }; // i
75   key <AD09> {   [ Cyrillic_o,          Cyrillic_O,     any,any ]   }; // o
76   key <AD10> {   [ Cyrillic_pe,         Cyrillic_PE,    any,any ]   }; // p
77   key <AD11> {   [ Cyrillic_sha,        Cyrillic_SHA,   any,any ]   }; // [ {
78   key <AD12> {   [ Serbian_dje,         Serbian_DJE,    any,any ]   }; // ] }
79
80   key <AC01> {   [ Cyrillic_a,          Cyrillic_A,     any,any ]   }; // a
81   key <AC02> {   [ Cyrillic_es,         Cyrillic_ES,    any,any ]   }; // s
82   key <AC03> {   [ Cyrillic_de,         Cyrillic_DE,    any,any ]   }; // d
83   key <AC04> {   [ Cyrillic_ef,         Cyrillic_EF,    any,any ]   }; // f
84   key <AC05> {   [ Cyrillic_ghe,        Cyrillic_GHE,   any,any ]   }; // g
85   key <AC06> {   [ Cyrillic_ha,         Cyrillic_HA,    any,any ]   }; // h
86   key <AC07> {   [ Cyrillic_je,         Cyrillic_JE,    any,any ]   }; // j
87   key <AC08> {   [ Cyrillic_ka,         Cyrillic_KA,    any,any ]   }; // k
88   key <AC09> {   [ Cyrillic_el,         Cyrillic_EL,    any,any ]   }; // l
89   key <AC10> {   [ Cyrillic_che,        Cyrillic_CHE,   any,any ]   }; // ; :
90   key <AC11> {   [ Serbian_tshe,        Serbian_TSHE,   any,any ]   }; // ' "
91   key <BKSL> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // \ |
92
93   key <AB01> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // z
94   key <AB02> {   [ Cyrillic_dzhe,       Cyrillic_DZHE,  any,any ]   }; // x
95   key <AB03> {   [ Cyrillic_tse,        Cyrillic_TSE,   any,any ]   }; // c
96   key <AB04> {   [ Cyrillic_ve,         Cyrillic_VE,    any,any ]   }; // v
97   key <AB05> {   [ Cyrillic_be,         Cyrillic_BE,    any,any ]   }; // b
98   key <AB06> {   [ Cyrillic_en,         Cyrillic_EN,    any,any ]   }; // n
99   key <AB07> {   [ Cyrillic_em,         Cyrillic_EM,    any,any ]   }; // m
100 };
101
102
103 partial alphanumeric_keys
104 xkb_symbols "latalpha" {
105
106   key.type[Group1] = "SERBIAN_ALPHABETIC";
107
108   key <AD01> {   [ q,                   Q,             any,any ]   }; //
109   key <AD02> {   [ w,                   W,             any,any ]   }; //
110   key <AD03> {   [ e,                   E,             any,any ]   }; //
111   key <AD04> {   [ r,                   R,             any,any ]   }; //
112   key <AD05> {   [ t,                   T,             any,any ]   }; //
113   key <AD06> {   [ z,                   Z,             any,any ]   }; //
114   key <AD07> {   [ u,                   U,             any,any ]   }; //
115   key <AD08> {   [ i,                   I,             any,any ]   }; //
116   key <AD09> {   [ o,                   O,             any,any ]   }; //
117   key <AD10> {   [ p,                   P,             any,any ]   }; //
118   key <AD11> {   [ scaron,              Scaron,        any,any ]   }; //
119   key <AD12> {   [ dstroke,             Dstroke,       any,any ]   }; //
120
121   key <AC01> {   [ a,                   A,             any,any ]   }; //
122   key <AC02> {   [ s,                   S,             any,any ]   }; //
123   key <AC03> {   [ d,                   D,             any,any ]   }; //
124   key <AC04> {   [ f,                   F,             any,any ]   }; //
125   key <AC05> {   [ g,                   G,             any,any ]   }; //
126   key <AC06> {   [ h,                   H,             any,any ]   }; //
127   key <AC07> {   [ j,                   J,             any,any ]   }; //
128   key <AC08> {   [ k,                   K,             any,any ]   }; //
129   key <AC09> {   [ l,                   L,             any,any ]   }; //
130   key <AC10> {   [ ccaron,              Ccaron,        any,any ]   }; //
131   key <AC11> {   [ cacute,              Cacute,        any,any ]   }; //
132   key <BKSL> {   [ zcaron,              Zcaron,        any,any ]   }; //
133
134   key <AB01> {   [ y,                   Y,             any,any ]   }; //
135   key <AB02> {   [ x,                   X,             any,any ]   }; //
136   key <AB03> {   [ c,                   C,             any,any ]   }; //
137   key <AB04> {   [ v,                   V,             any,any ]   }; //
138   key <AB05> {   [ b,                   B,             any,any ]   }; //
139   key <AB06> {   [ n,                   N,             any,any ]   }; //
140   key <AB07> {   [ m,                   M,             any,any ]   }; //
141 };
142
143 partial alphanumeric_keys
144 xkb_symbols "twoletter" {
145   // These are letters which are written in latin transcription with two-characters.
146
147   key <AD01> {   type[Group1] = "SERBIAN_CAPS",
148                  [ U1C9,                U1C8,         any,   U1C7 ]   }; // q
149   key <AD02> {   type[Group1] = "SERBIAN_CAPS",
150                  [ U1CC,                U1CB,         any,   U1CA ]   }; // w
151   key <AB02> {   type[Group1] = "SERBIAN_CAPS",
152                  [ U1C6,                U1C5,         any,   U1C4 ]   }; // x
153
154   // Also replace letter Y with Zcaron, since Y is of no use any longer
155   key <AB01> {   [ zcaron,              Zcaron,        any,any ]   }; //
156 };
157
158 partial alphanumeric_keys
159 xkb_symbols "level3" {
160   key <TLDE> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ` ~
161   key <AE01> {   [ any,any,     dead_tilde,          NoSymbol ]   }; // 1 !
162   key <AE02> {   [ any,any,     dead_caron,          NoSymbol ]   }; // 2 @
163   key <AE03> {   [ any,any,     dead_circumflex,     NoSymbol ]   }; // 3 #
164   key <AE04> {   [ any,any,     dead_breve,          NoSymbol ]   }; // 4 $
165   key <AE05> {   [ any,any,     dead_abovering,      NoSymbol ]   }; // 5 %
166   key <AE06> {   [ any,any,     dead_ogonek,         NoSymbol ]   }; // 6 ^
167   key <AE07> {   [ any,any,     dead_grave,          NoSymbol ]   }; // 7 &
168   key <AE08> {   [ any,any,     dead_abovedot,       NoSymbol ]   }; // 8 *
169   key <AE09> {   [ any,any,     dead_acute,          NoSymbol ]   }; // 9 (
170   key <AE10> {   [ any,any,     dead_doubleacute,    NoSymbol ]   }; // 0 )
171   key <AE11> {   [ any,any,     dead_diaeresis,      NoSymbol ]   }; // - _
172   key <AE12> {   [ any,any,     dead_cedilla,        NoSymbol ]   }; // = +
173
174   key <AD01> {   [ any,any,     backslash,           NoSymbol ]   }; // q
175   key <AD02> {   [ any,any,     bar,                 NoSymbol ]   }; // w
176   key <AD03> {   [ any,any,     EuroSign,            NoSymbol ]   }; // e
177   key <AD04> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // r
178   key <AD05> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // t
179   key <AD06> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // y
180   key <AD07> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // u
181   key <AD08> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // i
182   key <AD09> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // o
183   key <AD10> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // p
184   key <AD11> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // [
185   key <AD12> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ]
186
187   key <AC01> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // a
188   key <AC02> {   [ any,any,     doublelowquotemark,  NoSymbol ]   }; // s
189   key <AC03> {   [ any,any,     leftdoublequotemark, NoSymbol ]   }; // d
190   key <AC04> {   [ any,any,     bracketleft,         NoSymbol ]   }; // f
191   key <AC05> {   [ any,any,     bracketright,        NoSymbol ]   }; // g
192   key <AC06> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // h
193   key <AC07> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // j
194   key <AC08> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // k
195   key <AC09> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // l
196   key <AC10> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ;
197   key <AC11> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // '
198   key <BKSL> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // \
199
200   key <AB01> {   [ any,any,     leftsinglequotemark, NoSymbol ]   }; // z
201   key <AB02> {   [ any,any,     rightsinglequotemark,NoSymbol ]   }; // x
202   key <AB03> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // c
203   key <AB04> {   [ any,any,     at,                  NoSymbol ]   }; // v
204   key <AB05> {   [ any,any,     braceleft,           NoSymbol ]   }; // b
205   key <AB06> {   [ any,any,     braceright,          NoSymbol ]   }; // n
206   key <AB07> {   [ any,any,     asciicircum,         NoSymbol ]   }; // m
207   key <AB08> {   [ any,any,     less,                NoSymbol ]   }; // , <
208   key <AB09> {   [ any,any,     greater,             NoSymbol ]   }; // . >
209   key <AB10> {   [ any,any,     emdash,              endash   ]   }; // / ?
210
211 };