Windows用Xサーバ での日本語入力設定(Ubuntu18.04の場合)

ALL
スポンサーリンク

Windows用Xサーバでリモートの Linuxアプリを使用時に、日本語入力できるようにする設定方法です。
本記事ではリモートLinixは Ubuntu18.04 の場合の説明です。
CentOS6/7 については、次の記事を参照して下さい。

Windows用Xサーバ での日本語入力設定

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

コメント