nicolatterはキー配列を変更する関係で,オリジナルのCannaは使えません。Q's Nicolatterに添付のワイド文字対応化パッチを適用し,Cannaをコンパイル,インストールしなおす必要があります。
Cannaワイド文字対応化パッチは公開関数を変更しないので,元々あるCannaを置き換えても他のソフトに影響はありません。
Cannaのソースは、Canna から入手します。
/opt$ tar xjvf Canna37p1.tar.bz2 /opt$ cd Canna37p1 /opt/Canna37p1$ patch -s -p1 < ~/src/nicolatter-current/patch/Canna37p1-q1.diff
コンパイル、インストール手順はCannaのINSTALL.jpファイルに書かれています。
/opt/Canna37p1$ xmkmf && make canna
/opt/Canna37p1$ su /opt/Canna37p1# make install && make install.man
上記で、/usr/local/canna以下にインストールされます。
古いlibRKC*, libcanna*が/usr/libなどにあるとプログラムの実行時に古いライブラリが使われることがあるので、これらのファイルを削除します。
その後、必要に応じてシステムに新しいライブラリファイルを認識させます。/etc/ld.so.confを書き換えてldconfigを実行するか、/usr/libにリンクを張ります。
nicolatterをコンパイルする前に,configureコマンドで変換サーバー,ツールキットを選択します。
変換サーバーはWnn, Cannaのいずれか一方,または両方を選択できます。ツールキットはGtk+, Xtから選びます。
configureコマンドの例を示します。
/tmp/nicolatter-x.y.z$ perl configure usage: configure (gtk|xt) [canna] [wnn] gtk, xtはどちらか一方を選択,canna, wnnは少なくても一つを選択 /tmp/nicolatter-x.y.z$ perl configure xt canna wnn Looking for wnnenvrc...found. Looking for jllib.h....found. Looking for libwnn.....found. nicolatter was configured as follows: toolkit: Xt wnn: use wnnenvrc: /usr/local/lib/wnn/ja_JP/wnnenvrc jllib.h: /usr/X11R6/include/wnn/jllib.h libwnn: /usr/X11R6/lib/libwnn.a canna: use Modified config.h Modified Makefile.conf Modified nicolatter/Makefile
この節はconfigureコマンドが失敗した場合以外は読み飛ばして構いません。
nicolatterは変換サーバーとしてWnn, Cannaが使えます。config.hでこれに関連した設定をします。
Wnnを使う場合には,あらかじめWnn環境ファイルとヘッダーファイル,ライブラリファイルの場所を確認しておきます。
$ locate wnnenvrc /usr/doc/wnn/manual.en/2.env/wnn/wnnenvrc /usr/doc/wnn/manual.en/2.env/wnn/wnnenvrc.gz /usr/doc/wnn/manual/2.env/wnn/wnnenvrc.gz /usr/lib/wnn/ja_JP/wnnenvrc <--これが環境ファイル /usr/lib/wnn/ja_JP/wnnenvrc.omr /usr/lib/wnn/ja_JP/wnnenvrc.rem /usr/lib/wnn/ja_JP/wnnenvrc.rev /usr/lib/wnn/ja_JP/wnnenvrc_R /usr/lib/wnn/ja_JP/wnnenvrc_R.omr /usr/lib/wnn/ja_JP/wnnenvrc_R.rem /usr/man/ja/man5/wnnenvrc.5 $ locate jllib.h /usr/include/wnn/jllib.h <--これがヘッダーファイル $ locate libwnn. <-- Wnn6だとlibwnn6のときがある /usr/lib/libwnn.a <--これがライブラリファイル /usr/lib/wnn/ja_JP/libwnn.msg
config.hをテキストエディタで開き,次のように,利用しない変換サーバーについて,#defineを#undefに書き換えます。
#define USE_WNN #undef USE_CANNA #define WNN_ENVRCFILE "/usr/lib/wnn/ja_JP/wnnenvrc" <-- 先ほど調べたwnnenvrcの完全なファイル名
#undef USE_WNN #define USE_CANNA
USE_WNN, USE_CANNAの両方を定義(#define)して,設定ファイルによってnicolatter起動時に選択することもできます。
変換サーバー・ライブラリの選択,UIライブラリ(gtk+, Xt)の選択をnicolatter/Makefileでします。やはり利用しない変換サーバーに関連する部分をコメントアウト(半角の#を行頭に付ける)します。
INCDIR = -I/usr/include/wnn <-- jllib.hの場所 LIBDIR = -L/usr/X11R6/lib -L/usr/lib <-- libwnn.aの場所を追加 WNNFILES = WnnConv.o WnnWindow.o WNNLIB = -lwnn -lcrypt <-- libwnn6.aまたはlibwnn6.soのときは-lwnn6 # CANNAFILES = CannaConv.o CannaWindow.o # CANNALIB = -lcanna16INCDIRにjllib.hのあるディレクトリを,LIBDIRにlibwnn.soまたはlibwnn.aのあるディレクトリを追加します。libwnn.*が/usr/libなど標準で検索されるディレクトリにある場合はLIBDIRに追加する必要はありませんが,/usr/local/Wnn4/libなどの場合は必須です。
# WNNFILES = WnnConv.o WnnWindow.o # WNNLIB = -lwnn -lcrypt CANNAFILES = CannaConv.o CannaWindow.o CANNALIB = -lcanna16
gtk+を使う場合はnicolatter/Makefileで次のようにコメントアウトします。
CFLAGS = $(CCFLAGS) -DUSE_GTK -DGTK_DISABLE_COMPAT_H `gtk-config --cflags` LDFLAGS = `gtk-config --libs` $(WNNLIB) $(CANNALIB) MISCFILES = ../misc-gtk.o ../window.o # CFLAGS = $(CCFLAGS) # LDFLAGS = $(LIBDIR) -lXaw -lX11 -lstdc++ $(WNNLIB) $(CANNALIB) # MISCFILES = ../window-xt.o
Xtを使う場合は次のようにします。
# CFLAGS = $(CCFLAGS) -DUSE_GTK -DGTK_DISABLE_COMPAT_H `gtk-config --cflags` # LDFLAGS = `gtk-config --libs` $(WNNLIB) $(CANNALIB) # MISCFILES = ../misc-gtk.o ../window.o CFLAGS = $(CCFLAGS) LDFLAGS = $(LIBDIR) -lXaw -lX11 -lstdc++ $(WNNLIB) $(CANNALIB) MISCFILES = ../window-xt.o
設定プログラムのnicoconf, keyconfはgtk+専用になっているので,gtk+がインストールされていない場合は,nicolatterだけコンパイル,インストールします。
nicolatter-x.y.z$ make nicolatter
nicolatter-x.y.z$ make
コンパイル途中に警告が出ますが,特に気にする必要はありません。
実行ファイルをインストールします。
nicolatter-x.y.z$ su nicolatter-x.y.z# make install
設定ファイルをホームディレクトリ以下にコピーします。
$ mkdir ~/.nicolatter
nicolatter-x.y.z/rc$ cp global nicola.keymap common.keymap symbols.def ~/.nicolatter
gtk+があって,nicoconfをコンパイルしたときは,nicoconfで設定します。
nicoconfがないときは,テキストエディタで~/.nicolatter/globalファイルを編集します。設定ファイルを直接編集する
(2005.9.11 この節追加。)
Q's NicolatterとCannaを組み合わせる場合、機能キーの設定は、~/.cannaでします。Cannaの初期設定では、Ctrl-O が日本語モードに入るキーになっていますが、GNOMEアプリケーションなどでは、ファイルダイアログが開いてしまいます。
●要検証
(global-unbind-key-function 'japanese-mode) (global-unbind-key-function 'alpha-mode) ; use F4 instead: (set-key 'alpha-mode "\F4" 'japanese-mode) (set-key 'empty-mode "\F4" 'alpha-mode)
$ ps ax |grep jserver 14966 p0 S 0:00 grep jserver 304 ? SW 0:04 (jserver)
$ ps ax |grep canna 288 ? S 0:00 /usr/sbin/cannaserverktermを二つ開き,一方のktermでnicolatterを実行します。nicolatterはデバッグメッセージを大量に出力することがあるので,ウィンドウを一つあてがってやります。
$ nicolatterもう一方のktermからテスト用のプログラムを実行します。
nicolatter-x.y.z$ cd ximtest nicolatter-x.y.z/ximtest$ ./ximtest nicolatter root rootこれで正常に動作していたら,次はxeditぐらいで試します。
$ XMODIFIERS=@im=nicolatter xeditxeditが起動し,ウィンドウ左下に小さなステータスウィンドウが表示されていれば動作しています。仮名キーにしたキー操作,例えば[Ctrl] + [Space]で日本語モードに移行するので,何か打ってみましょう。
ウィンドウ左下にステータスウィンドウが表示されない場合,リソースの設定でXIMが無効になっていることが考えられます。~/.Xdefaultsファイルを開き,次の行を追加します。
*international: True *inputMethod: nicolatter正常に動作するようなら,Xの起動スクリプトを書き換えて,X開始時にnicolatterを起動するようにします。startxでXを開始するなら ~/.xinitrc ,xdm/kdm/gdmなどでXを開始するなら ~/.xsession に書きます。
if [ -x /usr/local/bin/nicolatter ]; then /usr/local/bin/nicolatter -D export XMODIFIERS="@im=nicolatter" fi
Copyright (c) 1998-2005 HORIKAWA Hisashi.
All rights reserved.