summaryrefslogtreecommitdiff
path: root/symbols/sr
blob: 45eee54a9fc60c6a5caeec7ba608a6b60a6603f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
// $XFree86$
// Serbian XKB keyboard mapping (derived from "Danube" D.2)
//
// Danube D.2 from 2003-05-12 is available at http://srpski.org/dunav/
//
// Original authors:
//  Danilo Segan (Данило Шеган) <dsegan@gmx.net>
//  Chusslove Illich (Часлав Илић) <chaslav@sezampro.yu>
//
// Modified for inclusion in XFree86 by Danilo Segan <dsegan@gmx.net>
//  
//

default partial alphanumeric_keys
xkb_symbols "default" {

  name[Group1]= "Serbian Cyrillic";

  include "sr(level3)"
  include "sr(common)"
  include "sr(cyralpha)"
  include "level3(ralt_switch_multikey)"
};

partial alphanumeric_keys
xkb_symbols "yz" {
  // Cyrillic_zhe and Cyrillic_ze swapped.

  name[Group1]= "Serbian Cyrillic (swap Zhe, Ze)";

  include "sr(default)"

  key <AD06> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // y
  key <AB01> {   [ Cyrillic_ze,         Cyrillic_ZE,    any,any ]   }; // z
};

partial alphanumeric_keys
xkb_symbols "common" {
  // "Common" keys: keys which are same for both latin and cyrillic keyboards

  key.type[Group1] = "FOUR_LEVEL";

  key <TLDE> {   [ quoteleft,           asciitilde,    any,any ]   }; //
  key <AE01> {   [ 1,                   exclam,        any,any ]   }; //
  key <AE02> {   [ 2,                   quotedbl,      any,any ]   }; //
  key <AE03> {   [ 3,                   numbersign,    any,any ]   }; //
  key <AE04> {   [ 4,                   dollar,        any,any ]   }; //
  key <AE05> {   [ 5,                   percent,       any,any ]   }; //
  key <AE06> {   [ 6,                   ampersand,     any,any ]   }; //
  key <AE07> {   [ 7,                   slash,         any,any ]   }; //
  key <AE08> {   [ 8,                   parenleft,     any,any ]   }; //
  key <AE09> {   [ 9,                   parenright,    any,any ]   }; //
  key <AE10> {   [ 0,                   equal,         any,any ]   }; //
  key <AE11> {   [ apostrophe,          question,      any,any ]   }; //
  key <AE12> {   [ plus,                asterisk,      any,any ]   }; //

  key <AB08> {   [ comma,               semicolon,     any,any ]   }; //
  key <AB09> {   [ period,              colon,         any,any ]   }; //
  key <AB10> {   [ minus,               underscore,    any,any ]   }; //
};

