🦁
WaylandとGNOME環境でfcitx5 + mozcがサードパーティアプリで機能しない問題を解決する方法
環境
- OS: Linux 6.2.13-arch1-1 x86_64 GNU/Linux
uname -a
- Desktop Environment: GNOME 43.5(Wayland)
- GNOME:
gnome-shell --version
- Windowing System: 以下のいずれかの方法から確認
- 環境変数を確認:
echo $XDG_SESSION_TYPE
- プロセスリストから確認:
ps aux | grep -i wayland
- 環境変数を確認:
- GNOME:
この問題は、WaylandとGNOMEを組み合わせて使用しているLinuxディストリビューションで発生する可能性がある。
1. 問題
Arch LinuxのGNOME環境において、fcitx5 + mozcを使った日本語入力が機能しない問題が起きていた。
2. 原因
-
以下の環境変数がサードパーティアプリを起動する際に反映されていなかった
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx"
-
WaylandはXorgとは異なるディスプレイサーバープロトコルを使用しているため、Xorgで使用される
.xprofile
や.xinitrc
等で宣言していた環境変数やアプリケーションの設定が反映されていなかった
3. 解決法
- 解決法の一つとして、GNOME環境でサポートされている
~/.config/environment.d
ディレクトリに環境変数を設定するファイルを作成した - これにより、GNOMEセッション起動時に環境変数が設定され、アプリケーションの設定が反映させた
4. 解決法の詳細
具体的な手順は以下の通り:
-
~/.config/environment.d/<your_profile>.conf
を作成 -
.xprofile
にあった環境変数設定やアプリケーション設定を、KEY=VALUE
形式で<your_profile>.conf
ファイルに記述
- 例えば、
~/.xprofile
に以下のような内容がある場合:export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx"
-
<your_profile>.conf
には以下のように記述:GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS="@im=fcitx"
これで、次回のGNOMEセッション開始時に、指定した環境変数が設定され、アプリケーションの設定が反映されるようになった。
5. ダメだったこと
-
.bashrc
,.bash_profile
に環境変数を指定- bashから起動したアプリケーションではfcitx5による入力ができるようになった
- それ以外の手段で起動したアプリケーションでは適用されなかった
-
~/.config/autostart/<your_profile>.desktop
ファイルを作成-
.desktop
ファイルのExec
に環境変数を宣言するbashコマンドを記述
-
- systemdユーザーサービスを登録
systemctl --user enable <your_profile>.service
-
<your_profile>.service
に環境変数を宣言するシェルスクリプトを絶対パスで指定
Discussion