2 // Iranian keyboard layout,
3 // based on National Iranian Keyboard Standard (ISIRI 2901:1994),
6 // Copyright (C) 2004,2005 Sharif FarsiWeb, Inc.
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.
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.
18 // A copy of the GNU General Public License is available from
19 // <http://www.gnu.org/licenses/gpl.txt>.
21 // Author: Behnam Esfahbod <behnam@esfahbod.info>
27 partial default alphanumeric_keys
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 ] };
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 ] };
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 ] };
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 ] };
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 ] };
86 include "level3(ralt_switch)"
90 partial hidden alphanumeric_keys
91 xkb_symbols "part_pro" {
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 ] };
106 partial hidden alphanumeric_keys
107 xkb_symbols "part_keypad" {
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 ] };
115 key <KPEN> { [ KP_Enter ] };
116 key <KPEQ> { [ equal ] };
118 key <KP7> { [ KP_Home, 0x10006f7 ] };
119 key <KP8> { [ KP_Up, 0x10006f8 ] };
120 key <KP9> { [ KP_Prior, 0x10006f9 ] };
122 key <KP4> { [ KP_Left, 0x10006f4 ] };
123 key <KP5> { [ KP_Begin, 0x10006f5 ] };
124 key <KP6> { [ KP_Right, 0x10006f6 ] };
126 key <KP1> { [ KP_End, 0x10006f1 ] };
127 key <KP2> { [ KP_Down, 0x10006f2 ] };
128 key <KP3> { [ KP_Next, 0x10006f3 ] };
130 key <KP0> { [ KP_Insert, 0x10006f0 ] };
131 key <KPDL> { [ KP_Delete, 0x100066b ] };
136 partial alphanumeric_keys
139 include "ir(part_pro)"
141 name[Group1]= "Iran - Pro";
145 // Persian Keypad leyout
147 partial alphanumeric_keys
148 xkb_symbols "keypad" {
150 include "ir(part_keypad)"
152 name[Group1]= "Iran - Keypad";
156 // 4-Level leyout with Persian Keypad leyout
158 partial alphanumeric_keys
159 xkb_symbols "pro_keypad" {
161 include "ir(part_keypad)"
162 include "ir(part_pro)"
164 name[Group1]= "Iran - Pro Keypad";