SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|

2008-06-07(Sat) Fedora9、ATOKチューン

  さて、メディアファイルも扱えるようになり、マニョマニョとウェブを閲覧する限りは、かなり快適な環境を築きつつあるわけだが、ガッツンガッツンとメールを書くにはATOKによる日本語入力環境の構築、チューニングが必須である。

  と、ここまで触れなかったが、Fedora9には「普通にインストールすると日本語が入力できない」というなかなかにビッグな不具合があるらしい。オイラは、如何にしてATOKを導入するか、しか考えていなかったので、トンと気づかなかったわい。

  某掲示板では、これを持って「クソディストリ」と発言しているヤツがいたが、そういうあんた自身がクソ以下だと言いたい。誰が作っていると思っているんだ。タダで使わせてもらっておいて、しかもリリース直後に文句を言うな。あんたは開発に協力したのか? バグレポートのひとつも送ったのか? せめて少しでも金を払ってから言え。バカ。

  と、少々脱線したが、結論から言うと、Fedora9でも何の問題もなくATOK X3を使用できる。まずは、im-chooser, imsettings, imsettings-libsをインストールする。おそらく、yumでim-chooserをインストールすれば、続くふたつも入るはず。

  でもって、あとはマニュアルの手順通りにインストールする。具体的にはXからログアウト、黒い端末画面から、setupatok.sh, /opt/atokx3/sample/setting_redhat5.shを順に実行。アップデートモジュールが出ているので、ついでにsetupatok_up1.shも実行。

  で、問題は起動スクリプトである「/etc/X11/xinit/xinput.d/iiimf.conf」に記述されている「gnome-im-settings-daemon」。実はコレがFedora9には存在しない。Xのリングに登るとイキナリにドシロートのオイラなので、これにはかなり悩まされたが、某掲示板に「/opt/atokx3/bin/atokx3start.sh」を実行すればいいという情報があり、試したらアッサリとうまくいった。

  以下は、私のiiimf.conf。アップデートモジュールと併せ、JUSTSYSTEMのサイトで提供されている、iiimf_status_hideを実行し、ウィンドウの下にくっつく、ヘンなツールチップの非表示処理設定を加えてある。

XIM=iiimx
XIM_PROGRAM=iiimx
XIM_ARGS=-iiimd
GTK_IM_MODULE=iiim
QT_IM_MODULE=xim
#gnome-im-settings-daemon >/dev/null
 
export HTT_DISABLE_STATUS_WINDOW=t
export HTT_GENERATES_KANAKEY=t
export HTT_USES_LINUX_XKEYSYM=t
export HTT_IGNORES_LOCK_MASK=t
export JS_FEEDBACK_CONVERT=t
 
export ATOK_DISABLE_PALETTE=t
export ATOK_ENABLE_STATUS_WINDOW=t
 
/opt/atokx3/bin/atokx3start.sh
 
/opt/atokx3/sample/iiimf_status_hide

  なお、yumでまとめてアップデートをかけると、iiimf 関連パッケージのいくつかが勝手にアンインストールされてしまうようだ。未確認ながら「/etc/yum.conf」の「[main]」の段落に「exclude=iiimf*」を追加しておくといいかもしれない。

  で、ここからがオイラのオリジナルハック。ATOKは、IMのON/OFFのキーバインドに、規定で「Ctrl+Space」が割り当てられている。しかし「Ctrl+Space」といえば、emacsの「マーク」のキーバインドであり、当然のようにこれらは衝突してしまう。というか、ATOK側が食ってしまう。

  Linux版の入力環境を出しておきながら、emacsに楯突くとは神をも恐れぬ所業といえるが、あの神(ストールマン)は日本語を入力しないからなぁ……という都合を知ってか知らずか、このキーは設定で変更可能だ、が、しかしッ!! スーパースットコドッコイなコトに、選択肢は「Shift+Space」のみに限られるのであった。なんだそれはッ!? 責任者出てこいッ!!

  実は隠しキー(でもなんでもないかもしれないが、ちゃんとマニュアル読んでねぇの)で、全角/半角キーでもON/OFFすることはできる。とはいえ「Ctrl+Space」か「Shift+Space」のどちらかは有効にしておかねばならず、両方を無効にすることはできない。んにゅー、うっとおしいっちゅーの。

  どうにか無効にしようと、最初は添付のIIIMFのソースを直して、再コンパイルとかも試してみたのだが、ビルドには成功するものの、RPMパッケージが生成できない。別にmake installしてもいいのだが、使いもしないファイルが大量にバラ撒かれるのも気分が悪い。そこで、ピンポイントでバイナリパッチを当てることを思いついた。

  バイナリパッチといっても方法は簡単。viのバイナリモードを使って、一部をちょっとツメるだけ。vi -b /usr/bin/iiimdして「Zenkaku_Hankaku」をサーチすると、以下の2カ所が見つかるはず。

^@<Ctrl>space,Zenkaku_Hankaku^@Conversion...
^@<Shift>space,Zenkaku_Hankaku^@Language...

  これを、以下のように修正してしまう。

^@Zenkaku_Hankaku^@            Conversion...
^@Zenkaku_Hankaku^@             Language...

  注意する点は、後ろに続く「C」と「L」の「位置をズラさない」ようにスペース等で埋めること、だ。同様に/usr/lib/iiim/iiim-xbeも修正する。で、iiimdを再起動すれば、Ctrl+Spaceは無効になっているはず。ログインし直してもいい。

  なお、私のX40は英語キーボードなので全角/半角キーがない。IMのON/OFFを行うキーに適当な配置といえば、やはり右下周辺になる。ということで、右のAltキーを割り当てることにした。xmodmapに「keycode113 = Zenkaku_Hankaku」を食わせればいい。

  というわけで、これで日本語入力環境が整ったかといえば、実はオイラにとってはまだ全然で、ようやく日本語でググれるようになったね、程度でしかないのであった。自作メーラであるmave上でガッツンガッツンとメールを書くにはemacsからiiimecf経由でATOKに接続できねばならないのであるが……それはまた別のお話である。ではまた。