Windows用Xサーバでリモートの Linuxアプリを使用時に、日本語入力できるようにする設定方法です。
本記事ではリモートLinixは Ubuntu18.04 の場合の説明です。
CentOS6/7 については、次の記事を参照して下さい。
Xサーバについては、次の記事を参照して下さい。
WindowsでリモートのLinuxのGUIアプリを表示させる-Xサーバ VcXsrv
Fcitx インストール
Fcitx を使用します。
インストールします。
sudo apt install fcitx fcitx-mozc
画面右上のメニューから下の画像の個所をクリックして設定画面を出し、[地域と言語] で [インストールされている言語の管理] を押します。
「言語サポート」ダイアログが出るので、”キーボード入力に使うIMシステム” で fcitx を選びます。
ここで、Ubuntu を再起動します。
日本語入力の設定
SSHで接続後、ターミナルで次を実行します。
export GTK_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export QT_IM_MODULE=fcitx xset -r 49 fcitx-autostart
xset -r 49 は、半角/全角キーを押した際に、IMEツールバーで「A」「あ」の表示が高速に点滅することがあるので、回避のために実行します。
半角/全角キーの入力がリピートされることが原因なので、この設定で半角/全角キー(キーコード:49)のオートリピートを無効にします。
この後、Xウィンドウアプリを起動し、半角/全角キーを押すと日本語入力の ON/OFF が切り替わります。
接続の度に自動的に設定する
先述の設定をSSH接続の度に、自動的に設定されるようにします。
.bashrc の最後に次を追加します。
先述の設定で fcitx-autostart を実行していた個所は、処理を変えています。
.bashrc
if [ -n "$SSH_CONNECTION" ] ; then export GTK_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export QT_IM_MODULE=fcitx xset -r 49 fcitx-remote > /dev/null 2>&1 if [ $? = "1" ]; then fcitx $XDG_SESSION_ID> /dev/null 2>&1 fi fi
.bash_logout に下記を追加します。
この設定は、ターミナルソフト PuTTY 使用時に、exit してもウィンドウが終了しない場合がある件の対処です。
.bash_logout
if [ -n "$SSH_CONNECTION" ] ; then while [ 1 ] do exec="" for pid in $( ps auxw | grep $USER | grep " fcitx $XDG_SESSION_ID$" | grep -v grep|awk '{print $2}' ); do kill $pid 2> /dev/null exec="1" done if [ -z "$exec" ] ; then exit; fi done fi
以上、Windows用Xサーバでの日本語入力の設定方法でした。
参考
【Ubuntu】【fcitx】fcitx で日本語入力する【SW】 – 4f938672-cb1c-4c5a-8233-192c4ec901df
コメント