[Anthy-dev 3072] Solaris10上のktermでuim-xim

Back to archive index

KIHARA Hideto deton****@m1*****
2006年 7月 18日 (火) 21:49:31 JST


Solaris10上のktermでuim-ximを使う方法です。
# ようやく使えるようになったので、参考までに。

* XI18N_OBJSファイルを編集して、XimpよりもXIMが優先されるようにする
/usr/openwin/lib/locale/ja/XI18N_OBJSを編集して、ximcpを含む行が、
XIMで始まる一連の行の先頭に来る(ximp40を含む行より先に来る)ように編集。
--- XI18N_OBJS.orig	Tue Jul 18 12:37:43 2006
+++ XI18N_OBJS	Tue Jul 18 12:37:27 2006
@@ -3,7 +3,7 @@
 #	XI18N objects table for ja locale
 #
 XLC	ja/xlibi18n_ja	_XlcGenericLoader	# XLC_open
+XIM	common/ximcp	_XimOpenIM _XimRegisterIMInstantiateCallback  _XimUnRegisterIMInstantiateCallback # XIM_open	XIM_regiser XIM_unregister
 XIM	common/ximp40	_Ximp_OpenIM		# XIM_open
 XIM	common/ximlocal	_XimpLocalOpenIM	# XIM_open
-XIM	common/ximcp	_XimOpenIM _XimRegisterIMInstantiateCallback  _XimUnRegisterIMInstantiateCallback # XIM_open	XIM_regiser XIM_unregister
 XOM	common/xomLTRTTB	_XomGenericOpenOM # XOM_open

デフォルトではXimp4.0が使われるらしく、
uim-ximを--traceや--trace-ximオプションをつけて起動しても、
XMODIFIERS=@im=uim registered, selecting tutcode (ja) as default conversion engine
というメッセージ以降、ktermを起動してIMのトグル操作をしても
何も表示されません。

* uim-ximでcommit時にXIM_COMMITが飛ばない問題を修整する
BTSにパッチを登録しておきました。
https://bugs.freedesktop.org/show_bug.cgi?id=7558

XIM_ENCODING_NEGOTIATIONで"EUC"が渡されるため、iconv_open()に失敗し、
uStringToCtext()が常にNULLを返すのが原因。

XimIM::set_encoding()に"EUC"が渡された場合、
mLangRegionと組み合わせて"eucJP"を使うように修整。

* 環境
Solaris10 (x86)
Xサーバは/usr/X11/bin/Xorg (/usr/openwin/bin/Xsunでの動作は未確認)。
デスクトップ環境は素のX (Java Desktop System(GNOME)でもCDEでも無くて)。
httやatok,wnnは起動しないように設定済。
LANG=ja (ja_JP.PCKやja_JP.UTF-8では未確認)
kterm: version 6.2.0.ext02
GNU libiconv-1.9.2

* 参考
** ximp40 XIMCP XIM Solarisあたりでぐぐって見つけたページ
http://www.kde.gr.jp/ml/Qt-devel/msg00985.html
| Solaris では IIIMF を使っていない場合は、
| 今でもこの XIMP の優先度が、X11R6 の XIM protocol より優先度が
| 高い(つまり通常、X11R6 XIM protocol は使われない)ようになって
| います。

http://mail.nl.linux.org/linux-utf8/2001-06/msg00112.html
http://webcvs.freedesktop.org/xorg/xc/lib/X11/XlcDL.c?view=markup
http://docs.sun.com/app/docs/doc/806-2798/6jc07tbsc?l=ja&a=view

* おまけ: Java Desktop SystemやCDEではなく素のXを使う設定
以下の2ファイルを作成すれば良かったはず。
/etc/dt/config/ja/Xresources.d/Xresources.vanilla
----
Dtlogin*altDtsIncrement: True
Dtlogin*altDtName: X
Dtlogin*altDtKey: /usr/openwin/bin/twm
Dtlogin*altDtStart: /etc/dt/config/Xsession.vanilla
----

/etc/dt/config/Xsession.vanillaはXsession.jdsを参考にして以下。
----
#!/bin/ksh
export SESSIONTYPE="altDt"
export SDT_ALT_SESSION="$HOME/.xsession"
export SDT_ALT_HELLO="/bin/true"
export SDT_NO_APPGATHER="1"
export SDT_NO_TOOLTALK="1"
export SDT_NO_DTDBCACHE="1"
export SDT_NO_DSDM="1"
export START_SPECKEYSD="no"
exec /usr/dt/bin/Xsession
----

~/.dtprofile
----
DTSOURCEPROFILE=true
unset DTSTARTIMS
export SESSIONTYPE="altDt"
export SDT_ALT_SESSION="$HOME/.xsession"
export SDT_ALT_HELLO="/bin/true"
export SDT_NO_APPGATHER="1"
export SDT_NO_TOOLTALK="1"
export SDT_NO_DTDBCACHE="1"
export SDT_NO_DSDM="1"
export START_SPECKEYSD="no"
----
-- 
木原 英人 / KIHARA, Hideto / deton****@m1*****
http://www1.interq.or.jp/~deton/




Anthy-dev メーリングリストの案内
Back to archive index