導入
WindowsからCentOSなどのLinuxサーバにSSHで接続してGUIソフトをX11Forwardingで起動した場合、そのままでは日本語が入力できません。ここでは特にCentOSなどRHEL系サーバでの設定方法を紹介します。但し、CentOS 6.7 + VcXsrv・MobaXtermでの動作確認になりますので、5.x/7.x系、RHEL系以外での動作確認はしていません。また、ここではサーバ側の日本語入力にiBusを使っていることが前提です。(6.x系ではデフォルトでibus-anthyっぽいので大丈夫だと思います)2つのXクライアントで動いたのでXmingでも大丈夫だと思います。
設定方法
tcshなどC Shell系のシェルをログインシェルとして使っている場合、.tcshrc
などに次の文を加えます。
setenv GTK_IM_MODULE xim
setenv QT_IM_MODULE xim
if ( $?XMODIFIERS ) then
else
setenv XMODIFIERS @im=ibus
ibus-daemon -drx
endif
BashなどBourne Shell系を使っている場合は次のように入力するといいと思います。但し、動作確認はしていません。
export GTK_IM_MODULE=xim
export QT_IM_MODULE=xim
if [ -z "$XMODIFIERS" ]; then
export XMODIFIERS=@im=ibus
ibus-daemon -drx
fi
追記: いつも接続するサーバでいつの間にかできなくなっていましたが、ibus-daemon -dx
の部分をibus-daemon -drx
に直すと再びできるようになりました。従って、上のシェリスクリプトを修正しました。
仕組み
正直に言ってあまり分かっていないです。1・2行目はxim
の代わりにscim
・uim
にしろっていうサイトもあるのでxim
でダメなら試行錯誤してください。3行目以降はLinux(iBusを使用しているもの)から接続した場合にiBusがダブらないようにするための設定です。iBus以外を使用している場合は1・2行目も含め適宜変更してください。
1・2行目ではそれぞれGTK_IM_MODULE
・Qt_IM_MODUle
という名前の環境変数にxim
という値をセットします。3行目以降ではXMODIFIERS
という環境変数に値がセットされていなければ値をセットし、ibus-daemon
を起動します。iBusを使用しているLinuxから接続する場合は既にセットされているようなので、省いています。
今までで入力できてたのにいつの間にかできなくなった時(追記)
シェルで
$ ibus-daemon -drx
と入力してみてください。
追記: Python2.7をソースビルドするとできなくなることがあります。(ibus-setup &
でエラーが出て設定画面が出てこない)
ログアウトしても端末が終了しない
原因不明です。
ちょこっと参考にしたもの
1.WindowsでXサーバを立てる - ふなWiki
他にも数サイト参考にしています。(うまく検索に引っかからないです)