はじめに
Arch系のディストリビューションであるEndeavourOSにKDE6をインストールしたのですが、ほぼすべてのアプリケーションで日本語入力を行えるような環境の構築に苦戦したため、メモを残しておきます。
環境
2025/01/09 時点:
| key | value |
|---|---|
| OS | EndeavourOS |
| デスクトップ環境 | KDE Plasma 6.2.5 |
| グラフィック | Wayland + Xwayland |
| カーネル | 6.12.4-arch1-1-surface |
前提
Arch + KDE6 + Wayland (+ Xwayland) の環境を想定しているため、これ以外の環境では異なる手順となる可能性があります。
手順
パッケージの導入
まずはpacmanを用いて、fcitx5-imとfcitx5-mozcをインストールします。
fcitx5-imはFcitx5系のパッケージ4つが含まれています。
pacman -S fcitx5-im fcitx5-mozc
変換精度を高めたい場合は、AURからfcitx5-mozc-utをインストールして、UT辞書を使用してください1。(ただしバニラMozcよりもビルドに時間がかかります)
途中で表示されるMozcのフレーバー選択では、mozcではなくmozc-utを選んでください。
yay -S fcitx5-im fcitx5-mozc-ut
IBus系パッケージが導入されている場合は削除しておくことをおすすめします。
環境変数の調整
次は/etc/environmentに環境変数XMODIFIERSの設定を追記し、アプリケーション側にfcitxを使うように指示します。
sudo vim /etc/environment
# ... (略) ...
XMODIFIERS=@im=fcitx
XMODIFIERSにはfcitx5ではなくfcitxを指定します。
また、今回はGTK_IM_MODULEやQT_IM_MODULEを設定しないでください2。
KDE設定の調整
再起動後、KDE システム設定を開きます。
左側のメニューからキーボード>仮想キーボードを開き、Fcitx 5を選択します。
(Fcitx 5 Wayland ランチャー…でも動作します)

左側のメニューから入力メソッドを開き、入力メソッドを追加…からMozcをリストに追加します。

必要であれば、この画面にあるグローバルオプションを設定…からキーバインド等を変更してください。(私は入力メソッドのオン・オフに変換・無変換を割り当てています)

もう一度再起動し、日本語入力が行えるようになっていれば成功です。
Chromium/Electron周りの調整
Chromium/Electronを用いたアプリケーションをXwayland上で動作させると、変換中にタイプしたキーの一部がIMEを貫通してアプリケーション側にそのまま伝わるという奇妙なバグが発生します。
アプリケーションを強制的にWaylandで実行させることで、正しく入力できるようになります。
起動フラグに手を加える
多くのアプリケーションは、起動時に追加の引数 --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime 3 を付加するとWaylandネイティブで動作するようになります。
discord --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
普段から使用するアプリケーションの場合はデスクトップエントリごと編集しておきます。
デフォルトのファイル/usr/share/applications/*.desktopはパッケージのアップグレード時に上書きされるため、~/.local/share/applications/へコピーしてから編集を行います。
desktop-file-install --dir=$HOME/.local/share/applications /usr/share/applications/discord.desktop
vim ~/.local/share/applications/discord.desktop
[Desktop Entry]
Name=Discord
# ...
- Exec=/usr/bin/discord
+ Exec=/usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
# ...
変更を反映するには:
update-desktop-database ~/.local/share/applications
アプリケーション側の設定ファイルを使用する
独自の設定ファイルからフラグを指定できる場合もあります。
visual-studio-code-binでは、~/.config/code-flags.confに指定した引数が自動的に使用されます。
--enable-features=UseOzonePlatform
--ozone-platform=wayland
--enable-wayland-ime
IsmaelMartinez/teams-for-linuxでは、~/.config/teams-for-linux/settings.json4を編集します。
{
"app": {
"partitions": [
{
"name": "persist:teams-4-linux",
"zoomLevel": 0
}
]
- }
+ },
+ "electronCLIFlags": [
+ ["enable-features", "UseOzonePlatform"],
+ ["ozone-platform", "wayland"],
+ "enable-wayland-ime"
+ ]
}
chrome://flagsから変更する
こちらはブラウザに適した方法です。まずはchrome://flagsを開き、Preferred Ozone platformをWaylandに、Wayland text-input-v3の値をEnabledに書き換えます。

おわりに
こちらの環境では、 Chromium、Discord (Electron)、Toolbox版のIntelliJ IDEA CE (Java)、Prism Launcher (Qt)、GNOME Calculator (GTK) などのアプリケーションで日本語入力が行えることを確認できました。
よりスマートな、あるいは新しい解決法をご存知の方はぜひコメント等で教えてください。
-
https://wiki.archlinux.jp/index.php/Mozc#UT_.E8.BE.9E.E6.9B.B8 ↩
-
https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma ↩
-
https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#Chromium_.2F_Electron ↩
-
https://github.com/IsmaelMartinez/teams-for-linux/blob/main/app/config/README.md#electron-cli-flags ↩