82e660
;; latn1-pre.mim -- Latin input method simulating "US International Keyboard"
82e660
;; Copyright (C) 2014  Florêncio Neves  <florencioneves@gmail.com>
82e660
82e660
;; This file is part of the m17n database, a sub-part of the m17n library.
82e660
82e660
;; The m17n library is free software; you can redistribute it and/or
82e660
;; modify it under the terms of the GNU General Public License as
82e660
;; published by the Free Software Foundation; either version 2, or (at
82e660
;; your option) any later version.
82e660
82e660
;; The m17n library is distributed in the hope that it will be useful,
82e660
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
82e660
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
82e660
;; GNU General Public License for more details.
82e660
82e660
;; You should have received a copy of the GNU General Public License
82e660
;; along with the m17n library; see the file COPYING.  If not, write to
82e660
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
82e660
;; Boston, MA 02110-1301, USA.
82e660
82e660
;;; Input method for Latin script with prefix modifiers and AltGr combinations.
82e660
82e660
;; | mark       | prefix | examples
82e660
;; |------------+--------+----------
82e660
;; | acute      |   '    | 'a -> á
82e660
;; | grave      |   `    | `a -> à
82e660
;; | circumflex |   ^    | ^a -> â
82e660
;; | diaeresis  |   "    | "a -> ä
82e660
;; | tilde      |   ~    | ~a -> ã
82e660
;; | cedilla    |   '    | 'c -> ç
82e660
;; | symbol     |        | AltGr-/ -> ¿  AltGr-5 ~> €
82e660
;; | symbol     |        | AltGr-z -> æ  AltGr-s -> ß
82e660
82e660
(input-method t latn1-pre)
82e660
82e660
(description
82e660
 "Latin1 input method simulating \"US International Keyboard\"
82e660
which uses prefix modifiers and AltGr combinations as this:
82e660
 | mark       | prefix | examples
82e660
 |------------+--------+----------
82e660
 | acute      |   '    | 'a -> á
82e660
 | grave      |   `    | `a -> à
82e660
 | circumflex |   ^    | ^a -> â
82e660
 | diaeresis  |   \"    | \"a -> ä
82e660
 | tilde      |   ~    | ~a -> ã
82e660
 | cedilla    |   '    | 'c -> ç
82e660
 | symbol     |        | AltGr-/ -> ¿,  AltGr-z -> æ,  AltGr-s -> ß
82e660
82e660
For Western European languages, these characters are supported too:
82e660
   \"Y -> Ÿ, AltGr-x -> œ, AltGr-X -> Œ, AltGr-5 -> €,
82e660
  AltGr-{ -> ª, AltGr-} ?º, AltGr-( -> “, AltGr-) -> ”")
82e660
82e660
(title "latin1")
82e660
82e660
(map
82e660
 (us-international-keyboard
82e660
  ;; Dead keys
82e660
  ("' " ?')
82e660
  ("'A" ?Á)
82e660
  ("'E" ?É)
82e660
  ("'I" ?Í)
82e660
  ("'O" ?Ó)
82e660
  ("'U" ?Ú)
82e660
  ("'Y" ?Ý)
82e660
  ("'C" ?Ç)
82e660
  ("'a" ?á)
82e660
  ("'e" ?é)
82e660
  ("'i" ?í)
82e660
  ("'o" ?ó)
82e660
  ("'u" ?ú)
82e660
  ("'y" ?ý)
82e660
  ("'c" ?ç)
82e660
  ("\" " ?\")
82e660
  ("\"A" ?Ä)
82e660
  ("\"E" ?Ë)
82e660
  ("\"I" ?Ï)
82e660
  ("\"O" ?Ö)
82e660
  ("\"U" ?Ü)
82e660
  ("\"a" ?ä)
82e660
  ("\"e" ?ë)
82e660
  ("\"i" ?ï)
82e660
  ("\"o" ?ö)
82e660
  ("\"u" ?ü)
82e660
  ("\"y" ?ÿ)
82e660
  ("^ " ?^)
82e660
  ("^A" ?Â)
82e660
  ("^E" ?Ê)
82e660
  ("^I" ?Î)
82e660
  ("^O" ?Ô)
82e660
  ("^U" ?Û)
82e660
  ("^a" ?â)
82e660
  ("^e" ?ê)
82e660
  ("^i" ?î)
82e660
  ("^o" ?ô)
82e660
  ("^u" ?û)
82e660
  ("` " ?`)
82e660
  ("`A" ?À)
82e660
  ("`E" ?È)
82e660
  ("`I" ?Ì)
82e660
  ("`O" ?Ò)
82e660
  ("`U" ?Ù)
82e660
  ("`a" ?à)
82e660
  ("`e" ?è)
82e660
  ("`i" ?ì)
82e660
  ("`o" ?ò)
82e660
  ("`u" ?ù)
82e660
  ("~ " ?~)
82e660
  ("~A" ?Ã)
82e660
  ("~N" ?Ñ)
82e660
  ("~O" ?Õ)
82e660
  ("~a" ?ã)
82e660
  ("~n" ?ñ)
82e660
  ("~o" ?õ)
82e660
82e660
  ;; AltGr combinations
82e660
  ((G-1) ?¡)
82e660
  ((G-2) ?²)
82e660
  ((G-3) ?³)
82e660
  ((G-4) ?¤)
82e660
  ((G-6) ?¼)
82e660
  ((G-7) ?½)
82e660
  ((G-8) ?¾)     
82e660
  ((G-9) ?‘)
82e660
  ((G-0) ?’)
82e660
  ((G--) ?¥)
82e660
  ((G-=) ?×)
82e660
  ((G-!) ?¹)
82e660
  ((G-$) ?£)
82e660
  ((G-+) ?÷)
82e660
  ((G-q) ?ä)
82e660
  ((G-w) ?å)
82e660
  ((G-e) ?é)
82e660
  ((G-r) ?®)
82e660
  ((G-t) ?þ)
82e660
  ((G-y) ?ü)
82e660
  ((G-u) ?ú)
82e660
  ((G-i) ?í)
82e660
  ((G-o) ?ó)
82e660
  ((G-p) ?ö)
82e660
  ((G-\[) ?«)
82e660
  ((G-\]) ?»)
82e660
  ((G-a) ?á)
82e660
  ((G-s) ?ß)
82e660
  ((G-d) ?ð)
82e660
  ((G-l) ?ø)
82e660
  ((G-\;) ?¶)
82e660
  ((G-\') ?´)
82e660
  ((G-\\) ?¬)
82e660
  ((G-z) ?æ)
82e660
  ((G-c) ?©)
82e660
  ((G-n) ?ñ)
82e660
  ((G-m) ?µ)
82e660
  ((G-,) ?ç)
82e660
  ((G-/) ?¿)
82e660
  ((G-Q) ?Ä)
82e660
  ((G-W) ?Å)
82e660
  ((G-E) ?É)
82e660
  ((G-T) ?Þ)
82e660
  ((G-Y) ?Ü)
82e660
  ((G-U) ?Ú)
82e660
  ((G-I) ?Í)
82e660
  ((G-O) ?Ó)
82e660
  ((G-P) ?Ö)
82e660
  ((G-A) ?Á)
82e660
  ((G-S) ?§)
82e660
  ((G-D) ?Ð)
82e660
  ((G-L) ?Ø)
82e660
  ((G-:) ?°)
82e660
  ((G-\") ?¨)
82e660
  ((G-|) ?¦)
82e660
  ((G-Z) ?Æ)
82e660
  ((G-C) ?¢)
82e660
  ((G-N) ?Ñ)
82e660
  ((G-<) ?Ç))
82e660
82e660
 (extra
82e660
  ;; Not in "US International Keyboard, but needed in some Western
82e660
  ;; European languages.
82e660
  ("\"Y" ?Ÿ)
82e660
  ((G-x) ?œ)
82e660
  ((G-X) ?Œ)
82e660
  ((G-5) ?€)
82e660
  ((G-{) ?ª)
82e660
  ((G-}) ?º)
82e660
  ((G-\() ?“)
82e660
  ((G-\)) ?”)
82e660
  ))
82e660
82e660
(state
82e660
  (init
82e660
   (us-international-keyboard)
82e660
   (extra)))
82e660
82e660
;; Local Variables:
82e660
;; coding: utf-8
82e660
;; mode: emacs-lisp
82e660
;; End: