Balkanian revolution
[xorg/xkeyboard-config] / symbols / cs
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@kvota.net>
8 //  Chusslove Illich (Часлав Илић) <chaslav@sezampro.yu>
9 //
10 // Danilo Segan <danilo@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 "cs(level3)"
23   include "cs(common)"
24   include "cs(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 "cs(latalpha)"
35   include "cs(level3)"
36   include "cs(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]= "Serbia - Z and ZHE swapped";
46
47   include "cs(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 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> {   [ quoteleft,           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 "keypad(comma)"
78 };
79
80 partial 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 alphanumeric_keys
122 xkb_symbols "latalpha" {
123
124   key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";
125
126   include "latin(type3)"
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 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 alphanumeric_keys
152 xkb_symbols "level3" {
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 alphanumeric_keys
207 xkb_symbols "latinunicode" {
208   // This mapping supports the Unicode characters 0x1c4-0x1cc (dz, lj, and nj
209   // as single character). You get the title form with AltGr+Shift.
210
211   name[Group1]= "Serbia - Latin Unicode";
212
213   include "cs(latin)"
214   include "cs(twoletter)"
215 };
216
217 partial alphanumeric_keys
218 xkb_symbols "latinyz" {
219   // For those who insist on using "english-position" Z and Y.
220
221   name[Group1]= "Serbia - Latin qwerty";
222
223   include "cs(latin)"
224
225   key <AD06> {   [ y,                   Y,             any,any ]   }; // y
226   key <AB01> {   [ z,                   Z,             any,any ]   }; // z
227 };
228
229 partial alphanumeric_keys
230 xkb_symbols "latinunicodeyz" {
231   // Unicode, ZHE and Z swapped.
232
233   name[Group1]= "Serbia - Latin Unicode qwerty";
234
235   include "cs(latinunicode)"
236
237   key <AD06> {   [ zcaron,              Zcaron,        any,any ]   }; // y
238   key <AB01> {   [ z,                   Z,             any,any ]   }; // z
239 };
240
241 xkb_symbols "alternatequotes" {
242   // Another acceptable »pair of quotes« for Serbian 
243
244   name[Group1]= "Serbia - With guillemots";
245
246   include "cs(basic)"
247
248   key <AC02> {   [ any,any,     guillemotright, NoSymbol ]   }; // s
249   key <AC03> {   [ any,any,     guillemotleft,  NoSymbol ]   }; // d
250 };
251
252 xkb_symbols "latinalternatequotes" {
253   // Another acceptable »pair of quotes« for Serbian 
254
255   name[Group1]= "Serbia - Latin with guillemots";
256
257   include "cs(latin)"
258
259   key <AC02> {   [ any,any,     guillemotright, NoSymbol ]   }; // s
260   key <AC03> {   [ any,any,     guillemotleft,  NoSymbol ]   }; // d
261 };