partial alphanumeric_keys
xkb_symbols "cyralpha" {

  key.type[Group1] = "FOUR_LEVEL_ALPHABETIC";

  key <AD01> {   [ Cyrillic_lje,        Cyrillic_LJE,   any,any ]   }; // q
  key <AD02> {   [ Cyrillic_nje,        Cyrillic_NJE,   any,any ]   }; // w
  key <AD03> {   [ Cyrillic_ie,         Cyrillic_IE,    any,any ]   }; // e
  key <AD04> {   [ Cyrillic_er,         Cyrillic_ER,    any,any ]   }; // r
  key <AD05> {   [ Cyrillic_te,         Cyrillic_TE,    any,any ]   }; // t
  key <AD06> {   [ Cyrillic_ze,         Cyrillic_ZE,    any,any ]   }; // y
  key <AD07> {   [ Cyrillic_u,          Cyrillic_U,     any,any ]   }; // u
  key <AD08> {   [ Cyrillic_i,          Cyrillic_I,     any,any ]   }; // i
  key <AD09> {   [ Cyrillic_o,          Cyrillic_O,     any,any ]   }; // o
  key <AD10> {   [ Cyrillic_pe,         Cyrillic_PE,    any,any ]   }; // p
  key <AD11> {   [ Cyrillic_sha,        Cyrillic_SHA,   any,any ]   }; // [ {
  key <AD12> {   [ Serbian_dje,         Serbian_DJE,    any,any ]   }; // ] }

  key <AC01> {   [ Cyrillic_a,          Cyrillic_A,     any,any ]   }; // a
  key <AC02> {   [ Cyrillic_es,         Cyrillic_ES,    any,any ]   }; // s
  key <AC03> {   [ Cyrillic_de,         Cyrillic_DE,    any,any ]   }; // d
  key <AC04> {   [ Cyrillic_ef,         Cyrillic_EF,    any,any ]   }; // f
  key <AC05> {   [ Cyrillic_ghe,        Cyrillic_GHE,   any,any ]   }; // g
  key <AC06> {   [ Cyrillic_ha,         Cyrillic_HA,    any,any ]   }; // h
  key <AC07> {   [ Cyrillic_je,         Cyrillic_JE,    any,any ]   }; // j
  key <AC08> {   [ Cyrillic_ka,         Cyrillic_KA,    any,any ]   }; // k
  key <AC09> {   [ Cyrillic_el,         Cyrillic_EL,    any,any ]   }; // l
  key <AC10> {   [ Cyrillic_che,        Cyrillic_CHE,   any,any ]   }; // ; :
  key <AC11> {   [ Serbian_tshe,        Serbian_TSHE,   any,any ]   }; // ' "
  key <BKSL> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // \ |

  key <AB01> {   [ Cyrillic_zhe,        Cyrillic_ZHE,   any,any ]   }; // z
  key <AB02> {   [ Cyrillic_dzhe,       Cyrillic_DZHE,  any,any ]   }; // x
  key <AB03> {   [ Cyrillic_tse,        Cyrillic_TSE,   any,any ]   }; // c
  key <AB04> {   [ Cyrillic_ve,         Cyrillic_VE,    any,any ]   }; // v
  key <AB05> {   [ Cyrillic_be,         Cyrillic_BE,    any,any ]   }; // b
  key <AB06> {   [ Cyrillic_en,         Cyrillic_EN,    any,any ]   }; // n
  key <AB07> {   [ Cyrillic_em,         Cyrillic_EM,    any,any ]   }; // m
};


partial alphanumeric_keys
xkb_symbols "latalpha" {

  key.type[Group1] = "SERBIAN_ALPHABETIC";

  key <AD01> {   [ q,                   Q,             any,any ]   }; //
  key <AD02> {   [ w,                   W,             any,any ]   }; //
  key <AD03> {   [ e,                   E,             any,any ]   }; //
  key <AD04> {   [ r,                   R,             any,any ]   }; //
  key <AD05> {   [ t,                   T,             any,any ]   }; //
  key <AD06> {   [ z,                   Z,             any,any ]   }; //
  key <AD07> {   [ u,                   U,             any,any ]   }; //
  key <AD08> {   [ i,                   I,             any,any ]   }; //
  key <AD09> {   [ o,                   O,             any,any ]   }; //
  key <AD10> {   [ p,                   P,             any,any ]   }; //
  key <AD11> {   [ scaron,              Scaron,        any,any ]   }; //
  key <AD12> {   [ dstroke,             Dstroke,       any,any ]   }; //

  key <AC01> {   [ a,                   A,             any,any ]   }; //
  key <AC02> {   [ s,                   S,             any,any ]   }; //
  key <AC03> {   [ d,                   D,             any,any ]   }; //
  key <AC04> {   [ f,                   F,             any,any ]   }; //
  key <AC05> {   [ g,                   G,             any,any ]   }; //
  key <AC06> {   [ h,                   H,             any,any ]   }; //
  key <AC07> {   [ j,                   J,             any,any ]   }; //
  key <AC08> {   [ k,                   K,             any,any ]   }; //
  key <AC09> {   [ l,                   L,             any,any ]   }; //
  key <AC10> {   [ ccaron,              Ccaron,        any,any ]   }; //
  key <AC11> {   [ cacute,              Cacute,        any,any ]   }; //
  key <BKSL> {   [ zcaron,              Zcaron,        any,any ]   }; //

  key <AB01> {   [ y,                   Y,             any,any ]   }; //
  key <AB02> {   [ x,                   X,             any,any ]   }; //
  key <AB03> {   [ c,                   C,             any,any ]   }; //
  key <AB04> {   [ v,                   V,             any,any ]   }; //
  key <AB05> {   [ b,                   B,             any,any ]   }; //
  key <AB06> {   [ n,                   N,             any,any ]   }; //
  key <AB07> {   [ m,                   M,             any,any ]   }; //
};

