introducing the consistency in the group names
[xorg/xkeyboard-config] / symbols / srp
1 // Serbian XKB keyboard mapping (derived from "Danube" D.2)
2 //
3 // Danube D.2 from 2003-05-12 is available at http://srpski.org/dunav/
4 //
5 // Original authors:
6 //  Danilo Segan (Данило Шеган) <dsegan@gmx.net>
7 //  Chusslove Illich (Часлав Илић) <chaslav@sezampro.yu>
8 //
9 // Modified for inclusion in XFree86 by Danilo Segan <dsegan@gmx.net>
10 //  
11 // $XKeyboardConfig$
12
13 default partial alphanumeric_keys
14 xkb_symbols "basic" {
15
16   name[Group1]= "Serbian";
17
18   include "srp(level3)"
19   include "srp(common)"
20   include "srp(cyralpha)"
21   include "level3(ralt_switch)"
22 };
23
24 partial alphanumeric_keys
25 xkb_symbols "yz" {
26   // Cyrillic_zhe and Cyrillic_ze swapped.
27
28   name[Group1]= "Serbian - Z and ZHE swapped";
29
30   include "srp(basic)"
31
32   key <AD06> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // y
33   key <AB01> {   [ Cyrillic_ze,         Cyrillic_ZE,    any,any ]   }; // z
34 };
35
36 partial alphanumeric_keys
37 xkb_symbols "common" {
38   // "Common" keys: keys which are same for both latin and cyrillic keyboards
39
40   key.type[Group1] = "FOUR_LEVEL";
41
42   key <TLDE> {   [ quoteleft,           asciitilde,    any,any ]   }; //
43   key <AE01> {   [ 1,                   exclam,        any,any ]   }; //
44   key <AE02> {   [ 2,                   quotedbl,      any,any ]   }; //
45   key <AE03> {   [ 3,                   numbersign,    any,any ]   }; //
46   key <AE04> {   [ 4,                   dollar,        any,any ]   }; //
47   key <AE05> {   [ 5,                   percent,       any,any ]   }; //
48   key <AE06> {   [ 6,                   ampersand,     any,any ]   }; //
49   key <AE07> {   [ 7,                   slash,         any,any ]   }; //
50   key <AE08> {   [ 8,                   parenleft,     any,any ]   }; //
51   key <AE09> {   [ 9,                   parenright,    any,any ]   }; //
52   key <AE10> {   [ 0,                   equal,         any,any ]   }; //
53   key <AE11> {   [ apostrophe,          question,      any,any ]   }; //
54   key <AE12> {   [ plus,                asterisk,      any,any ]   }; //
55
56   key <AB08> {   [ comma,               semicolon,     any,any ]   }; //
57   key <AB09> {   [ period,              colon,         any,any ]   }; //
58   key <AB10> {   [ minus,               underscore,    any,any ]   }; //
59
60   include "keypad(comma)"
61 };
62
63 partial alphanumeric_keys
64 xkb_symbols "cyralpha" {
65
66   key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
67
68   key <AD01> {   [ Cyrillic_lje,        Cyrillic_LJE,   any,any ]   }; // q
69   key <AD02> {   [ Cyrillic_nje,        Cyrillic_NJE,   any,any ]   }; // w
70   key <AD03> {   [ Cyrillic_ie,         Cyrillic_IE,    any,any ]   }; // e
71   key <AD04> {   [ Cyrillic_er,         Cyrillic_ER,    any,any ]   }; // r
72   key <AD05> {   [ Cyrillic_te,         Cyrillic_TE,    any,any ]   }; // t
73   key <AD06> {   [ Cyrillic_ze,         Cyrillic_ZE,    any,any ]   }; // y
74   key <AD07> {   [ Cyrillic_u,          Cyrillic_U,     any,any ]   }; // u
75   key <AD08> {   [ Cyrillic_i,          Cyrillic_I,     any,any ]   }; // i
76   key <AD09> {   [ Cyrillic_o,          Cyrillic_O,     any,any ]   }; // o
77   key <AD10> {   [ Cyrillic_pe,         Cyrillic_PE,    any,any ]   }; // p
78   key <AD11> {   [ Cyrillic_sha,        Cyrillic_SHA,   any,any ]   }; // [ {
79   key <AD12> {   [ Serbian_dje,         Serbian_DJE,    any,any ]   }; // ] }
80
81   key <AC01> {   [ Cyrillic_a,          Cyrillic_A,     any,any ]   }; // a
82   key <AC02> {   [ Cyrillic_es,         Cyrillic_ES,    any,any ]   }; // s
83   key <AC03> {   [ Cyrillic_de,         Cyrillic_DE,    any,any ]   }; // d
84   key <AC04> {   [ Cyrillic_ef,         Cyrillic_EF,    any,any ]   }; // f
85   key <AC05> {   [ Cyrillic_ghe,        Cyrillic_GHE,   any,any ]   }; // g
86   key <AC06> {   [ Cyrillic_ha,         Cyrillic_HA,    any,any ]   }; // h
87   key <AC07> {   [ Cyrillic_je,         Cyrillic_JE,    any,any ]   }; // j
88   key <AC08> {   [ Cyrillic_ka,         Cyrillic_KA,    any,any ]   }; // k
89   key <AC09> {   [ Cyrillic_el,         Cyrillic_EL,    any,any ]   }; // l
90   key <AC10> {   [ Cyrillic_che,        Cyrillic_CHE,   any,any ]   }; // ; :
91   key <AC11> {   [ Serbian_tshe,        Serbian_TSHE,   any,any ]   }; // ' "
92   key <BKSL> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // \ |
93
94   key <AB01> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // z
95   key <AB02> {   [ Cyrillic_dzhe,       Cyrillic_DZHE,  any,any ]   }; // x
96   key <AB03> {   [ Cyrillic_tse,        Cyrillic_TSE,   any,any ]   }; // c
97   key <AB04> {   [ Cyrillic_ve,         Cyrillic_VE,    any,any ]   }; // v
98   key <AB05> {   [ Cyrillic_be,         Cyrillic_BE,    any,any ]   }; // b
99   key <AB06> {   [ Cyrillic_en,         Cyrillic_EN,    any,any ]   }; // n
100   key <AB07> {   [ Cyrillic_em,         Cyrillic_EM,    any,any ]   }; // m
101 };
102
103
104 partial alphanumeric_keys
105 xkb_symbols "latalpha" {
106
107   key.type[Group1] = "SERBIAN_ALPHABETIC";
108
109   key <AD01> {   [ q,                   Q,             any,any ]   }; //
110   key <AD02> {   [ w,                   W,             any,any ]   }; //
111   key <AD03> {   [ e,                   E,             any,any ]   }; //
112   key <AD04> {   [ r,                   R,             any,any ]   }; //
113   key <AD05> {   [ t,                   T,             any,any ]   }; //
114   key <AD06> {   [ z,                   Z,             any,any ]   }; //
115   key <AD07> {   [ u,                   U,             any,any ]   }; //
116   key <AD08> {   [ i,                   I,             any,any ]   }; //
117   key <AD09> {   [ o,                   O,             any,any ]   }; //
118   key <AD10> {   [ p,                   P,             any,any ]   }; //
119   key <AD11> {   [ scaron,              Scaron,        any,any ]   }; //
120   key <AD12> {   [ dstroke,             Dstroke,       any,any ]   }; //
121
122   key <AC01> {   [ a,                   A,             any,any ]   }; //
123   key <AC02> {   [ s,                   S,             any,any ]   }; //
124   key <AC03> {   [ d,                   D,             any,any ]   }; //
125   key <AC04> {   [ f,                   F,             any,any ]   }; //
126   key <AC05> {   [ g,                   G,             any,any ]   }; //
127   key <AC06> {   [ h,                   H,             any,any ]   }; //
128   key <AC07> {   [ j,                   J,             any,any ]   }; //
129   key <AC08> {   [ k,                   K,             any,any ]   }; //
130   key <AC09> {   [ l,                   L,             any,any ]   }; //
131   key <AC10> {   [ ccaron,              Ccaron,        any,any ]   }; //
132   key <AC11> {   [ cacute,              Cacute,        any,any ]   }; //
133   key <BKSL> {   [ zcaron,              Zcaron,        any,any ]   }; //
134
135   key <AB01> {   [ y,                   Y,             any,any ]   }; //
136   key <AB02> {   [ x,                   X,             any,any ]   }; //
137   key <AB03> {   [ c,                   C,             any,any ]   }; //
138   key <AB04> {   [ v,                   V,             any,any ]   }; //
139   key <AB05> {   [ b,                   B,             any,any ]   }; //
140   key <AB06> {   [ n,                   N,             any,any ]   }; //
141   key <AB07> {   [ m,                   M,             any,any ]   }; //
142 };
143
144 partial alphanumeric_keys
145 xkb_symbols "twoletter" {
146   // These are letters which are written in latin transcription with two-characters.
147
148   key <AD01> {   type[Group1] = "SERBIAN_CAPS",
149                  [ U1C9,                U1C8,         any,   U1C7 ]   }; // q
150   key <AD02> {   type[Group1] = "SERBIAN_CAPS",
151                  [ U1CC,                U1CB,         any,   U1CA ]   }; // w
152   key <AB02> {   type[Group1] = "SERBIAN_CAPS",
153                  [ U1C6,                U1C5,         any,   U1C4 ]   }; // x
154
155   // Also replace letter Y with Zcaron, since Y is of no use any longer
156   key <AB01> {   [ zcaron,              Zcaron,        any,any ]   }; //
157 };
158
159 partial alphanumeric_keys
160 xkb_symbols "level3" {
161   key <TLDE> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ` ~
162   key <AE01> {   [ any,any,     dead_tilde,          NoSymbol ]   }; // 1 !
163   key <AE02> {   [ any,any,     dead_caron,          NoSymbol ]   }; // 2 @
164   key <AE03> {   [ any,any,     dead_circumflex,     NoSymbol ]   }; // 3 #
165   key <AE04> {   [ any,any,     dead_breve,          NoSymbol ]   }; // 4 $
166   key <AE05> {   [ any,any,     dead_abovering,      NoSymbol ]   }; // 5 %
167   key <AE06> {   [ any,any,     dead_ogonek,         NoSymbol ]   }; // 6 ^
168   key <AE07> {   [ any,any,     dead_grave,          NoSymbol ]   }; // 7 &
169   key <AE08> {   [ any,any,     dead_abovedot,       NoSymbol ]   }; // 8 *
170   key <AE09> {   [ any,any,     dead_acute,          NoSymbol ]   }; // 9 (
171   key <AE10> {   [ any,any,     dead_doubleacute,    NoSymbol ]   }; // 0 )
172   key <AE11> {   [ any,any,     dead_diaeresis,      NoSymbol ]   }; // - _
173   key <AE12> {   [ any,any,     dead_cedilla,        NoSymbol ]   }; // = +
174
175   key <AD01> {   [ any,any,     backslash,           NoSymbol ]   }; // q
176   key <AD02> {   [ any,any,     bar,                 NoSymbol ]   }; // w
177   key <AD03> {   [ any,any,     EuroSign,            NoSymbol ]   }; // e
178   key <AD04> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // r
179   key <AD05> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // t
180   key <AD06> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // y
181   key <AD07> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // u
182   key <AD08> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // i
183   key <AD09> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // o
184   key <AD10> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // p
185   key <AD11> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // [
186   key <AD12> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ]
187
188   key <AC01> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // a
189   key <AC02> {   [ any,any,     doublelowquotemark,  NoSymbol ]   }; // s
190   key <AC03> {   [ any,any,     leftdoublequotemark, NoSymbol ]   }; // d
191   key <AC04> {   [ any,any,     bracketleft,         NoSymbol ]   }; // f
192   key <AC05> {   [ any,any,     bracketright,        NoSymbol ]   }; // g
193   key <AC06> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // h
194   key <AC07> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // j
195   key <AC08> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // k
196   key <AC09> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // l
197   key <AC10> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ;
198   key <AC11> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // '
199   key <BKSL> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // \
200
201   key <AB01> {   [ any,any,     leftsinglequotemark, NoSymbol ]   }; // z
202   key <AB02> {   [ any,any,     rightsinglequotemark,NoSymbol ]   }; // x
203   key <AB03> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // c
204   key <AB04> {   [ any,any,     at,                  NoSymbol ]   }; // v
205   key <AB05> {   [ any,any,     braceleft,           NoSymbol ]   }; // b
206   key <AB06> {   [ any,any,     braceright,          NoSymbol ]   }; // n
207   key <AB07> {   [ any,any,     asciicircum,         NoSymbol ]   }; // m
208   key <AB08> {   [ any,any,     less,                NoSymbol ]   }; // , <
209   key <AB09> {   [ any,any,     greater,             NoSymbol ]   }; // . >
210   key <AB10> {   [ any,any,     emdash,              endash   ]   }; // / ?
211
212 };
213
214 partial alphanumeric_keys
215 xkb_symbols "latin" {
216
217   name[Group1]= "Serbian - Latin";
218
219   include "srp(level3)"
220   include "srp(common)"
221   include "srp(latalpha)"
222   include "level3(ralt_switch)"
223 };
224
225 partial alphanumeric_keys
226 xkb_symbols "latinunicode" {
227   // This mapping supports the Unicode characters 0x1c4-0x1cc (dz, lj, and nj
228   // as single character). You get the title form with AltGr+Shift.
229
230   name[Group1]= "Serbian - Latin Unicode";
231
232   include "srp(latin)"
233   include "srp(twoletter)"
234 };
235
236 partial alphanumeric_keys
237 xkb_symbols "latinyz" {
238   // For those who insist on using "english-position" Z and Y.
239
240   name[Group1]= "Serbian - Latin qwerty";
241
242   include "srp(latin)"
243
244   key <AD06> {   [ y,                   Y,             any,any ]   }; // y
245   key <AB01> {   [ z,                   Z,             any,any ]   }; // z
246 };
247
248 partial alphanumeric_keys
249 xkb_symbols "latinunicodeyz" {
250   // Unicode, ZHE and Z swapped.
251
252   name[Group1]= "Serbian - Latin Unicode qwerty";
253
254   include "srp(latinunicode)"
255
256   key <AD06> {   [ zcaron,              Zcaron,        any,any ]   }; // y
257   key <AB01> {   [ z,                   Z,             any,any ]   }; // z
258 };
259
260 xkb_symbols "alternatequotes" {
261   // Another acceptable »pair of quotes« for Serbian 
262
263   name[Group1]= "Serbian - With guillemots";
264
265   include "srp(basic)"
266
267   key <AC02> {   [ any,any,     guillemotright, NoSymbol ]   }; // s
268   key <AC03> {   [ any,any,     guillemotleft,  NoSymbol ]   }; // d
269 };
270
271 xkb_symbols "latinalternatequotes" {
272   // Another acceptable »pair of quotes« for Serbian 
273
274   name[Group1]= "Serbian - Latin with guillemots";
275
276   include "srp(latin)"
277
278   key <AC02> {   [ any,any,     guillemotright, NoSymbol ]   }; // s
279   key <AC03> {   [ any,any,     guillemotleft,  NoSymbol ]   }; // d
280 };