fixing #4102
[xorg/xkeyboard-config] / symbols / ir
1 // $XKeyboardConfig$
2 // Iranian keyboard layout,
3 // based on National Iranian Keyboard Standard (ISIRI 2901:1994),
4 // with additions.
5 //
6 // Copyright (C) 2004,2005  Sharif FarsiWeb, Inc.
7 //
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU General Public License
10 // as published by the Free Software Foundation; either version 2
11 // of the License, or (at your option) any later version.
12 // 
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 // 
18 // A copy of the GNU General Public License is available from
19 // <http://www.gnu.org/licenses/gpl.txt>.
20 //
21 // Author: Behnam Esfahbod <behnam@esfahbod.info>
22 //
23
24
25 // 3-Level layout
26
27 partial default alphanumeric_keys
28 xkb_symbols "basic" {
29     name[Group1]= "Iran";
30
31     // Persian digits
32     key <AE01> { [ 0x10006f1,   exclam,         quoteleft               ] };
33     key <AE02> { [ 0x10006f2,   0x100066c,      at                      ] };
34     key <AE03> { [ 0x10006f3,   0x100066b,      numbersign              ] };
35     key <AE04> { [ 0x10006f4,   0x100fdfc,      dollar                  ] };
36     key <AE05> { [ 0x10006f5,   0x100066a,      percent                 ] };
37     key <AE06> { [ 0x10006f6,   multiply,       asciicircum             ] };
38     key <AE07> { [ 0x10006f7,   Arabic_comma,   ampersand               ] };
39     key <AE08> { [ 0x10006f8,   asterisk,       enfilledcircbullet      ] };
40     key <AE09> { [ 0x10006f9,   parenright,     0x100200e               ] };
41     key <AE10> { [ 0x10006f0,   parenleft,      0x100200f               ] };
42
43     // Other 3-Level symbols
44     key <TLDE> { [ 0x100200d,           division,               asciitilde      ] };
45     key <AE11> { [ minus,               Arabic_tatweel,         underscore      ] };
46     key <AE12> { [ equal,               plus,                   0x1002212       ] };
47     key <BKSL> { [ backslash,           bar,                    0x1002010       ] };
48     key <SPCE> { [ space,               0x100200c,              nobreakspace    ] };
49
50     key <AD01> { [ Arabic_dad,          Arabic_sukun,           degree          ] };
51     key <AD02> { [ Arabic_sad,          Arabic_dammatan,        VoidSymbol      ] };
52     key <AD03> { [ Arabic_theh,         Arabic_kasratan,        0x13a4          ] };
53     key <AD04> { [ Arabic_qaf,          Arabic_fathatan,        VoidSymbol      ] };
54     key <AD05> { [ Arabic_feh,          Arabic_damma,           VoidSymbol      ] };
55     key <AD06> { [ Arabic_ghain,        Arabic_kasra,           VoidSymbol      ] };
56     key <AD07> { [ Arabic_ain,          Arabic_fatha,           VoidSymbol      ] };
57     key <AD08> { [ Arabic_heh,          Arabic_shadda,          0x100202d       ] };
58     key <AD09> { [ Arabic_khah,         bracketright,           0x100202e       ] };
59     key <AD10> { [ Arabic_hah,          bracketleft,            0x100202c       ] };
60     key <AD11> { [ Arabic_jeem,         braceright,             0x100202a       ] };
61     key <AD12> { [ 0x1000686,           braceleft,              0x100202b       ] };
62
63     key <AC01> { [ Arabic_sheen,        Arabic_hamzaonwaw,      VoidSymbol      ] };
64     key <AC02> { [ Arabic_seen,         Arabic_hamzaonyeh,      VoidSymbol      ] };
65     key <AC03> { [ 0x10006cc,           Arabic_yeh,             Arabic_alefmaksura ] };
66     key <AC04> { [ Arabic_beh,          Arabic_hamzaunderalef,  VoidSymbol      ] };
67     key <AC05> { [ Arabic_lam,          Arabic_hamzaonalef,     VoidSymbol      ] };
68     key <AC06> { [ Arabic_alef,         Arabic_maddaonalef,     0x1000671       ] };
69     key <AC07> { [ Arabic_teh,          Arabic_tehmarbuta,      VoidSymbol      ] };
70     key <AC08> { [ Arabic_noon,         guillemotright,         0x100fd3e       ] };
71     key <AC09> { [ Arabic_meem,         guillemotleft,          0x100fd3f       ] };
72     key <AC10> { [ 0x10006a9,           colon,                  semicolon       ] };
73     key <AC11> { [ 0x10006af,           Arabic_semicolon,       quotedbl        ] };
74
75     key <AB01> { [ Arabic_zah,          Arabic_kaf,             VoidSymbol      ] };
76     key <AB02> { [ Arabic_tah,          0x1000653,              VoidSymbol      ] };
77     key <AB03> { [ Arabic_zain,         0x1000698,              VoidSymbol      ] };
78     key <AB04> { [ Arabic_ra,           0x1000670,              0x1000656       ] };
79     key <AB05> { [ Arabic_thal,         0x100200c,              0x100200d       ] };
80     key <AB06> { [ Arabic_dal,          0x1000654,              0x1000655       ] };
81     key <AB07> { [ 0x100067e,           Arabic_hamza,           ellipsis        ] };
82     key <AB08> { [ Arabic_waw,          greater,                comma           ] };
83     key <AB09> { [ period,              less,                   apostrophe      ] };
84     key <AB10> { [ slash,               Arabic_question_mark,   question        ] };
85
86     include "level3(ralt_switch)"
87 };
88
89
90 partial hidden alphanumeric_keys
91 xkb_symbols "part_pro" {
92
93     // Persian and English (ASCII) digits
94     key <AE01> { [ 0x10006f1,   exclam,         quoteleft,              1       ] };
95     key <AE02> { [ 0x10006f2,   0x100066c,      at,                     2       ] };
96     key <AE03> { [ 0x10006f3,   0x100066b,      numbersign,             3       ] };
97     key <AE04> { [ 0x10006f4,   0x100fdfc,      dollar,                 4       ] };
98     key <AE05> { [ 0x10006f5,   0x100066a,      percent,                5       ] };
99     key <AE06> { [ 0x10006f6,   multiply,       asciicircum,            6       ] };
100     key <AE07> { [ 0x10006f7,   Arabic_comma,   ampersand,              7       ] };
101     key <AE08> { [ 0x10006f8,   asterisk,       enfilledcircbullet,     8       ] };
102     key <AE09> { [ 0x10006f9,   parenright,     0x100200e,              9       ] };
103     key <AE10> { [ 0x10006f0,   parenleft,      0x100200f,              0       ] };
104 };
105
106 partial hidden alphanumeric_keys
107 xkb_symbols "part_keypad" {
108
109     // Persian digits and Mathematical operators
110     key <KPDV> { [ division,    XF86_Ungrab     ] };
111     key <KPMU> { [ multiply,    XF86_ClearGrab  ] };
112     key <KPSU> { [ 0x1002212,   XF86_Prev_VMode ] };
113     key <KPAD> { [ plus,        XF86_Next_VMode ] };
114
115     key <KPEN> { [ KP_Enter     ] };
116     key <KPEQ> { [ equal        ] };
117
118     key <KP7>  { [ KP_Home,     0x10006f7       ] };
119     key <KP8>  { [ KP_Up,       0x10006f8       ] };
120     key <KP9>  { [ KP_Prior,    0x10006f9       ] };
121
122     key <KP4>  { [ KP_Left,     0x10006f4       ] };
123     key <KP5>  { [ KP_Begin,    0x10006f5       ] };
124     key <KP6>  { [ KP_Right,    0x10006f6       ] };
125
126     key <KP1>  { [ KP_End,      0x10006f1       ] };
127     key <KP2>  { [ KP_Down,     0x10006f2       ] };
128     key <KP3>  { [ KP_Next,     0x10006f3       ] };
129
130     key <KP0>  { [ KP_Insert,   0x10006f0       ] };
131     key <KPDL> { [ KP_Delete,   0x100066b       ] };
132 };
133
134 // 4-Level leyout
135
136 partial alphanumeric_keys
137 xkb_symbols "pro" {
138     include "ir(basic)"
139     include "ir(part_pro)"
140
141     name[Group1]= "Iran - Pro";
142 };
143
144
145 // Persian Keypad leyout
146
147 partial alphanumeric_keys
148 xkb_symbols "keypad" {
149     include "ir(basic)"
150     include "ir(part_keypad)"
151
152     name[Group1]= "Iran - Keypad";
153 };
154
155
156 // 4-Level leyout with Persian Keypad leyout
157
158 partial alphanumeric_keys
159 xkb_symbols "pro_keypad" {
160     include "ir(basic)"
161     include "ir(part_keypad)"
162     include "ir(part_pro)"
163
164     name[Group1]= "Iran - Pro Keypad";
165
166 };
167