Swayでサクっと日本語入力の環境を整える w/ fcitx5
備忘録です。
環境
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に知らせてやる必要があります。
(前略)
input type:keyboard {
xkb_model "jp106"
xkb_layout "jp"
}
(後略)
fcitx5側の設定
fcitx5-configtoolでmozcを有効化して、Applyします。
アプリケーション側の設定
その後は、アプリケーションごとにfcitx5を使うように設定します。input methodがどのように動いているのか(描画要求の出し方など)はよく分かっていませんが、少なくとも
- Waylandコンポジタがアプリケーション(Waylandクライアント)にキーボードの入力を渡す
- アプリケーションがキーボードの入力を受け取る
- text-input-v3プロトコルで、アプリケーションがWaylandコンポジタを介して別のWaylandクライアント(input method)と通信を行う
ということは行われているようです。
3が行えるように、設定しましょう。
まずは、Swayが立ち上がったときに、fcitx5がWaylandクライアントとして起動するようにしましょう。ArchWikiのi3のページの、「自動起動」節を参照。
(前略)
exec fcitx5
(後略)
Swayにはinput method用の設定がないので、input moduleの指定は、「wayland」ではなく直接「fcitx」と書きます。
例えば、FirefoxはGTK3のアプリケーションですので、次のように設定します。
[Settings]
gtk-im-module=fcitx
これで、firefoxで日本語入力が使えるようになりました。
QTやXWaylandでの使い方は、fcitx5のwikiを参照してください。
おわりに
少し前はWaylandで日本語入力の設定をするのは面倒でしたが、今は大幅に改善されているようです。
Discussion