b26a87710ff6fcb45a10fd8cec81c19f9a43b2e3
[m17n/m17n-contrib.git] / im / hi-vedmata.mim
1 ;; hi-vedmata.mim -- Hindi input method with Remington method
2 ;; Copyright (C) 2010  Shantikunj, Haridwar, UK, INDIA <www.awgp.org>
3 ;; This file is part of the m17n contrib; a sub-part of the m17n
4 ;; library.
5
6 ;; The m17n library is free software; you can redistribute it and/or
7 ;; modify it under the terms of the GNU Lesser General Public License
8 ;; as published by the Free Software Foundation; either version 2.1 of
9 ;; the License, or (at your option) any later version.
10
11 ;; The m17n library is distributed in the hope that it will be useful,
12 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 ;; Lesser General Public License for more details.
15
16 ;; You should have received a copy of the GNU Lesser General Public
17 ;; License along with the m17n library; if not, write to the Free
18 ;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19 ;; 02111-1307, USA.
20
21 (input-method hi vedmata)
22
23 (description "Hindi input method for Remington typewriter layout. Author: Shantikunj, Haridwar, UK, INDIA <www.awgp.org>")
24
25
26
27 (title "वेदमाता हिन्दी")
28
29 (map
30         (starter
31                 (".") ("~") ("#") ("$") ("^") ("*") ((S-\ )) ((C-@))
32                 ("0") ("1") ("2") ("3") ("4")
33                 ("5") ("6") ("7") ("8") ("9")
34                 ("A") ("C") ("D") ("G") ("H") ("I") ("J") ("K") ("L")
35                 ("M") ("N") ("O") ("R") ("S") ("T") ("U") ("Y")
36                 ("a") ("b") ("c") ("d") ("e") ("f") ("g") ("h") ("i")
37                 ("j") ("k") ("l") ("m") ("n") ("o") ("p") ("q") ("r")
38                 ("s") ("t") ("u") ("v") ("w") ("x") ("y") ("z")
39                 ("[") ("{") ("]") ("}") ("P") ("Q") ("z") ("Z")
40                 ("E") ("F") ("X") ("B") ("-") ("_") ("(") (")")
41                 ("+") ("=") ("\"") ("|") (",") ("<") (">") ("?") ("/")
42                 ("@") ("&") ("%") ("V") ("`") (":") (";") ("W") ("'")
43         )
44
45         (consonant
46                 ((KP_1) "१")
47                 ((KP_2) "२")
48                 ((KP_3) "३")
49                 ((KP_4) "४")
50                 ((KP_5) "५")
51                 ((KP_6) "६")
52                 ((KP_7) "७")
53                 ((KP_8) "८")
54                 ((KP_9) "९")
55                 ((KP_0) "०")
56                 ((KP_Decimal) ".")
57                 ((KP_Divide) "/")
58                 ((KP_Multiply) "*")
59                 ((KP_Add) "+")
60                 ((KP_Subtract) "-") 
61         )
62
63
64         (chotiMatra
65                 ("f" "ि" (set C @-1))
66         )
67         (setFullChar
68                 ("e" "म" (insert C))
69                 ("r"  "त" (insert C))
70                 ("t"  "ज" (insert C))
71                 ("iQ"  "फ" (insert C))
72                 ("y" "ल" (insert C))
73                 ("u" "न" (insert C))
74                 ("i"  "प" (insert C))
75                 ("o"  "व" (insert C))
76                 ("p" "च" (insert C))
77                 ("d" "क" (insert C))
78                 ("G" "ळ" (insert C))
79                 ("g" "ह" (insert C))
80                 ("j" "र" (insert C))
81                 ("l" "स" (insert C))
82                 (";"    "य" (insert C))
83                 ("x"  "ग" (insert C))
84                 ("c"  "ब" (insert C))
85                 ("V"  "ट" (insert C))
86                 ("B"  "ठ" (insert C))
87                 ("b"  "इ" (insert C))
88                 ("N"  "छ" (insert C))
89                 ("n"  "द" (insert C))
90                 ("M"  "ड" (insert C))
91                 ("m"  "उ" (insert C))
92                 ("<"  "ढ" (insert C))
93                 (">"  "झ" (insert C))
94                 ("{k"  "क्ष" (insert C))
95                 ("Hk"  "भ" (insert C))
96                 ("Fk"  "थ" (insert C))
97                 ("'k"  "श" (insert C))
98                 ("\"k"  "ष" (insert C))
99                 (".k"  "ण" (insert C))
100                 ("/k"  "ध" (insert C))
101                 ("?k"  "घ" (insert C))
102                 ("[k"  "ख" (insert C))
103                 ("_"  "त्र" (insert C))
104                 ("J"  "श्र" (insert C))
105                 ("K"  "ज्ञ" (insert C))
106                 ("x@"  "ॻ" (insert C))
107                 ("t@"  "ॼ" (insert C))
108                 ("M@"  "ॾ" (insert C))
109                 ("c@"  "ॿ" (insert C))
110                 
111         )
112         (setHalfChar
113                 ("e" (delete @-) (insert B) "म"   (insert C))
114                 ("r"  (delete @-) (insert B)  "त"  (insert C))
115                 ("t"  (delete @-) (insert B) "ज"   (insert C))
116                 ("iQ" (delete @-) (insert B) "फ"   (insert C))
117                 ("y" (delete @-) (insert B) "ल"  (insert C))
118                 ("u" (delete @-) (insert B) "न"   (insert C))
119                 ("i" (delete @-) (insert B) "प"  (insert C))
120                 ("o" (delete @-) (insert B) "व"   (insert C))
121                 ("p" (delete @-) (insert B) "च"  (insert C))
122                 ("d" (delete @-) (insert B) "क"  (insert C))
123                 ("G" (delete @-) (insert B) "ळ"  (insert C))
124                 ("g" (delete @-) (insert B) "ह"  (insert C))
125                 ("j" (delete @-) (insert B) "र"   (insert C))
126                 ("l" (delete @-) (insert B) "स"  (insert C))
127                 (";" (delete @-) (insert B) "य"  (insert C))
128                 ("x" (delete @-) (insert B) "ग"  (insert C))
129                 ("c" (delete @-) (insert B) "ब"  (insert C))
130                 ("V" (delete @-) (insert B) "ट"  (insert C))
131                 ("B" (delete @-) (insert B) "ठ"  (insert C))
132                 ("b" (delete @-) (insert B) "इ"  (insert C))
133                 ("N" (delete @-) (insert B) "छ"  (insert C))
134                 ("n" (delete @-) (insert B) "द"  (insert C))
135                 ("M" (delete @-) (insert B) "ड"  (insert C))
136                 ("m" (delete @-) (insert B) "उ"  (insert C))
137                 ("<" (delete @-) (insert B) "ढ"  (insert C))
138                 (">" (delete @-) (insert B) "झ"  (insert C))
139                 ("{k" (delete @-) (insert B) "क्ष"  (insert C))
140                 ("Hk" (delete @-) (insert B) "भ"  (insert C))
141                 ("Fk" (delete @-) (insert B) "थ"  (insert C))
142                 ("'k" (delete @-) (insert B) "श"  (insert C))
143                 (".k" (delete @-) (insert B) "ण"  (insert C))
144                 ("\"k" (delete @-) (insert B) "ष" (insert C))
145                 ("[k" (delete @-) (insert B) "ख" (insert C))          
146         )
147         
148         (matra 
149                 ("~" "◌") 
150                 ("`" "्") 
151                 ("1" "़")
152                 ("2" "ृ")
153                 ("%" "ः")
154                 ("^" "=")
155                 ("q" "ु")
156                 ("W" "ॅ")
157                 ("w" "ू")
158                 ("A" "ँ")
159                 ("a" "ं")
160                 ("S" "ै")
161                 ("s" "े")
162                 ("h" "ी")
163                 ("k" "ा")
164                 ("sk" "ो")
165                 ("ks" "ो")
166                 ("kS" "ौ")
167                 ("Sk" "ौ")
168                 ("z" "्र")
169                 ("@" " ॒")
170                 ("ka"  "ां")
171                 ("kW" "ा" (delete @-) "ॉ")
172                 ("vW" "ॲ")
173                 (",W" "ऍ")
174                 ("vkW" "अा" (delete @-)(delete @-) "ऑ")
175                 ("ha"  "ीं")
176                 ("sa"  "ें")
177                 ("Sa"  "ैं")
178                 ("qa"  "ुं")
179                 ("wa"  "ूं")
180                 ("kA"  "ाँ")
181                 ("hA"  "ीँ")
182                 ("sA"  "ेँ")
183                 ("SA"  "ैँ")
184                 ("qA"  "ुँ")
185                 ("wA"  "ूँ")
186
187
188         )
189
190
191         (number
192 ;;              ("1" ".")
193 ;;              ("2" "ृ")
194                 ("3" "१")
195                 ("4" "२")
196                 ("5" "३")
197                 ("6" "४")
198                 ("7" "५")
199                 ("8" "६")
200                 ("9" "७")
201                 ("0" "८")
202                 ("-" "९")
203                 ("=" "०")
204         )
205
206 ;;      (symbol
207 ;;              ("!" "!")
208 ;;              ("@" "/")
209 ;;              ("$" "+")
210 ;;              ("&" "-")
211 ;;              ("*" "ञ")
212 ;;              ("(" ";")
213 ;;              ("=" "त्र")
214 ;;              ("]" ",")
215 ;;      )
216
217         (mainChar
218                 ("v" "अ")
219                 ("vk" (delete @-) "आ")
220                 ("vsk" (delete @-) "ओ")
221                 ("vks" (delete @-) "ओ")
222                 ("vSk" (delete @-) "औ")
223                 ("vkS" (delete @-) "औ")
224         )
225
226         (fullChar
227                 
228                 ("e" "म")
229                 ("r" "त")
230                 ("t" "ज")
231                 ("Q" "ऊ")
232                 ("y" "ल")
233                 ("u" "न")
234                 ("i" "प")
235                 ("o" "व")
236                 ("p" "च")
237                 ("d" "क")
238                 ("G" "ळ")
239                 ("g" "ह")
240                 ("j" "र")
241                 ("l" "स")
242                 (";" "य")
243                 ("x" "ग")
244                 ("c" "ब")
245                 ("V" "ट")
246                 ("B" "ठ")
247                 ("b" "इ")
248                 ("N" "छ")
249                 ("n" "द")
250                 ("M" "ड")
251                 ("m" "उ")
252                 ("<" "ढ")
253                 ("," "ए")
254                 (",s" "ऐ")
255                 (">" "झ")
256                 ("{k" "क्ष")
257                 ("Hk" "भ")
258                 ("Fk" "थ")
259                 ("'k" "श")
260                 ("\"k" "ष")
261                 (".k" "ण")
262                 ("/k" "ध")            
263                 ("?k" "घ")            
264                 ("[k" "ख")
265                 ("iQ" "फ")
266                 ("x@" "ॻ")
267                 ("t@" "ॼ")
268                 ("M@" "ॾ")
269                 ("c@" "ॿ")
270                 ("+2" "ॠ")
271                 ("+22" "ॠ") 
272                 ("~y" "ऌ")
273                 ("~y2" "ॡ") 
274
275                 (")" "द्घ")
276                 ("}" "द्व")
277                 ("|" "द्य")
278                 ("J" "श्र")
279                 ("K" "ज्ञ")
280 ;;              (":" "रू") 
281                 (":" "ॐ") 
282                 ("~a" "ऽ")
283                 ("~a" "ऽ")
284                 
285
286                 ("!" "?")
287                 ("#" ".")
288                 ("$" "ङ")
289                 ("&" "-")
290                 ("*" "ञ")
291                 ("(" " ।")
292                 ("((" " ॥")
293                 ("_" "त्र")
294                 ("+" "ऋ")
295                 ("\\" "्र")
296                 ("]" ",")
297
298         )
299         (getHalfChar
300                 ("E" "म्" (set B @-1))
301                 ("R" "त्" (set B @-1))
302                 ("T" "ज्" (set B @-1) )
303                 ("Y" "ल्" (set B @-1))
304                 ("U" "न्" (set B @-1))
305                 ("I" "प्" (set B @-1))
306                 ("O" "व्" (set B @-1))
307                 ("P" "च्" (set B @-1) )
308                 ("{" "क्ष्" (set B @-1) )
309                 ("D" "क्" (set B @-1))
310                 ("F" "थ्" (set B @-1) )
311                 ("H" "भ्" (set B @-1))
312                 ("L" "स्" (set B @-1) )
313                 ("\"" "ष्" (set B @-1))
314                 ("'" "श्" (set B @-1))
315                 ("Z" "र्" (set B @-1))
316                 ("X" "ग्" (set B @-1))
317                 ("C" "ब्" (set B @-1))
318                 ("." "ण्" (set B @-1))
319                 ("?" "घ्" (set B @-1))
320                 ("/" "ध्" (set B @-1))
321                 ("[" "ख्" (set B @-1))
322
323         )
324         (halfChar
325                 ("E" "म्")
326                 ("R" "त्")
327                 ("T" "ज्")
328                 ("Y" "ल्")
329                 ("U" "न्")
330                 ("I" "प्")
331                 ("O" "व्")
332                 ("P" "च्")
333                 ("{" "क्ष्")
334                 ("D" "क्")
335                 ("F" "थ्")
336                 ("H" "भ्")
337                 ("L" "स्")
338                 ("\"" "ष्")
339                 ("'" "श्")
340                 ("Z" "र्") 
341                 ("X" "ग्")
342                 ("C" "ब्")
343                 ("." "ण्")
344                 ("?" "घ्")
345                 ("/" "ध्")
346                 ("[" "ख्")
347                 
348         )
349
350         (jointChar
351
352                 (")" "द्घ")
353                 ("}" "द्व")
354                 ("|" "द्य")
355                 ("J" "श्र")
356                 ("K" "ज्ञ")
357         )
358
359
360         (pause)
361
362         (return
363                 ((Return))
364         )
365
366         (backspace
367                 ((BackSpace) (undo))
368         )
369 )
370
371 (state
372         (init
373                 (starter 
374                         (pushback 1) (shift intermediate)
375                 )
376         )
377
378
379         (intermediate
380                 (matra (shift intermediate))
381                 (chotiMatra (delete @-) (shift third))
382                 (mainChar (shift intermediate))
383                 (fullChar (shift second))
384                 (halfChar (shift intermediate))
385                 (jointChar (shift intermediate))
386                 (number (shift intermediate))
387                 (backspace)
388                 (return (shift init))
389         )
390
391
392         (third
393
394                 (getHalfChar (shift fourth))
395                 (setFullChar (shift intermediate))
396         )
397         
398         (fourth
399                 (setHalfChar (shift intermediate))
400         )
401         
402         (second
403                 (mainChar (shift intermediate))
404                 (fullChar (shift intermediate))
405                 (halfChar (shift intermediate))
406                 (matra (shift intermediate))
407                 (jointChar (shift intermediate))
408                 (backspace)
409                 (return (shift init))
410         )
411
412         (finish
413                 (return)
414                 (t (shift init))
415         )
416 )
417
418 ;; Local Variables:
419 ;; coding: utf-8
420 ;; mode: lisp
421 ;; End: