Osamu Sayama's Weblog
- All
- Desktop
- English
- Input Method
- Printing
- Solaris x86
atok and kana input mode
atok を使用して、カナ入力モードに切り替えるときに、 atok パレットから「カナ漢字入力」を選んで切り替えることができます(あるいは atok プロパティから)。この機能がどうも最近の nevada で動かなくなっていました。原因は 6791361 のバグのようなので、とりあえず
# ln -s xorg /usr/X11/lib/X11/xkb/rules/base
とかで回避できます (もうじき利用できるようになる予定の OpenSolaris 用の atok も同様です)。ついでに、この機能は X server の xkb extension に依存しているので、 sparc で Xsun とかだとうまく動いてくれません。以下の方法で Xsun の xkb extension を有効にしてから X server を再起動すると Xsun でも使えるようになります。
# svccfg -s application/x11/x11-server setprop options/server_args="+kb"
Posted at 10:31午後 4 16, 2009 by sayama in Input Method | 投稿されたコメント[0]
SCIM for opensolaris
テスト用ですがもうじき OpenSolaris からダウンロードできる scim のパッケージがアナウンスされました。pkg コマンドだとうまくとれなかったので sunvirtuallab から tar ファイルを持ってきて pkgadd で SUNWscim-root, SUNWscim, SUNWscim-anthy をインストールしました。あとはこのアナウンスに従って .profile (nevada で dtlogin 経由の場合は .dtprofile ) に export GTK_IM_MODULE=scim を加えて(non GTK アプリの場合は export XMODIFIERS=@im=SCIM も必要)、/etc/X11/gdm/Xsession を編集して、再度 login し直せば scim-anthy で使えるようになります。半角全角キーは最初使えないので <control> + <space> でパレットを出して SCIM 設定を起動して、ホットキーとして半角全角キーを設定すると次回以降から使えるようになります。nevada の場合は /usr/openwin/lib/locale/common/imsscript/S505multi を /etc/scim/xsession にリンクにすればよいかと思います。
% gtar xvf scim-i386.tar
% cd i386
% for i in *.bz2
do
gtar xjf $i
done
% pfexec /usr/sbin/pkgadd -d . SUNWscim-root SUNWscim SUNWscim-anthy
% cat ~/.profile
export GTK_IM_MODULE=scim
export XMODIFIERS=@im=SCIM
% env LC_ALL=C diff -u /etc/X11/gdm/Xsession.org /etc/X11/gdm/Xsession
--- /etc/X11/gdm/Xsession.org Sat Jul 19 08:09:50 2008
+++ /etc/X11/gdm/Xsession Sat Jul 19 08:10:45 2008
@@ -223,6 +223,10 @@
if [ -f /etc/iiim/xsession ]; then
. /etc/iiim/xsession
fi
+#Startup Input methods (scim)
+if [ -f /etc/scim/xsession ]; then
+ . /etc/scim/xsession
+fi
#Startup XIM stuff
if [ "x$XMODIFIERS" = "x" ]; then
if [ -f "$HOME/.xim" ]; then
Posted at 11:48午後 7 17, 2008 by sayama in Input Method | 投稿されたコメント[4]
ipafont and anthy
nevada b86 から ipafont と libanthy が入りました。もともと indiana 用をターゲットにしたものですが、nevada でも入ってます。nevada では HG フォントが入っているので、こちらを今までどうりデフォルトと考えていたのですが、どうも ipafont がデフォルトになってしまってます。HG フォントを使いたい方は、明示的に指定するか、SUNWttf-ipafont というパッケージを pkgrm してから fc-cache -f でもとに戻ると思います。また、libanthy が入って iiimf の anthy le 経由で anthy を日本語入力として利用可能です。iiim-properties で日本語入力として anthy を追加してください。iiimf/anthy は scim/anthy 経由の入力に比べるとパレットやカラー表示などがなくて寂しく感じますが、、、いずれ scim も indiana で使えるようになると scim/anthy 経由で使えるようになるでしょう。。。
Posted at 07:53午後 4 02, 2008 by sayama in Input Method | 投稿されたコメント[0]
IIIMF R12 - keyboard layout soft emulation and iiim-panel
nevada b57ですが、キーボードレイアウトのソフトエミュレート機能と iiim-panel という2つの iiimf関連の追加機能が入っていますのでちょっと紹介しておきあます。キーボードのエミュレーション機能はヨーロッパの人たちは基本的にキーボードのレイアウトを切り替えて複数の言語を入力するようなのですが (フランス語物理キーボードでロシア語のキーボードレイアウトを使ってロシア語を入力とか)、この切り替え機能を正しく動くようにしたものです。今までも X level での XKB 機能での切り替えや IIIMF の Unit LE でもある程度できたのですが、前者ですと Xsun など XKB がデフォルトになっていないときに使えない、後者だと Unit LE が英語キーボードを仮定したテーブルをもっていたので、物理キーボードが英語キーボード以外だと正しく動かない問題がありました。そこで Unit LE に libkbltrans というレイアウトを意識したキーコードの変換テーブルを介することにより Unit LE で切り替え機能が正しく動くようにしたもです。このへんが改善されたのでヨーロッパ言語の人にはうれしい変更なのかもしれません...
また、iiim-panel というのは IM の LE 切り替えアプリでして、いままでは gimlet (gnome-im-switcher applet) として gnome のアプレットで実装されていたのを GTK のアプリケーションとして独立させて JDS 環境以外の CDE や KDE 環境でも IM の LE 切り替えアプリを使えるようにしたものです。JDS 環境ではデフォルトで自動的に起動されます。
Posted at 10:18午後 2 17, 2007 by sayama in Input Method | 投稿されたコメント[0]
IIIMF R12 (3) - log_level
nevada b52 から iiimd/iiimx のオプションに log_level と log_facilty オプションが追加されました(とりあえず non support ですが)。/usr/openwin/lib/locale/common/imsscript/S505multi の iiimx のとこを書き換えると制御できます。たとえば、
# vi /usr/openwin/lib/locale/common/imsscript/S505multi
-> /usr/bin/iiimx -iiimd -log_level DEBUG -log_facility LOCAL0
# vi /etc/syslog.conf
# local0.debug /var/adm/iiim-messages
^^^^^^^^ tab でないと認識されないので注意
# touch /var/adm/iiim-messages
# svcadm restart system-log
とかで /var/adm/iiim-messages にデバッグ情報がでてきます。
-log_level には
QUIET, ERROR, WARNING, NORMAL(default), INFO, VERBOSE, DEBUG
-log_facility には
AUTH, USER, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7, STDOUT, STDERR(default)
が指定できます。いまのとこ iiimd のみ対応してます...
Posted at 07:57午後 12 27, 2006 by sayama in Input Method | 投稿されたコメント[1]
SCIM-anthy on Solaris
Solarisの標準 IM frameworkは IIIMFですが、SCIMもビルドできているので、あまり詳しくはないですが anthy との組合わせの使用方法を簡単に紹介しておきます。まず Anthy を build します。SunStudio 11 でビルドする場合は、Yong の公開しているパッチ anthy patch をあてます (Thanks Yong). とりあえず anthy-7900 用のパッチなので 7900 を持ってきて展開します。anthy-8300 の場合は少し変更必要なのでこちらで変更してつかいました。
% cd anthy-7900
% gpatch -p1 < ../anthy_solaris_sunstudio_build_patch.diff
あとは、CBE 環境用の do.sh スクリプトで
% do.sh ./configure
% make
# make install
を実行して /usr/local に anthy がインストールされます。次に scim 1.4.5 を展開し、Yong の scim patch をあてます。また scim 1.4.5 や最新の nevada だと一部エラーになるので、私は scim patch 1.4.5 を加えました。さらに、UCS4 iconv 依存の部分は Solaris iconv patch を入れました。
% gpatch -p0 < scim_solaris_sunstudio_build_patch.diff
% gpatch -p1 < scim-1.4.5-sol.patch
% gpatch -p1 < scim-use-sol-iconv.patch
あとは do.sh ./bootstrap のあとに anthy 同様に do.sh ./configure, make, make install します。ただ、do.sh は /usr/local を参照させなどで一部変えます。
PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig
CFLAGS=-I/usr/local/include
LDFLAGS='-R/usr/lib/iiim -lsocket'
最後に scim-anthy は scim-anthy patch をあててから(まだ不完全ですがとりあえず)、do.sh ./configure, make, make install します。あとは /etc/gtk-2.0/gtk.immodules の最後に
"/usr/lib/gtk-2.0/immodules/im-scim.so"
"scim" "SCIM" "scim" "/usr/share/locale" ""
を加えておくと、
% env GTK_IM_MODULE=scim /usr/bin/gedit
とかで GTK アプリを scim 経由で使用することができます。これで Solaris でも SCIM anthy 試してみたり、SCIM の他の im module とかの実験にも使えそうです...

Posted at 08:48午後 12 26, 2006 by sayama in Input Method | 投稿されたコメント[0]
Solaris 10 11/06 - Wnn8 and 106 keyboard
Solaris 10 11/06がでましたが、kdmconfig で日本語 106 キーボードが正しく設定できなかったりします。
とりあえず、eeprom コマンドで
# eeprom kbd-type='Japanese(106)'
しておけばリブート後から使えるようになります。また、Wnn6 が Wnn8 になってます。デフォルトだと無効になってますので、有効にするには、
# svcadm enable wnn8/server
で jserver を有効にして、login 後に iiim-properties コマンドの言語タブで日本語を選び、使用可能なエンジンから Wnn8 を追加すると使用できるようになります。デフォルトにするには、ATOK の上にもっていくことで、logout 後からデフォルトになります。また、JDS 環境で GNOME パネル上に
ステータスを表示させるには、パネル上で右クリックし「パネルに追加」-> 「ユーティリティ」->「入力方式スイッチ」を選択します。これを使用して ATOK/Wnn8 を切り替えて使用できるようになります。詳細は「日本語環境ユーザーズガイド」の日本語入力方式の項を見てみてください。
Posted at 07:51午後 12 20, 2006 by sayama in Input Method | 投稿されたコメント[0]
IIIMF R12 (2) - build
iiimf は実際にどんなもんかいじって使ってみないとわからないので、とりあえず build 方法を説明しておきます。
iiimf の build 環境をつくるには、まず JDS cbe から
CBE をインストールします。x86 の場合、jds-cbe-1.5.1-i386.tar.bz2 を持ってきて、cbe-install
を実行するだけです。SUNWsmbaS は不要なので install しないで OK です。また、Sun Studio 11
のコンパイラも前もってインストールしておいてください。
次に Solaris nevadaにバンドルされている iiimfはいまのとこ openi18n.org の trunk のをそのまま使っているのでここから持ってきます。
% pkginfo -x SUNWiiimu
SUNWiiimu Internet/Intranet Input Method Framework Package (Usr)
(i386) 4.3,REV=3.0.46.3248
この場合、3248 が今使用している Solaris に入っているので、
% /opt/jdsbld/bin/svn co -r3248 http://svn.openi18n.org:8081/repos/im-sdk/trunk im-sdk
で今インストールされている iiimf のソースが取得できます。
あとは im-sdk/Makefile を必要なとこのみ build するように書き換え、
% LC_ALL=C diff -u Makefile.org Makefile
--- Makefile.org Sat Dec 9 22:12:24 2006
+++ Makefile Sat Dec 9 22:45:26 2006
@@ -19,9 +19,9 @@
INTLDIRS = iiimgcf gnome-im-switcher
BUILDDIRS = lib/CSConv lib/EIMIL lib/iiimp lib/iiimcf \
- iiimsf leif leif/sun_le_korea leif/sch_le_sun leif/tch_le_sun \
+ iiimsf \
iiimxcf/xiiimp.so iiimxcf/htt_xbe \
- iiimgcf gnome-im-switcher doc
+ iiimgcf leif
CONFIGDIRS = $(BUILDDIRS) leif/m17n_le leif/thai_le_sun
スクリプト do.sh を使って(内部の IM 通の人に教わりました :-)、以下を実行すると build できます (コンパイラのパスや JDS cbe のパスは環境に合わせて変えてください)。
% ./do.sh /usr/ccs/bin/make build
各モジュールの .libs にものができます。たとえば iiiimd サーバは iiimsf/src/.libs/iiimd が build でできたものですので、これを /usr/bin/iiimd と入れ替えればいいです。いったん build 環境を作成した後は、各モジュール以下で (たとえば iiimsf/src) make を実行するだけで build できます。.lib のは RUNPATH に build 環境が入っているので、make DESTDIR=/tmp install とかで install したものをコピーしてたほうがいいもしれません。
また sampleja LE という日本語 LE のサンプルもあるので、これを追加インストールするには
% cd leif/sampleja/.libs
% su
# mkdir /usr/lib/iiim/le/sampleja
# cp sampleja.so /usr/lib/iiim/le/sampleja
でインストールできます。あとは iiimd を再起動して(logout/login でも) iiim-properties の言語、日本語で「サンプル日本語エンジン」を選択すると sampleja が使えるようになります。後は自由に sampleja をいじれば新しい LE が作れます。
Posted at 08:22午後 12 13, 2006 by sayama in Input Method | 投稿されたコメント[0]
IIIMF R12 (1) - overview
Solaris 10U2から Solarisで使われている入力方式の IIIMFが R12 ベースになっているので、わかる範囲で簡単に説明しておきます。主な変更点は
- iiim サーバが各ユーザ毎に立ち上がるようになった。
- iiim-properties を使用した各ユーザ毎に構成のカスタマイズが可能になった。
というとこが大きなとこです。Solaris 10U1 までに使われていた IIIMF はシステムで1つ起動する形をとっていましたが、ユーザ毎になることで、何かしらの原因でハングしてしまったときなどに他のユーザに影響を与えなくなるなど安定性がましたなどがあります。また、後者は特に status window の表示位置などを変えられるようになり不評だった JDS 環境での IM status window 表示位置などをカスタマイズできるようになったなどが主なよい点です (IM status window は JDS 環境では gnome panel に表示できるようになりました)。
起動方法は CDE/gnome セッションから S505multi スクリプトが読込まれ
/usr/openwin/lib/locale/common/imsscript/S505multi
-> /usr/bin/iiimx (旧 htt, 各 daemon の起動、監視 daemon)
-> /usr/lib/iiim/iiimx-settings-init (各ユーザの構成情報を読込み初期化してそのまま終了)
-> /usr/lib/iiim/iiim-xbe (旧 htt_xbe, xim server, AUX の起動等のサービス)
-> /usr/bin/iiimd (旧 htt_server, iiim server)
のように各 daemon が起動します。
iiimf のクライアントライブラリは主に2種類あり、GTK アプリに使われる iiimgcf (/usr/lib/gtk-2.0/2.4.0/immodules/im-iiim.so), X アプリに使われる iiimxcf (/usr/openwin/lib/locale/common/xiiimp.so.2) があります。さらに xim サーバ経由でつながる /usr/openwin/lib/locale/common/ximp40.so.2 も使われます。X アプリでどれが使われるかは UTF-8 locale かそうでないかによって異なり
- GTK app -> GTK API -> -> im-iiim.so -> libiiim*.so -> [IIIM protocol] -> iiimd
- X app (UTF-8) -> X API -> xiiimp.so.2 -> -> libiiimc*.so -> [IIIM protocol] -> iiimd
- X app (non UTF-8) -> X API -> ximp40.so.2 -> [X protocol] -> iiim-xbe -> libiiim*.so -> [IIIM protocol] -> iiimd
という感じで、GTK app や UTF-8 loclae の X app は IIIM server に直接つながります。それで iiimd の下には各 LE(Language engine) がくっついていて言語固有の LE (日本語の場合は ATOK や Wnn8) が呼ばれます。iiimf のソースの中にはさらに iiimecf (emacs と), iiimjcf(java と), iiimgcf (QT と) の IIIMF 対応モジュールが入ってますが Solaris ではバンドルしていません。バンドルしてないからといって日本語入力ができないわけではなくこの場合は X API 経由で使えるようになります。
Posted at 09:12午後 12 11, 2006 by sayama in Input Method | 投稿されたコメント[0]