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