[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:29909] Re: tkdesk-ja のテキストエディターに日本語入力できない ?



菊地です。

> ご面倒おかけしてるみたいですみません ^^;
いえいえ、コメントいただいてありがとうございます。m(_ _)m

示唆していただいたチェック項目を調べましたが、問題なしでした。

しかし、正常にする方法を発見しました!!
それは、環境変数のXMODIFIERSを
XMODIFIERS=@im=kinput2
に設定しないことです。

私は、基本的に、Language-Environmentによって作成させる
 ~/.xsessionをそのまま、使っています。
それに、少し、自分なりに変更を加えて使っています。
そのデフォルトの~/.xsessionの一部が下記です。

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
# ---- language-env DON'T MODIFY THIS LINE!
# 以下のシェル変数によって、動作が変わります。
# $TERMINAL_EMULATOR
WINDOW_MANAGER=sawfish
# $PASS_THROUGH
LANG=ja_JP.eucJP
OUTPUT_CHARSET=
export LANG OUTPUT_CHARSET
PATH=$HOME/bin:$PATH
=======================================================
# 日本語入力 (XIM) の設定
# XIM サーバーの名前を定義する
# (XIM, XIM2 は、language-env だけで使うシェル変数です)
XIM=kinput2
XIM2=-wnn
# XIM サーバーを起動する
if type $XIM &> /dev/null
then
  $XIM $XIM2 &
fi
XMODIFIERS=@im=$XIM
export XMODIFIERS

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

以上がそれです。
rootでも、tkdesk-jaを使うので、そのための、環境変数を
設定している時に偶然あることを発見しました。
rootでkrvntを立ち上げ、そのkrvnt上に手動キーボード入力で、

export LANG=ja_JP.eucJP
kinput2 -wnn &
tkdesk

とコマンドを打ち、tkdesk-jaを立ち上げました。
すると、tkdesk内のテキストエディターでの異常が正常に
なっていました。
そこで、問題を絞りこんでいったところ、

XMODIFIERS=@im=kinput2
という環境変数の元で、tkdesk-jaを起動すると、問題が発生し、

XMODIFIERS=""
export XMODIFIERS

上記のように、XMODIFIERSを空にして、tkdesk-jaを起動させると、
正常になることがわかりました。
調べてみると、まだpotatoのままになっているノートの
~/.xsession
をみると、XMODIFIERSは設定していませんでした。
そのpotatoでも、user-jaによって作成される./xsessionを
使っていました。

そこで、~/.xsessionから、XMODIFIERSの設定を消して、
logoutして
loginして
startx
で、テストしたところ、tkdesk-jaをwindow manager のメニューから
起動したところ、正常に、テキストエディター上で漢字の入力が
できました。

ところが、今度は、sylpheedからkinput2が呼べなくなりました。
それは、環境変数 XMODIFIERS が設定されていないからと、
わかりました。potatoでは、shlpheedは提供されていませんが、
woody用のソースから、自分でbuildして、potatoでも、
sylpheedを使っていました。その時は、上記のように、環境変数
XMODIFIERSを設定しない状態でも、sylpheed でも、問題なく
漢字変換できました。おそらく、woodyになって、使われるライブラリー
で、環境変数 XMODIFIERS を必要とするようになったのでしょう。
だがら、Language-Environment が~/.xsession の中で、
XMODIFIERS を設定するようになったのでしょう。

しかし、今度は、tcltk8.0-ja-8.0.4jp1.3 の中で、XMODIFIERS
に反応する部分があり、それが異常な応答をし、それが表に出て来た。
potatoの時は、それが表に出なかった。
しかし、woody では、他のソフトが XMODIFIERS を使うので、問題が
表に出た。

これが起こったことだと思います。
問題はtcltk8.0-ja-8.0.4jp1.3の中にあるはずですが、私にはそれを
どうにかできる知識がないので、
とりあえず、
cp /usr/bin/tkdesk /usr/bin/tkdesk2
として、
/usr/bin/tkdesk
を

#!/bin/sh
export XMODIFIERS=
tkdesk2

とすることで、~/.xsessionの中の
XMODIFIERS=@im=$XIM
export XMODIFIERS
を消すことをしないで、tkdesk-ja の問題を暫定的に回避しています。

この問題はtcltk8.0-ja-8.0.4jp1.3を使うすべてのソフトに発生する
可能性のあることということになるのかもしれません。
これまでのことからすると、そう推測できそうです。
tkdesk-jaくらいしか、日本語化したものはないから、問題ないのかもしれません
。
しかし、tcltk8.0-ja-8.0.4jp1.3を使ったちょっとしたプログラムを
自分で作った場合などで、日本語を扱う場合で、多数行入力をするような
部分で同じ問題が生じる可能性があるかもしれません。
一行入力の場合は問題ないのです。不思議です。

後、どうしたら良いのかわかりませんが、とりあえず、わかったことを
お知らせします。

以上です。