The SCIM platform (Smart Common Input Method) provides methods for entering writing systems that are too complex for the usual Unix keyboard handling mechanisms.
 Supported Writing Systems
SCIM supports the following IMEs on Linux and other forms of Unix. Although IMEs are not essential for entering text in most alphabets, they add capabilities that cannot be provided on simple one-character-per-key layouts. Among other benefits, this makes it possible to enter accented letters that have no Unicode code points, where it is necessary to provide a sequence of Unicode code points to an application in order to represent a single letter. Accented letters are encoded in Unicode only if they were in some previous standard.
Adds combining characters to any ASCII keyboard layout, including Dvorak. IMEs are provided for English, Croatian, Slovak, Sampa, and Swedish.
Includes Arabic, M17N-ar-kbd, UIM-m17n-ar-kbd keyboard layouts for Egyptian Arabic.
Amharic and other languages of Ethiopia are written in a syllabary with too many symbols to fit on a simple keyboard. However, it can be typed in an IME. One types a base syllable, then a vowel, to get the syllable with the consonant from the base syllable plus the specified vowel.
This is the basic keyboard layout.
` 1 2 3 4 5 6 7 8 9 0 [ ] ቅ ው እ ር ት ይ ኡ ኢ ኦ ፕ [ ] \ አ ስ ድ ፍ ግ ህ ጅ ክ ል ፤ ዝ ሽ ች ቭ ብ ን ም ፣ . /
The syllable and vowel letters combine as in the following example.
For Type ታ ት አ ቶ ት ኦ ተ ት እ ቱ ት ኡ ቲ ት ኢ
This is called a phonetic layout, where the letter on most keys is the closest Cyrillic letter in sound to the Latin letter on the same key in QWERTY. But it is not simply a keyboard layout. Letters not on the keyboard can be typed as combinations. For example, the sequence 'ыо' results in 'ё', and similarly 'ыу' results in 'ю'.
` 1 2 3 4 5 6 7 8 9 0 [ ] я в е р т ы у и о п [ ] \ а с д ф г х й к л ; з х ц в б н м , .
SCIM includes six other Cyrillic layouts for Russian, and others for Serbian.
Inscript and other keyboard layouts for nine writing systems of India, used for hundreds of languages.
- Hindi (Devanagari alphabet)
- Punjabi (Gurmukhi alphabet)
Written in Devanagari. Traditional and Romanized input is supported.
Two IMEs provided.
aka Persian or Farsi. Two IMEs provided.
Two IMEs provided.
Two IMEs provided.
Four IMEs provided.
Four IMEs provided.
Again, a base keyboard layout with combining rules.
` 1 2 3 4 5 6 7 8 9 0 - = ᖅ w e ᕐ ᑦ ᔾ ᐅ ᐃ ᐅ ᑉ [ ] \ ᐊ ᔅ d ᕝ ᒡ ᔅ ᔾ ᒃ ᓪ ; z x ᒡ ᕝ b ᓐ ᒻ , . /
Example: ᔾ ᐅ results in ᔪ.
Keyboard layout with combining rules.
` 1 2 ʒ 4 5 6 7 8 9 0 - = q w e r t y u i o p [ ] \ a s d f g h j k l ; ' z x c v b n m , . /
Note that the character 'ʒ' on the 3 key is not a 3, but U+0292 LATIN SMALL LETTER EZH.
Example: 'sh' results in 'ʃ'.
` 1 2 3 4 5 6 7 8 9 0 - = q w e r t y u i o p [ ] a s d f g h j k l ; z x c v b n m , . /
- 'dd' results in 'đ'
- 'DD' results in 'Đ'
Vowel plus character(s) at left results in accented vowel.
- ' áéíóúý
- ` àèìòùỳ
- ^ âêô
- ^? ẩổ
- ^' ấếố
- ^` ầềồ
- ? ảẻỉỏủỷ
- Hiragana （romaji-hiragana conversion）
Typing a consonant key produces the syllable with that consonant plus a. Typing a consonant followed by a different vowel in most cases produces the syllable with the consant-vowel combination indicated. Some syllables are spelled in other ways, in an attempt to simplify things for the English-speaking user.
｀ 1 2 3 4 5 6 7 8 9 0 ［ ］ q わ え ら た や う い お ぱ ［ ］ 、 あ さ だ ふ が は じ か l ； ' ざ x ち v ば ん ん ， 。 ／
Examples: kkikukeko produces かきくけこ; tctsteto produces たちつてと
- Katakana (romaji-katakana conversion)
` 1 2 3 4 5 6 7 8 9 0 ー＝ q ワ エ ラ タ ヤ ウ イ オ パ ［ ］ 、 ア サ ダ フ ガ ハ ジ カ l ； ' ザ x チ v バ ン ン ， 。 ／
Example: kkikukeko produces カキクケコ; tctsteto produces タチツテト
- Nippon (romaji-kanji conversion)
Type a syllable in romaji. A menu appears, offering characters to be chosen by number. It is essential to know the readings expected by the software, such as naka1kawa1 to get the name read Nakagawa 中川. This IME does not recognizes the modifications to readings that occur when characters are combined.
Example: ni1hon1 produces 日本.
- 3bul (five variants)
- Hangul Romaja
- M17N (two variants)
- UIM (six variants)
and many others
- Cangjie (two variants)
- Pinyin (many variants)
- Quick (two variants)
1 2 3 4 5 6 7 8 9 0 手 田 水 口 廿 卜 山 戈 人 心 日 尸 木 火 土 竹 十 大 中 片 重 難 金 女 月 弓 一 , . /
- Cangjie 3
- Cangjie 5
- Canton HK
- Cantonese Pinyin
- Stroke 5
ㄅ ㄉ ˇ ˋ ㄓ ˊ ˙ ㄚ ㄞ ㄢ ㄦ = ㄆ ㄊ ㄍ ㄐ ㄔ ㄗ ㄧ ㄛ ㄟ ㄣ [ ㄇ ㄋ ㄎ ㄑ ㄕ ㄘ ㄨ ㄜ ㄠ ㄤ ; ㄈ ㄌ ㄏ ㄒ ㄖ ㄙ ㄩ ㄝ ㄡ ㄥ
- ZhuYin Big
 SCIM on the XO
In some builds, XO software includes SCIM. Open a Write session, then right-click in the text area to get a menu that includes SCIM IMEs. More recently, as is the case with G1G1 XO's, you have to install SCIM manually.
SCIM takes about 16MB of space, of which 10.5MB is taken by perl and perl-libs. The IME's occupy additional space. SCIM-anthy, for instance, is about 6.9MB.
You will also need to install fonts.
 Installing SCIM
SCIM is in the Fedora 7 repository on which XO is based; it is not necessary to further configure yum to recognize another repository.
As root in a terminal, simply type:
yum install scim scim-gtk
Alternatively, one can grab a customized RPM to fit on OLPC. The dependency of im-chooser is removed as unusable for OLPC. This will greatly save the disk space needed for dependent packages. The post-install script also modifies .xsession file automatically.
wget http://hep1.phys.ntu.edu.tw/~john/olpc/scim-1.4.7-23.olpc.i386.rpm wget http://hep1.phys.ntu.edu.tw/~john/olpc/scim-libs-1.4.7-23.olpc.i386.rpm wget http://hep1.phys.ntu.edu.tw/~john/olpc/scim-gtk-1.4.7-23.olpc.i386.rpm sudo rpm -ihv scim-*.rpm
The source RPM is also available here: http://hep1.phys.ntu.edu.tw/~john/olpc/scim-1.4.7-23.olpc.src.rpm
 Installing SCIM IMEs
Similarly for the desired IME packages. For example, as root in a Terminal activity type:
yum install scim-anthy
scim-anthy scim-canna scim-skk scim-prime scim-tables-ja
scim-chewing scim-pinyin scim-tables-zh
scim scim-gtk scim-m17n scim-tables m17n-db-hebrew.noarch
scim-m17n scim-tables scim-tables-additional scim-tables-amharic scim-tables-arabic scim-tables-nepali scim-tables-russian scim-tables-thai scim-tables-vietnamese
The configuration scripts in the SCIM package do not work on XO. One can copy ~olpc/.xsession-example to ~olpc/.xsession and put the following line into it. SCIM will then be activated during Sugar start-up. (~olpc/.xinitrc is obsoleted for system image beyond Build 650.)
export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=scim export USE_XOPENIM=t scim -d
Since there's no system tray in Sugar, SCIM can be invoked by pressing the Ctrl+Space hot-key. The SCIM bar will appear at the bottom right of the screen. Different keyboard layouts can be chosen from the SCIM bar. One can also switch between different IM's from the context menu by right-clicking in the text area.
If using the alternative packages built for OLPC, the modifications on .xsession are not needed.