/Enmerkar

𒂗𒈨𒅕𒃸: a Sumero-Akkadian cuneiform input method for macOS and Windows.

Primary LanguagePythonOtherNOASSERTION

𒂗𒈨𒅕𒃸

𒂗𒈨𒅕𒃸 (en-me-er-kár, Enmerkar) is a Sumero-Akkadian cuneiform input method for macOS and Windows.

Installation

Windows: Download Enmerkar.msi for the latest release, and run it. In the installer, select an appropriate keyboard layout (be that one in which you touch type, or the one matching your physical keyboard).

macOS: Download Enmerkar.pkg for the latest release, and run it. Log out, and log back in. In the Input Sources settings, press the + button to add an input source; choose 𒂗𒈨𒅕𒃸 from the list of input methods for the Akkadian language, and press Add.

Note: The flat package puts Enmerkar.app in /Library/Input Methods. However, this is not an app that can be launched directly; instead, it is registered among the input methods at the next login, hence the logout-login step in the installation instructions. Once registered, it behaves like any other keyboard layout or input method.

Usage

Once the above installation steps are complete, the list of keyboard layouts in the Windows Language bar or macOS Input menu should have a new entry.

Windows:

𒀝 Syriac 𒂗𒈨𒅕𒃸 Cuneiform IME

macOS:

𒀝 𒂗𒈨𒅕𒃸

Notes.

On Windows, the language of the input method is Syriac, rather than Akkadian, because Windows does not support arbitrary language codes in the relevant API, and instead uses the deprecated LANGID, which only supports a relatively small set of languages, and in particular has no equivalent to akk. We apologize for the inconvenience.
The icon, which, for Windows keyboard layouts, is normally an abbreviation of the language names (ΕΛ, ENG, FRA, РУС, etc.), is here 𒀝, consistent with 𒀝𒅗𒁺𒌑; note that the IME can also be used to type Elamite, Hittite, or Sumerian (its default layouts all have the letter ŋ).

Select this IME to type Sumero-Akkadian cuneiform signs.

When using the IME, typing a transliteration will bring up a menu with possible completions, as shown below. Pressing the spacebar or the enter key will cause the selected sign to be entered, as illustrated in the table below.

Sample compositions Candidate window after typing e
Keys Output
a 𒀀
n a 𒈾
a n a 𒀀𒈾
e 𒂊
e 2 𒂍
d 3 0 𒀭𒌍
d s i n 𒀭𒌍

Besides typing the whole transliteration, signs other than the first candidate can be selected using the arrow keys (thus e also outputs 𒂍); they can also be entered by clicking on the candidate window. The page up and page down keys may be used to navigate to candidates beyond the first ten; for instance, as of this writing, e will display 𒇯𒁽 e₁₂ through 𒂗𒋾 ebeḫ.

Spelling

We use j rather than i̯ or y, w rather than u̯, ŋ rather than g̃ or ĝ, ḫ rather than h. Keys are assigned to the letters ŋ, ḫ, ṣ, š, ś, and ṭ (see below for their placement); they should not be entered as digraphs.

Word separation

For the sake of editability, linebreaking, and searchability, we recommend that you separate words; this can be done without introducing unsightly spaces using the zero-width space, which may be entered using the transliteration /.

The Old Assyrian word divider 𒑰 can serve the same function (while it looks similar to DIŠ 𒁹, it is a different character, recognized by Unicode as punctuation, and thus it breaks words for the purposes of text processing). It may be entered as /v.

Examples below. Note that thanks to the word separation, if you double-click on the cuneiform text below, a single word will* be selected, instead of the whole text; in the case of the Sumerian text, a search engine will then readily find the uninflected words in ePSD2.

Key sequences Output
e␣ nu␣ ma␣ /␣ e␣ liš␣ /␣ la␣ /␣ na␣ bu␣ u2␣ /␣ ša2␣ ma␣ mu␣ /␣ šap␣ liš␣ /␣ am␣ ma␣ tum␣ /␣ šu␣ ma␣ /␣ la␣ /␣ zak␣ rat␣ 𒂊𒉡𒈠​𒂊𒇺​𒆷​𒈾𒁍𒌑​𒃻𒈠𒈬​𒉺𒅁𒇺​𒄠𒈠𒌈​𒋗𒈠​𒆷​𒍠𒋥
a␣ na␣ /␣ d␣ en␣ lil2␣ ba␣ ni␣ /␣ qi2␣ bi2␣ ma␣ /v␣ um␣ ma␣ /␣ ta␣ ri␣ iš␣ ma␣ tum␣ ma␣ 𒀀𒈾​𒀭𒂗𒆤𒁀𒉌​𒆠𒉈𒈠𒑰𒌝𒈠​𒋫𒊑𒅖𒈠𒌈𒈠
ud␣ bi␣ ta␣ /␣ inim␣ /␣ im␣ ma␣ /␣ gub␣ bu␣ /␣ nu␣ ub␣ ta␣ ŋal2␣ la␣ /␣ i3␣ ne␣ eš2␣ /␣ d␣ utu␣ /␣ ud␣ ne␣ a␣ /␣ ur5␣ /␣ ḫe2␣ en␣ na␣ nam␣ ma␣ am3␣ 𒌓𒁉𒋫​𒅗​𒅎𒈠​𒁺𒁍​𒉡𒌒𒋫𒅅𒆷​𒉌𒉈𒂠​𒀭𒌓​𒌓​𒉈𒀀​𒄯​𒃶𒂗𒈾𒉆𒈠𒀀𒀭

