ちぎっては投げるブログ

Programming, Android, RaspberryPi, Digital Devices, Kinkuma Hamster...

X11ForwarfingしたGUI画面で日本語入力する方法

f:id:mczh:20160226214300p:plain

CentOS6で確認。

~/.bashrcに以下を追記する。

export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
if [ -z "$XMODIFIERS" ]; then
    export XMODIFIERS=@im=ibus
    ibus-daemon -drx
fi

追記後は、

source ~/.bashrc

で適用する。

これで、たとえばeclipseなどで日本語入力が出来るのを確認した。ちなみに、emacsの画像を載せてみたが、emacsでは日本語入力の切り替えが全角半角キーではなく、ctrl+\だったりする。うっかり全角半角キーを押すと、<zenkaku-hankaku> is undefinedと言われるよ。(さらに言うと、この画像はCentOSではなくて、ちょうど記事を書いているときにsshでログインしていたRapberryPi)

ximとは?

ximは、X Input Method Protocolの略。 X ウィンドウシステムのリリース 5 から 用意された国際化テキスト入力のためのプロトコルとのこと。ユーザからの入力をIMに渡すためのプロトコル、であってるのかな?

XIM による日本語入力

GTK_IM_MODULEとQT_IM_MODULE

GTKは、クロスプラットフォームGUIキット。
QtもGUIツールキットの一種。QT_IM_MODULEも指定するのが一般的なのだとすると、意外とQt製のアプリって多いのかもしれない。

これらのGUI環境で、キー入力とInput Methodをやりとりするプロトコルをximにしますよ、と環境変数で定義する。

そのほかのInput Method

LinuxのInputMethodには、xim以外にもいろいろ種類があって、scim(Smart Common Input Method)やらuim(Universal Input Method)やらいろいろあるようで、自分の環境にあわせた選択が必要だが、それを調べる方法はまだよくわかってない。見つけたら追記する。Anthyやmozcは、いわゆるWindowsで言うところのMicrosoftIMEやAtokGoogle日本語入力に相当するという理解でいるが・・・。

このへんはよく知らなくて、じゃあiBusはどこの何なの?もよく知らない。 おそらく、「xim+ Anthy」のようなセットの実装を指すのでは?と考えている。iBusはInput Method Protocol+にximを使っているらしい。変換エンジンによってibus-anthyだったりibus-mozcだったりする、のだろうか・・・?

mozcとは?

Google日本語入力オープンソースとして公開されている。それがmozcである。Linuxの日本語入力標準としてよく載っているAnthyよりは変換がお馬鹿じゃないので好き。

if文の部分

XMODIFIERSが定義されていなければ再定義して、ibusデーモンを再起動するだけ。

XMODIFIERSとは?

環境変数なんだけど、よくわからない。ibusが使う環境変数っぽい。