Following a recent discussion here I wrote an input method for Hebrew
LyX that works for a US English Dvorak keyboard layout. The Hebrew
layout it provides is very similar to a 'standard' Hebrew LyX layout,
with some slight changes, all of them are simply using empty keys in
the first shift level. There is one change to the layout by Yair F.,
posted on this list a couple of weeks ago - I moved the 'gershyim' to
the Q key, to the right of the TAB key. This seems to me more
reasonable, that way it is near the geresh.

These are my additions:

- AD01 shift-slash: gershayim
- AD02 shift-single-quote:  geresh
- AC03 shift-gimel: euro
- AC04 shift-kaph: en dash
- AB01 shift-zain: bullet

As far as I know there is no real standard for Hebrew LyX layout, and
I'm sure that different reasoning can be found, that are at least as
good as mine :) The above is open to discussion, suggestions,
anything.

Also, the attached file contains just this input method, but it can be
made a part of hebrew.el. I'm also open for suggestions for the name
of the method, its letter in the status bar (currently 'dalet'), and
anything else.

I tested the attached file on Linux and X.

Hope you find it useful,

Amit

;;; hebrew-en-dvorak.el --- Quail package for inputting Hebrew characters  
-*-coding: iso-2022-7bit;-*-

;; Keywords: multilingual, input method, Hebrew

;; This file is part of GNU Emacs.

;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.

;;; Commentary:

;;; Code:

(require 'quail)

;; This is a Hebrew LyX input method that assumes a basic US English
;; Dvorak keyboard layout. It is based on a keyboard map from Debian GNU/Linux
;; 'xkb/symbols/il' file, and the nikud pattern is based on Dekel Tsur's
;; Hebrew mapping for LyX.
;; It also incorporates suggestions on the emacs-bidi list by Yair F.
;; I made some slight modifications to the original LyX layout. All off them
;; are just filling vacancies in the first shift level. They are:
;;
;; - AD01 gershayim
;; - AD02 geresh
;; - AC03 euro
;; - AC04 en dash
;; - AB01 bullet
;;
;; Amit Ramon amit DOT ramon AT gmail DOT com June 2010
(quail-define-package
 "hebrew-lyx-en-dvorak" "Hebrew" "$,1,s(B" nil "Hebrew LyX over US English 
Dvorak input method.

Based on LyX keyboard layout.
Additional mappings for Rafe and Yiddish ligatures.
" nil t t t t nil nil nil nil nil t)

(quail-define-rules
 ;; AE01 AE09 - AE12
 ("`" ?\;)
 ;; 9 unchanged AE09
 ;; 0 unchanged AE10
 ("[" ?-)
 ("]" ?=)

 ;; Shifted
 ;; ~ unchanged AE01
 ("(" ?\))  ; mirroring
 (")" ?\()  ; mirroring
 ("{" ?$,1,^(B)  ; maqaf
 ("}" ?+)

 ;; AD01 - AD13
 ("'" ?/)
 ("," ?\')
 ("." ?,Hw(B)  ; qof
 ("p" ?,Hx(B)  ; resh
 ("y" ?,H`(B)  ; alef
 ("f" ?,Hh(B)  ; tet
 ("g" ?,He(B)  ; vav
 ("c" ?,Ho(B)  ; final nun
 ("r" ?,Hm(B)  ; final mem
 ("l" ?,Ht(B)  ; pe
 ("/" ?\]) ; mirroring
 ("=" ?\[) ; mirroring
 ;; \ unchanged

 ;; Shifted
 ("\"" ?$,1-4(B) ; gershayim (new)
 ("<" ?$,1-3(B)  ; geresh (new)
 (">" ?$,1,X(B)  ; qamats
 ("P" ?$,1,_(B)  ; rafe (new)
 ("Y" ?\u200E) ; LRM
 ("F" ?\u200F) ; RLM
 ("G" ?$,1,Y(B)  ; holam
 ("C" ?$,1-2(B)  ; Yiddish double yod
 ("R" ?$,1-0(B)  ; Yiddish double vav
 ("L" ?$,1,W(B)  ; patah
 ("?" ?})  ; mirroring
 ("+" ?{)  ; mirroring
 ;; | unchanged

 ;; AC01 - AC11
 ("a" ?,Hy(B)  ; shin
 ("o" ?,Hc(B)  ; dalet
 ("e" ?,Hb(B)  ; gimel
 ("u" ?,Hk(B)  ; kaf
 ("i" ?,Hr(B)  ; ayin
 ("d" ?,Hi(B)  ; yod
 ("h" ?,Hg(B)  ; het
 ("t" ?,Hl(B)  ; lamed
 ("n" ?,Hj(B)  ; final kaf
 ("s" ?,Hs(B)  ; final pe
 ("-" ?,)

 ;; Shifted
 ("A" ?$,1,P(B)  ; sheva
 ("O" ?$,1,\(B)  ; dagesh/shuruq or mapiq
 ("E" ?$,1tL(B)  ; euro (new)
 ("U"  ?\u2013) ;en dash
 ("I" ?$,1,b(B)  ; sin dot
 ("D" ?$,1,a(B)  ; shin dot
 ("H" ?$,1,T(B)  ; hiriq
 ("T" ?$,1tJ(B)  ; new sheqel sign
 ("N" ?$,1-1(B)  ; Yiddish vav-yod
 ("S" ?:)
 ("_" ?\")

 ;; AB01 - AB10
 (";" ?,Hf(B)  ; zayin
 ("q" ?,Hq(B)  ; samekh
 ("j" ?,Ha(B)  ; bet
 ("k" ?,Hd(B)  ; he
 ("x" ?,Hp(B)  ; nun
 ("b" ?,Hn(B)  ; mem
 ("m" ?,Hv(B)  ; tsadi
 ("w" ?,Hz(B)  ; tav
 ("v" ?,Hu(B)  ; final tsadi
 ("z" ?.)  ; stop

 ;; Shifted
 (":" ?\u2022) ; bullet (new)
 ("Q" ?$,1,V(B)  ; segol (point)
 ("J" ?$,1,[(B)  ; qubuts
 ("K" ?$,1,Q(B)  ; hataf segol
 ("X" ?$,1,R(B)  ; hataf patah
 ("B" ?$,1,S(B)  ; hataf qamats
 ("M" ?$,1,U(B)  ; tsere
 ("W" ?>)  ; mirroring
 ("V" ?<)  ; mirroring
 ("Z" ??)
)

;; arch-tag: 771b887d-15af-4a4d-b4ce-a4a86f5ca0cf
;;; hebrew.el ends here
_______________________________________________
emacs-bidi mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-bidi

Reply via email to