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に渡すためのプロトコル、であってるのかな?
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やAtok、Google日本語入力に相当するという理解でいるが・・・。
このへんはよく知らなくて、じゃあiBusはどこの何なの?もよく知らない。 おそらく、「xim+ Anthy」のようなセットの実装を指すのでは?と考えている。iBusはInput Method Protocol+にximを使っているらしい。変換エンジンによってibus-anthyだったりibus-mozcだったりする、のだろうか・・・?
mozcとは?
Google日本語入力はオープンソースとして公開されている。それがmozcである。Linuxの日本語入力標準としてよく載っているAnthyよりは変換がお馬鹿じゃないので好き。
if文の部分
XMODIFIERSが定義されていなければ再定義して、ibusデーモンを再起動するだけ。