* We are told this does not work on Firefox, though it works fine on Chrome, Edge, Safari, and even Internet Explorer.

Typing transliterated Sumerian and Akkadian

Typing while the shift key is pressed types the letters directly without attempting to compose cuneiform signs.

Keys Output
⇧a a
⇧n ⇧a na
⇧s ⇧a ⇧n ⇧t ⇧a ⇧k ⇧4 santak₄

While caps lock is on, all keys are typed directly, making it easier to type longer stretches of transliteration; further pressing the shift key types capital letters (or other symbols; in particular the acute and grave accents and the full stop are mapped to the shifted versions of 2, 3, and -; see below).

Keys (caps lock on) Output
a - n a ⇧k ⇧a ⇧2 ⇧- ⇧d ⇧i ⇧n ⇧g ⇧i ⇧r ⇧- ⇧r ⇧a ⇧k ⇧i a-na KÁ.DINGIR.RA.KI

The key ¹ (a shifted key in the default layouts; see below for its placement) has the special effect of making a following +, -, d, f, or m superscript, and a following digit non-subscript; typing it twice yields an actual superscript 1:

Keys (caps lock on) Output
d u n 3 ¹ + dun₃⁺
¹ d ¹ 3 ¹ 0 ᵈ30
¹ ¹ ⇧a ⇧n ⇧- ⇧š ⇧a ⇧2 ⇧r ⇧- ⇧d ⇧u ⇧3 ⇧- ⇧a ¹AN.ŠÁR.DÙ.A

Layout

The letters that are not part of the basic latin alphabet may have been assigned various keys; the otherwise unused letters C, H, O, Y have consistently been repurposed as Š, , Ś, Ŋ respectively; the placement of and is more haphazard. The table below shows the default layouts.

Windows: The layout is chosen as part of the installation process.

macOS: The layout is chosen based on the last used keyboard layout: switching to 𒂗𒈨𒅕𒃸 from a QWERTY keyboard means that 𒂗𒈨𒅕𒃸 uses the QWERTŊ layout.

AZERTŊQWERTŊQWERTZʾṢṬPŊF (Dvorak)
⫶  1  2  3  4  5  6  7  8  9  0  ×  +
    a  z  e  r  t  ŋ  u  i  ś  p  ʾ  ṣ
     q  s  d  f  g  ḫ  j  k  l  m  ṭ  *
      w  x  š  v  b  n  /  -  :  !
⫶  1  2  3  4  5  6  7  8  9  0  -  +
    q  w  e  r  t  ŋ  u  i  ś  p  [  ]  \
     a  s  d  f  g  ḫ  j  k  l  :  ʾ
      z  x  š  v  b  n  m  ṣ  ṭ  /
̂   1  2  3  4  5  6  7  8  9  0  ʾ  ̄
    q  w  e  r  t  z  u  i  ś  p  ṭ  +
     a  s  d  f  g  ḫ  j  k  l  ṣ  ⫶  \
      ŋ  x  š  v  b  n  m  /  :  -
⫶  1  2  3  4  5  6  7  8  9  0  [  ]
    ʾ  ṣ  ṭ  p  ŋ  f  g  š  r  l  /  +  \
     a  ś  e  u  i  d  ḫ  t  n  s  -
      :  q  j  k  x  b  m  w  v  z
AZERTŊQWERTŊQWERTZʾṢṬPŊF (Dvorak)
¹  ‹  ́   ̀   ›  (  «  ⸢  \  ⸣  »  )  =
    A  Z  E  R  T  Ŋ  U  I  Ś  P  ̂   Ṣ
     Q  S  D  F  G  Ḫ  J  K  L  M  Ṭ  ̄ 
      W  X  Š  V  B  N  ?  .  [  ]
¹  !  ́   ̀   «  »  ̂   ̄   *  (  )  .  =
    Q  W  E  R  T  Ŋ  U  I  Ś  P  ⸢  ⸣  ×
     A  S  D  F  G  Ḫ  J  K  L  ‹  ›
      Z  X  Š  V  B  N  M  Ṣ  Ṭ  ?
×  !  ́   ̀   «  »  [  ]  (  )  =  ?  ¹
    Q  W  E  R  T  Z  U  I  Ś  P  Ṭ  *
     A  S  D  F  G  Ḫ  J  K  L  Ṣ  ⸢  ⸣
      Ŋ  X  Š  V  B  N  M  ‹  ›  .
