Xubuntu に ATOK X3 for Linux を導入した

ATOK X3 for Linux を買った.
Anthy の馬鹿さ加減にイラっとして,気づいたら公式の販売サイトでポチっていた.すぐにでもインストールしたかったので,ダウンロード版.勢いの買い物だったけれど,後悔はしていない.
以下,導入手順をまとめておく.emacs 関連が少し面倒くさい.そして,まだ解決していない.

インストール

自分の環境は Xubuntu 8.04.デスクトップ環境が Xfce なだけで,普通の Ubuntu と同じようにインストールできた.
インストールの手順は,公式サイトの [042708]Ubuntu 8.04 LTS 日本語ローカライズド Desktopでのインストール方法 に書いてある通り.ATOK 本体のパッケージと,[042459]ATOK X3 for Linux アップデートモジュール のアップデートモジュール,二つの tarball を同じディレクトリにダウンロードしてきた状態から始める.

# まず,それぞれのパッケージを解凍する.
$ tar xvzf atokx3.tar.gz
$ tar xvzf atokx3up1.tar.gz

# 本体パッケージのディレクトリに入って,ATOK をインストールする.
$ cd ATOKX3
$ sudo bash ./setupatok_deb.sh

# 次に,ディレクトリを移ってアップデートモジュールを適用する
$ cd ../atokx3up1
$ sudo bash ./setupatok_up1_deb.sh

# 最後に,起動設定を行う
$ sudo bash /opt/atokx3/sample/setting_debian4.sh

これで,ログインしなおせば自動的にATOKが起動しているはず.

設定の変更

  • Ctrl+Space で日本語入力ON/OFFしないようにする
  • ウィンドウの左下にぶら下がるステータス表示を消す

この設定をするために iiimf-properties というツールを使う.先ほどの ATOK 本体パッケージに同梱されているので,そこからインストールする.

# iiimf-properties のインストール
$ cd ATOKX3
$ sudo dpkg -i bin/deb/IIIMF/iiimf-properties_trunk_r3104-js3_i386.deb

# 起動 (コマンド名は iiim-properties)
$ iiim-properties

出てきたウィンドウで,

  • [一般] - [入力方式のステータスを表示する] のチェックを外す
  • [トリガーキー] - [Ctrl+space] を削除

これでOK

emacs から使う (IIIMECF の導入)

Linux における ATOK は IIIMF という入力/変換フレームワークの変換サーバとして動いているので,その変換クライアントである IIIMECF を emacs に入れてやれば,シームレスに ATOK が使えるようになる.
まずは,パッケージをダウンロードしてくる.自分は,subversion で取得してみた.

$ svn co http://svn.openi18n.org:8081/repos/im-sdk/trunk/iiimecf iiimecf

で,あとは elisp ファイルをバイトコンパイルして, load-path が通っているところにコピーすればよい.ただ,キーバインドを変えたい場合,その前にソースを編集する必要がある.iiimecf/lisp/iiimcf.el というファイル.http://genmei.itline.jp/~svx/diary/?date=20071220 を参考に,自分なりに苦心した結果がこれ.

$ diff -c lisp/iiimcf.el lisp/iiimcf.el.orig
*** lisp/iiimcf.el	2008-09-30 07:05:53.000000000 +0900
--- lisp/iiimcf.el.orig	2008-09-30 04:31:40.000000000 +0900
***************
*** 284,298 ****
  
  (defvar iiimcf-keycode-spec-alist
    `((13 10 0)
-     (11 37 65535) ; C-k
-     (12 39 65535) ; C-l
-     (9 37 65535)  ; C-i
-     (15 39 65535) ; C-o
-     (7 27 65535)  ; C-g
-     (16 38 65535) ; C-p
-     (14 28 65535) ; C-n
-     (2 113 65535) ; C-b
-     (6 114 65535) ; C-f
      (32 32)
      ,@(mapcar #'(lambda (x) (list x x 0))
  	      (iiimcf-numseq 1 31))
--- 284,289 ----

iiimcf-keycode-spec-alist の最初のほうに (アルファベット番号 キー番号 65535) のリストを追加すれば "C-アルファベット" を "キー" にバインドできる.キー番号はその下のほうに書いてある.上の設定では,次のようなキーバインドを実現している.

- C-k/C-l 文節区切り収縮/伸張
- C-i/C-o 同上
- C-g     変換キャンセル
- C-p     前候補
- C-n     次候補グループ
- C-b/C-f 文節前移動/文節後移動

C-b/C-f に関しては,デフォルトの設定だと文節移動を emacs から操作できなかったので,ATOK 側で F2/F3 を文節移動に割り振っておいて,emacs 側で C-b = F2, C-f = F3 となるようにした.
以上のソースの編集が終わったら,バイトコンパイルして elisp ファイルを load-path が通っているところにコピーする.

$ emacs -q --no-site-file -batch -l iiimcf-comp.el
$ cp lisp/*.el lisp/*.elc (load-path ディレクトリ)

ちなみに,自分の .emacs の設定は次の通り.設定の仕方の詳細は,iiimcf の README.ja に書いてある.

(setq iiimcf-server-control-hostlist (list (concat "/tmp/.iiim-" (user-login-name) "/:0.0")))
(when (and (= 0 (shell-command
                 (concat
                  "netstat --unix -l | grep -q " (car iiimcf-server-control-hostlist))))
           (require 'iiimcf-sc nil t))
  (setq iiimcf-server-control-default-language "ja")
  (setq iiimcf-server-control-default-input-method "atokx3")
  (setq default-input-method 'iiim-server-control))
(global-set-key "\C-o" 'toggle-input-method)

解決していない問題

emacs で Ctrl+Space を押すと,ATOK の日本語入力が ON になってしまう.ただ,ON の状態でもう一回押しても OFF にならないので,ON/OFF トグルに割り当てられているわけではないと思う.emacs でそんな設定はしていないので,emacs に入力が届く前にどこかが横取りしているのだと思うのだけれど...誰のせいだかわからない.