partial alphanumeric_keys
xkb_symbols "twoletter" {
  // These are letters which are written in latin transcription with two-characters.

  key <AD01> {   type[Group1] = "SERBIAN_CAPS",
                 [ U1C9,                U1C8,         any,   U1C7 ]   }; // q
  key <AD02> {   type[Group1] = "SERBIAN_CAPS",
                 [ U1CC,                U1CB,         any,   U1CA ]   }; // w
  key <AB02> {   type[Group1] = "SERBIAN_CAPS",
                 [ U1C6,                U1C5,         any,   U1C4 ]   }; // x

  // Also replace letter Y with Zcaron, since Y is of no use any longer
  key <AB01> {   [ zcaron,              Zcaron,        any,any ]   }; //
};

partial alphanumeric_keys
xkb_symbols "level3" {
  key <TLDE> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ` ~
  key <AE01> {   [ any,any,     dead_tilde,          NoSymbol ]   }; // 1 !
  key <AE02> {   [ any,any,     dead_caron,          NoSymbol ]   }; // 2 @
  key <AE03> {   [ any,any,     dead_circumflex,     NoSymbol ]   }; // 3 #
  key <AE04> {   [ any,any,     dead_breve,          NoSymbol ]   }; // 4 $
  key <AE05> {   [ any,any,     dead_abovering,      NoSymbol ]   }; // 5 %
  key <AE06> {   [ any,any,     dead_ogonek,         NoSymbol ]   }; // 6 ^
  key <AE07> {   [ any,any,     dead_grave,          NoSymbol ]   }; // 7 &
  key <AE08> {   [ any,any,     dead_abovedot,       NoSymbol ]   }; // 8 *
  key <AE09> {   [ any,any,     dead_acute,          NoSymbol ]   }; // 9 (
  key <AE10> {   [ any,any,     dead_doubleacute,    NoSymbol ]   }; // 0 )
  key <AE11> {   [ any,any,     dead_diaeresis,      NoSymbol ]   }; // - _
  key <AE12> {   [ any,any,     dead_cedilla,        NoSymbol ]   }; // = +

  key <AD01> {   [ any,any,     backslash,           NoSymbol ]   }; // q
  key <AD02> {   [ any,any,     bar,                 NoSymbol ]   }; // w
  key <AD03> {   [ any,any,     EuroSign,            NoSymbol ]   }; // e
  key <AD04> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // r
  key <AD05> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // t
  key <AD06> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // y
  key <AD07> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // u
  key <AD08> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // i
  key <AD09> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // o
  key <AD10> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // p
  key <AD11> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // [
  key <AD12> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ]

  key <AC01> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // a
  key <AC02> {   [ any,any,     doublelowquotemark,  NoSymbol ]   }; // s
  key <AC03> {   [ any,any,     leftdoublequotemark, NoSymbol ]   }; // d
  key <AC04> {   [ any,any,     bracketleft,         NoSymbol ]   }; // f
  key <AC05> {   [ any,any,     bracketright,        NoSymbol ]   }; // g
  key <AC06> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // h
  key <AC07> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // j
  key <AC08> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // k
  key <AC09> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // l
  key <AC10> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // ;
  key <AC11> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // '
  key <BKSL> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // \

  key <AB01> {   [ any,any,     leftsinglequotemark, NoSymbol ]   }; // z
  key <AB02> {   [ any,any,     rightsinglequotemark,NoSymbol ]   }; // x
  key <AB03> {   [ any,any,     NoSymbol,            NoSymbol ]   }; // c
  key <AB04> {   [ any,any,     at,                  NoSymbol ]   }; // v
  key <AB05> {   [ any,any,     braceleft,           NoSymbol ]   }; // b
  key <AB06> {   [ any,any,     braceright,          NoSymbol ]   }; // n
  key <AB07> {   [ any,any,     asciicircum,         NoSymbol ]   }; // m
  key <AB08> {   [ any,any,     less,                NoSymbol ]   }; // , <
  key <AB09> {   [ any,any,     greater,             NoSymbol ]   }; // . >
  key <AB10> {   [ any,any,     emdash,              endash   ]   }; // / ?

};