📑

KubuntuのVSCodeで日本語入力ができないことへの対応

2024/12/21に公開

日本語入力にはfcitx5を使用しています。
しかし、VSCodeで日本語入力を行うことができませんでした。
(半角/全角のようなIME切り替えキーを押してもローマ字しか入力できない)

以下、解決方法記載します。

原因調査

fcitx5-diagnoseコマンドで環境を診断することができます。
fcitx5-diagnoseは、Fcitx5(日本語入力システム)が正しく動作しているかを診断するためのツールです。このツールは、現在の環境変数や関連する設定をチェックしてくれます。

主な診断項目として以下があります。

  • 環境変数: XMODIFIERS、GTK_IM_MODULE、QT_IM_MODULEなど、日本語入力に関連する環境変数の設定状況を確認します。
  • モジュールのロード状況: Fcitx5が依存するモジュールが正しく読み込まれているかを確認します。
  • 入力メソッド設定: 入力メソッドが正しく設定されているか、競合や設定ミスがないかを診断します。

問題がある場合は出力結果が膨大に出てきますが、

**環境変数 XMODIFIERS は、@im=fcitx ではなく @im=ibus です。いずれかのinitファイルで誤ってエクスポートしていないか確認してください。**

**お使いのディストリビューションが用意しているツールで環境変数 XMODIFIERS に '@im=fcitx' を設定するか、直接`~/.xprofile` に `export XMODIFIERS=@im=fcitx` を書き加えてください。詳しくは [入力メソッド関連の環境変数:XMODIFIERS](http://fcitx-im.org/wiki/Input_method_related_environment_variables#XMODIFIERS) を参照してください**

のように問題と、解決方法が日本語で出力されるので対処方法はわかりやすいです。

原因

私の環境では、fcitx5-diagnoseの結果として以下が出力されました。
長いのでコアな部分だけ抜粋します。

  • XMODIFIERSについて
環境変数 XMODIFIERS は、@im=fcitx ではなく @im=ibus です。

XMODIFIERS が fcitx ではなく ibus に設定されていることが明示されています。

  • GTK_IM_MODULEについて
環境変数 GTK_IM_MODULE は、fcitx ではなく ibus です。

GTK_IM_MODULE も ibus に設定されているため、GTK ベースのアプリケーションで日本語入力が正しく動作しない可能性があります。

  • QT_IM_MODULEについて
環境変数 QT_IM_MODULE は、fcitx ではなく ibus です。

QT_IM_MODULE も ibus に設定されていることが明記されており、Qt ベースのアプリケーションで問題が発生する可能性があります。

対処方法

先に記載の問題に対処するために~/.xprofileで環境変数を以下のように編集しました。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export CLUTTER_IM_MODULE=fcitx
export ECORE_IMF_MODULE=fcitx

その後、ログインしなおすか以下コマンドでfcitxを再起動することで解決しました。
fcitx5 -r

Discussion