¹  !  ́   ̀   «  »  ̂   ̄   *  (  )  ⸢  ⸣
    ‹  Ṣ  Ṭ  P  Ŋ  F  G  Š  R  L  ?  =  ×
     A  Ś  E  U  I  D  Ḫ  T  N  S  .
      ›  Q  J  K  X  B  M  W  V  Z

Windows: The layout may be customized by editing the file %APPDATA%\mockingbirdnest\Enmerkar\layout.txt according to the instructions in that file.

Backspacing

Since version 𒀭𒄑𒉈𒂵𒈩, recently1 entered signs that are represented as sequences of Unicode code points are backspaced as they have been typed wherever possible2. Thus, typing d i r i emits the text 𒋛𒀀 and then removes all of it, whereas typing s i a emits the same text, but backspaces only the 𒀀, leaving 𒋛.

Key sequences Output Notes
kug␣ babbar␣ enkum␣ enku␣ da␣ 𒆬𒌓𒍠𒄩𒁕 ENKUM 𒂗𒉽𒅊𒉣𒈨𒂬 is backspaced atomically.
lu2␣ ra␣ geme␣ gi␣ me␣ 𒇽𒊏𒄀𒈨 GEME₂ 𒊩𒆳 is backspaced atomically.
šal␣ mat␣ ma␣ at␣ 𒊩𒈠𒀜 Only the 𒆳 in 𒊩𒆳 is backspaced.
babilim2␣ babilim␣ 𒆍𒀭 𒆍𒀭𒊏 is backspaced atomically.
ka2␣ dingir␣ ra␣ 𒆍𒀭 Only the 𒊏 in 𒆍𒀭𒊏 is backspaced.

Backspacing is otherwise by code point; in particular, the combining marks ◌́, ◌̀, ◌̄, and ◌̂ , which are entered separately using the default layouts, are accordingly backspaced separately from their base.

Keys (caps lock on) Output
r e ◌̄ ʾ u ◌̄ ◌̂ m rēʾûm

1 On Windows, the IME remembers sequences 128 sequences per document as long as the process is running; it does not recognize sequences if they are copy-pasted. The macOS implementation is more limited: sequences will be forgotten as soon as another input source is selected, or as soon as the focus moves to another text field, and many text editing operations even within the IME will disrupt the sequence backspacing behaviour. The reason for this discrepancy is that the Windows implementation can make use of ITfRange objects, which track a range of text as the document is edited; to our knowledge there is no macOS equivalent, so the macOS IME needs to keep track of the emitted ranges itself. Nevertheless, we expect that this should work well enough for the common use case of backspacing a recent typo.

2 Some applications interfere with the ability of input methods to keep track of context; this is notably the case of Google Docs.

Entry by sign list number

Since version 𒀭𒌉𒍣, signs can also be entered by their sign list number, prefixed by the key x and the abbreviation for the sign list, as illustrated in the following table for 𒂗.

Keys Sign list
x m e a 9 9  René Labat, Manuel d'épigraphie akkadienne
x l a k 5 3 2  Anton Deimel, Liste der archaischen Keilschriftzeichen von Fara
x r s p 2 7 1  Yvonne Rosengarten, Répertoire commenté des signes présargoniques sumériens de Lagash
x b a u 2 9 6  Eric Burrows, Archaic Texts
x  z l 4 0  Christel Rüster & Erich Neu, Hethitisches Zeichenlexikon
x m z l 1 6 4  Rykle Borger, Mesopotamisches Zeichenlexikon
x a b z l 6 2  Catherine Mittermayer, Altbabylonische Zeichenliste der sumerisch-literarische Texte
x k w u 7 5  Nikolaus Schneider, Die Keilschriftzeichen der Wirtschaftsurkunden von Ur III

This makes it possible to enter signs that have no known values, such as x m z l 4 0 for 𒎄.

Versioning

Releases are named after kings of the Sumerian King List, starting after 𒂗𒈨𒅕𒃸. There is no regular release schedule at this time.

Acknowledgements

The Windows implementation is based on the sample IME from Windows classic samples by Microsoft Corporation, available under the MIT license.

Parts of the macOS implementation are based on the 业火 IME by @qwertyyb, available under the MIT license.

The sign list is based on the Oracc Global Sign List by the OGSL Project (available in machine readable form on GitHub), available under the CC BY-SA 3.0 license. Adjustments were made to the sign list, in particular to take into account signs newly encoded in Unicode 7.0 (2014). We are in the process of upstreaming these adjustments.

We thank @Zaikarion for testing and providing feedback on many early prototypes of the Windows version.

We thank @PeterConstable for pointing out that the Text Services Framework provides APIs that make it easy to backspace sequences as they are emitted.

We thank Pavla Rosenstein and @erica-scarpa for testing and providing feedback on early prototypes of the macOS version.