20
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Arch + KDE 6 (Wayland) で日本語入力環境を少しでもまともにする

Last updated at Posted at 2024-03-20

2024/04/12追記: 手順を変更しました

これまでの記事では、Fcitx5とIBusを導入することで無理やり日本語入力に対応させていましたが、いつの間にかFcitx5のみで動作するようになっていたため、記事を少し書き換えました。

2024/12/25追記: Chromiumの扱いが簡単になりました

Chromium系アプリケーションの調整について、手順を書き換えました。
起動パラメーターを直接指定する方法のうち、デスクトップエントリについて、パッケージのアップグレード時に破壊されないよう編集する方法へ書き換えました。
また、各アプリケーション固有の設定ファイルを使用する方法や、chrome://flagsを使用する方法について加筆しました。

はじめに

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-imfcitx5-mozcをインストールします。
fcitx5-imはFcitx5系のパッケージ4つが含まれています。

バニラMozc版
yay -S fcitx5-im fcitx5-mozc

変換精度を高めたい場合は、代わりにfcitx5-mozc-utをインストールして、UT辞書を使用してください1。(ただしバニラMozcよりもビルドに時間がかかります)

途中で表示されるMozcのフレーバー選択では、mozcではなくmozc-utを選んでください。

UT辞書Mozc版
yay -S fcitx5-im fcitx5-mozc-ut

IBus系パッケージが導入されている場合は削除しておくことをおすすめします。

環境変数の調整

次は/etc/environmentに環境変数XMODIFIERSの設定を追記し、アプリケーション側にfcitxを使うように指示します。

sudo vim /etc/environment
/etc/environment
# ... (略) ...
XMODIFIERS=@im=fcitx

XMODIFIERSにはfcitx5ではなくfcitxを指定します。
また、今回はGTK_IM_MODULEQT_IM_MODULE設定しないでください2

KDE設定の調整

再起動後、KDE システム設定を開きます。
左側のメニューからキーボード>仮想キーボードを開き、Fcitx 5を選択します。
(Fcitx 5 Wayland ランチャー…でも動作します)
image.png

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

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

もう一度再起動し、日本語入力が行えるようになっていれば成功です。

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
例: ~/.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
  # ...

アプリケーション側の設定ファイルを使用する

独自の設定ファイルからフラグを指定できる場合もあります。
visual-studio-code-binでは、~/.config/code-flags.confに指定した引数が自動的に使用されます。

~/.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 platformWaylandに、Wayland text-input-v3の値をEnabledに書き換えます。
image.png

おわりに

こちらの環境では、 Chromium、Discord (Electron)、Toolbox版のIntelliJ IDEA CE (Java)、Prism Launcher (Qt)、GNOME Calculator (GTK) などのアプリケーションで日本語入力が行えることを確認できました。

よりスマートな、あるいは新しい解決法をご存知の方はぜひコメント等で教えてください。

  1. https://wiki.archlinux.jp/index.php/Mozc#UT_.E8.BE.9E.E6.9B.B8

  2. https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma

  3. https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#Chromium_.2F_Electron

  4. https://github.com/IsmaelMartinez/teams-for-linux/blob/main/app/config/README.md#electron-cli-flags

20
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?