旅とプログラミングを少々

趣味に関する記録などをします。さしあたっては2017年JGC修行とプログラミング入門に関しての内容を連ねていきます。

Linux IME 未整理

Linux IMEについて未整理な雑多な情報

XIM

最古のIMインタフェース, X Window System内に定義されている。

The Input Method Protocol

日本語は全部サーバ・クライアントモデル?

XMODIFIERS=@im=XXXXにて指定したものか、Root windowのXIM_SERVERSリストの先頭のものが使われることになっている。IM serverがXに自分を登録するスタイル(?) 詳細よくわからない。

今でもGTK LibやQt Libをフルに使っていないプログラムでは基本的にこれを用いて入力しているはず。

 

IM Module (総称)

各種GUIツールキットでXIMとの間をうまく取り持つ部分と、そのIMインタフェース。

Qt IM Module

不明。IM Moduleという名前はGtkと同じだが、別のインタフェース。QT_IM_MODULEで指定した名前からどのようにIM server(?) IM Library(?)がわかるのかまだ調べていない。

Gtk IM Module

こちらもよくわかっていない。GTK_IM_MODULE環境変数で指定した文字列から、どのように探索するのか調べていない。

GtkIMContext: GTK+ 3 Reference Manual

EFL Input Method Framework

ECore Input Method Frameworkというものがあるらしいがよくわからない。一応scimibusはあるのでTIZENで使われているのだろう。

efl/ecore_imf_example.c at master · turran/efl · GitHub

 

 

Wayland

Wayland text-input と呼称されている。専門家によるとまだまだ機能が不十分らしい。

Gaps between Wayland and Fcitx (or all Input methods). | CS Slayer

Google Summer of Codeで関連プロジェクト提案があったと思うが、誰もやっていない? 詳細な記録がない?

 

ibus

ibusは2013年の1.5より前と以降で別のIMと考える必要がある。

ibus before 1.5

最後発のIMとして普通に各IMプロトコルに対応し、IMEが状態を管理できた。単純にXIMからの悪い影響を排した良い橋渡しプログラムだったように見受けられる。

ibus post 1.5

ibus自体が状態を持ちそれを共有し、IMEの切り替えによって入力方式を変更する。ここまではまだいいが、GNOME (GNOME Shellというべき?)と密結合しキーボードレイアウトとIMEの組合せでしか変更できないほか、いろいろ機能がなくなっている。

多分このエイプリルフールの漢字キーボードを真に受けると良い設計。

Google Japan Blog: Google日本語入力チームからの新しいご提案

一応mozcはメインIMターゲットがibusだったため日本語変換にibusを使えなくもない程度にアップデートしたが、それ以外のIMEではそんなに重要視されていないように思える。

 

uim

wnnの頃もっとも普及していたIMで、uimに対応すればuimがxim,gtk-immodule,qt-immoduleを全部担当してくれていた(? 記憶不明瞭)

 

fcitx

fcitx4

単一のX Window serverでのみ動作する。モジュール型な設計のように見えてfcitx-gtkなどの初期fcitxからある部分はきちんと分離されていない。IMEは分離したモジュールとなっている。

fcitx5

複数のX Window serverで共有できるほか、Wayland対応を進めている。X のライブラリにXLibではなくxcbを前提としている(?)

4で分離できていなかった部分を含めてかなりの再設計になっている。IMEのインタフェースもfcitx4とは違う。

 

mozc

もずく。OSSの旧Google Japanese Input

品詞の接続コストから文節・品詞を確定し、各品詞内は統計的最頻単語を候補にするらしい。全文ではなく小範囲で変換するくせがある人間には特に「かくりつ」が常に「確立」になって、学習後は常に「確率」になってしまう奴。

ソース読んだことない。

 

kkc

かかし。OSSの新? 次期? Google Japanese Input?

単語単位でtri-gram DBを持っていて予測入力補助に活用しているらしい。小範囲での変換でもより文脈に即してくれるので「かくりつ」問題が緩和されている。