From LING073
Jump to: navigation, search

Existing Resources

Apple's OSX has keyboard support for Ainu, using dead keys as a solution for syllables with the same starting consonants. I could not find an Ainu keyboard layout for Windows, Android, or Linux.

Solution and Justification


I used Apple's dead keys system for Ainu but made some modifications along the way. The dead keys system works because many Ainu syllables start with the same consonant sound. For example, カ、キ、ク、ケ、コ all start with the consonant /k/, so each time the writer wants to write one of these characters, they must first press the "k" key. They then have 5 choices to create Ainu character: the "a" key (), "i" key (), "u" key (), "e" key (), and "o" key (). As such it does feel like the user must know some English orthography to type in Ainu, but it is trivial to replace the Latin letters physically on the keys with letters in the Ainu orthography (since Ainu does not traditionally have an orthography, Katakana is used). So if one wanted to write キ (/ki/), they would first press the key indicating they want a syllable starting with /k/: the "カ" key. Then they could select the key indicating they want the /i/ sound, the "イ" key, finally arriving at キ.

For the majority of Ainu speakers, who can also speak Japanese, this system may actually seem familiar. The smartphone Japanese flick keyboard has a similar design.

It was important to figure out how to handle the special characters in Ainu. Japanese has one special character, ん (/n/), that the romaji keyboard handles by having the user press the "n" key twice. In this vein, we can handle most of the final Ainu consonants: two "s" keys make a small "s" character, two "k"s make a small "k" character, and the same goes for "p" and "m", and "r". However, what happens when we want a small "r" character?

Another issue we must face is that Ainu has special Katakana characters for "-ar", "-ir", "-ur", "-er", and "-or". Consider the Ainu word "Yukar", (ユカㇻ). The user first types ユ with the /j/ key (i.e. "y"/ヤ key) and the "u" key, then types カ with the "カ" key and "ア" key. But now we have a problem. Should the user type the ㇻ ("-ar" sound) with the "a" (ア) key first? If so, they will have already created the character ア! So I am handling this temporarily by having ㇻ be the input "xar"/"xアラ" where "x" signifies "special small character" as it does in some Japanese keyboard layouts. The obvious shortcoming here is that we should not have to type three keys to get one character, no matter how uncommon it is, in this setup. Indeed, one of the major benefits to using dead keys is that we only need to use two keys to represent the entire range of Katakana letters.

The final issue I faced was deciding between different characters to represent certain syllables (e.g. both ウィ and ヰ can be used to signify the "wi" syllable). I haven't had chance to get a good picture of which of the characters is more common. I had no choice but to choose one for each pair, so I chose what looked more familiar to me, which seems to be valid according to Wikipedia, but I will make sure to reconsider this shortly.

Ideally this layout would have more logical placement of all of the major syllable-starter keys that wasn't derivative of the English keyboard. So although this may be beyond the scope of this initial assignment, I will keep it in mind.


  1. Open terminal enter the command "sudo apt-get install ibus-m17n".
  2. Enter the command "im-config -n ibus".
  3. Download ainu-tcode.mim from this git repo, and copy it to "/usr/share/m17n".
  4. Log out and log in again to update Ibus.
  5. In your dock, right click the faint blue icon that has just appeared and select "Preferences".
  6. In the "Input Method" tab, click the "Add" button and the language selection window will appear.
  7. Click the "...", and then "Ainu". Select the single "Ainu (m17n)" entry and click the "Add" button.
  8. Click the faint blue ibus icon in the dock and select "Ainu - Ainu (m17n)". You should now be able to type in Ainu.


ainu-tcode.mim -- Ainu input method with TCODE

This file is part of the m17n database; a sub-part of the m17n library.

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

The m17n library 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with the m17n library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.