wimeを使ってLinuxでWindows版ATOK 2008を動作させる

Windows版のATOK2008をwineで動作させcannaサーバに見せかけるプログラム、wimeをインストールして使えるよう設定します。

kokutotoは去年の9月くらいから使っていますが安定していて十分常用できますし、やはり連文節変換でATOKの精度は侮りがたいものがあります。

Linuxで文章を書くがAnthyはちょっと…でもWindows版があるしATOK X3は買いたくない、といった場合に重宝します。

以下の作業はdebian lennyを前提としていますが、ubuntuなどはほとんど変わらない手順で導入できるのではと思います(試していないのでわかりません)。

wineのインストール

まずwineをインストールします。
wimeはwine 1.0.0でも動作するのでdebian lennyならaptからインストールするだけで良いです。

apt-get install wine

ATOKのインストール

ATOK2008製品版のCD-ROMのATOK/ATOK21.msiをmsiexecで実行します。普通にexeを起動するだけではダメなようです。

文字化けするかも知れませんがwime自体は正常に動くのでフィーリングでインストールを進めます。

msiexec /i /mnt/ATOK/ATOK21.msi

不足しているレジストリを補うためwimeを展開した中に入っているatok.regをregeditで読ませます。

regedit atok.reg

wimeのインストール

作業の一連の流れとReadmeを読んでも書いていない事を中心に書きます。

ダウンロード

公式サイトから最新のwimeのアーカイブ(ここでは3.1.3)を落としてきます。

wget http://www.venus.sannet.ne.jp/thomas/wime/wime-3.1.3.tar.bz2

展開します。

tar jxvf wime-3.1.3.tar.bz2
ビルド

makeします。
debianではwine関係のファイルが/usr/libとか/usr/includeに入るのでWINEDIRは/usrにしておくのが良いでしょう。

WINEDIR=/usr make

RK.hが無いと言われたら…。

sudo apt-get install libcanna1g-dev

winuser.hが無いと言われたら…。

sudo apt-get install libwine-dev

gtk.hなどが無いと言われたら…。

sudo apt-get install libgtk2.0-dev

デフォルトで後述するwimeximとim-wimeもコンパイルされるよう設定されているので、これらが不要なら以下のように変数を設定しておくと依存ライブラリが減るかも知れません。

enable_xim=0
enable_gim=0
動作確認

インストール前に動作を確認することもできます。

Readmeにあるようにwimeをmakeしたディレクトリで次のようにするとwimeが動作します。

LD_LIBRARY_PATH=./so:$LD_LIBRARY_PATH WINEDLLPATH=./dll ./exe/wime
インストール

make installでインストールします。

wime.dll.soはPREFIXとは関係なくWINELIBDIRにinstallされるので、環境変数の指定は注意が必要です。

debianでWINEDIRを指定せずにmake installするとwime.dll.soが/usr/local/lib/wimeとしてinstallされてしまい悲しい事になります。

sudo WINEDIR=/usr make install

wimeの起動/設定/終了

起動はwimeコマンドから。

wime

もし本物のcannaサーバが動いていたら終了させておきます。
wimeを常用する場合はupdate-rc.dでcanna自動起動設定を切っておきましょう。

sudo /etc/init.d/canna stop

wimeの設定はwimeの起動時にwimectrlで。

wimectrl

wimeの終了はwimectrl -kで。

wimectrl -k

異常終了時に「アドレスは既に使用中です」と言われて再起動できない場合があります。

ImInit: Address already in use

libcannaと通信するためのソケットが残っているのが原因なので、そういう場合は/tmp/.iroha_unix/IROHAを削除します。

rm /tmp/.iroha_unix/IROHA*

入力メソッド毎の設定

ここから先はお好みで。

uim + uim-cannaでの設定例

kokutotoはATOK以外ならuim + anthyな人なのでuim-cannaを使ってuimでwimeを使うように設定します。

sudo apt-get install uim-canna

これでuimの設定でインプットメソッドとしてcannaが指定できるようになります。

uim-pref-gtkで「使用可能にする入力方式」を"Canna"にします。

uim-pref-gtk

以上でcannaサーバとして動作するATOKが利用可能になります。

wimexim及びim-wime

wimeには2.0.0からXIMサーバのwimeximが、3.0.0からGTK+用immoduleのim-wimeが付属しています。

ATOKパレットも出て素敵な感じになりますが、wineにパッチを当てないとファンクションキーが効かないなど不便な所があります。

debianだとこれらに関係する環境変数XMODIFIERSやGTK_IM_MODULEの設定は~/.xinput.d以下のファイルで行います。

またリソース設定は~/.Xresourcesに書くことにします。~/.Xresourcesはどこかでxrdbで読まれると設定されている前提です。

wimexim

~/.xinput.d/ja_JPで以下を設定をします。
このファイルはデフォルトで/etc下にあるファイルを指すシンボリックリンクなので注意が必要です。

XIM=wime
XIM_PROGRAM=/usr/local/bin/wimexim

続いてIMEをon/offするためのキーバインドをリソースで設定します。~/.Xresourcesに以下を書きます。

ximegim.imeToggleKey:A-space

または

Wime.imeToggleKey:A-space

wimeximを起動しておきます。

wimexim

これでXIM対応アプリケーションから、リソースimeToggleKeyで設定したキーバインドIMEがon/offされ、ATOKが利用可能になります。

im-wime

同じく~/.xinput.d/ja_JPに以下を設定します。

GTK_IM_MODULE=wime

次に~/.Xresourcesに以下を設定します。

wimegim.imeToggleKey:A-space

または

Wime.imeToggleKey:A-space

これでGTK+immodule対応アプリケーションから、ATOKが利用可能になります。