はじめに
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やyay等を用いて、fcitx5-im
とfcitx5-mozc
をインストールします。
fcitx5-im
はFcitx5系のパッケージ4つが含まれています。
yay -S fcitx5-im fcitx5-mozc
変換精度を高めたい場合は、代わりに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/
へコピーしてから編集を行います。
cp -n /usr/share/applications/discord.desktop ~/.local/share/applications
vim !$/discord.desktop
[Desktop Entry]
Name=Discord
# ...
- Exec=/usr/bin/discord
+ Exec=/usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-wayland-ime
# ...
アプリケーション側の設定ファイルを使用する
独自の設定ファイルからフラグを指定できる場合もあります。
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.json
4を編集します。
{
"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 ↩