Zenn
🍘

Swayでサクっと日本語入力の環境を整える w/ fcitx5

2025/03/05に公開

備忘録です。

環境

Arch Linux(カーネル:6.13.5.arch1-1)
Sway 1:1.10.1-2
xorg-xwayland 24.1.6-1
fcitx5 5.1.12-1
fcitx5-mozc 2.32.5712.102.g9dc8247-3
fcitx5-configtool 5.1.8-1
kwindowsystem 6.11.0-1

ここでは例として、GTK3.0で開発されたソフト(例えば、firefox、WezTermなど)に対して、日本語入力が使えるようにします。

Sway側の設定

まずは、デフォルトの設定をコピーしましょう。

$ cp -r /etc/sway ~/.config/

Swayがキーボードからの入力を受け取ってGTK、Qt、及びX11サーバーに伝える前に、まずキーボードが日本語配列であることをSwayに知らせてやる必要があります。

~/.config/sway/config
(前略)
input type:keyboard {
    xkb_model "jp106"
    xkb_layout "jp"
}
(後略)

fcitx5側の設定

fcitx5-configtoolでmozcを有効化して、Applyします。

アプリケーション側の設定

その後は、アプリケーションごとにfcitx5を使うように設定します。input methodがどのように動いているのか(描画要求の出し方など)はよく分かっていませんが、少なくとも

  1. Waylandコンポジタがアプリケーション(Waylandクライアント)にキーボードの入力を渡す
  2. アプリケーションがキーボードの入力を受け取る
  3. text-input-v3プロトコルで、アプリケーションがWaylandコンポジタを介して別のWaylandクライアント(input method)と通信を行う

ということは行われているようです。
3が行えるように、設定しましょう。
まずは、Swayが立ち上がったときに、fcitx5がWaylandクライアントとして起動するようにしましょう。ArchWikiのi3のページの、「自動起動」節を参照。

https://wiki.archlinux.jp/index.php/I3#.E8.87.AA.E5.8B.95.E8.B5.B7.E5.8B.95

~/.config/sway/config
(前略)
exec fcitx5
(後略)

Swayにはinput method用の設定がないので、input moduleの指定は、「wayland」ではなく直接「fcitx」と書きます。
例えば、FirefoxはGTK3のアプリケーションですので、次のように設定します。

[Settings]
gtk-im-module=fcitx

これで、firefoxで日本語入力が使えるようになりました。

https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland

QTやXWaylandでの使い方は、fcitx5のwikiを参照してください。

おわりに

少し前はWaylandで日本語入力の設定をするのは面倒でしたが、今は大幅に改善されているようです。

Discussion

ログインするとコメントできます