Open5

Wayland の文字入力まわりのメモ

yangniao23yangniao23

text-input

Wayland における入力メソッドからのテキストを受け付けるプロトコル

v1, v3 が主に使われており,Chromium 系のブラウザや Electron アプリケーションは現状 v1 にしか対応していない.しかし,GNOME や Sway のコンポジタである Mutter や wlroots は v3 にしか対応していない.そのため,それらのアプリケーションでは通常 text-input 経由の日本語入力が不可能である.

Chromium の text-input-v3 対応は4年前から提案されているが,イマイチ進んでいない……

最終投稿がこれ

At this time there are 2 other experimental text input options in ozone/wayland platform:

GTK4 IME enabled using --gtk-version=4. It works better on gnome+ibus. If you're using fcitx5 you will probably need the kimpanel extension, which is only available in gnome. The problems with this are tracked in issue 40801194.
text-input-v1 protocol implementation which can be enabled using --enable-wayland-ime. However this is an older unsupported protocol currently only available on KDE.
Once this (text-input-v3) is implemented it should at least facilitate text input on more platforms, although there will still be some limitations some of which will be addressed in an upcoming text-input v3.2 protocol. Ultimately the goal is to improve the IME support via the newest text input protocol (i.e. 3.2+) and deprecate the other options.

For additional details see https://docs.google.com/document/d/1GkOphcAQBMdW4iPiMOd9eKd70tlXWQaR7M3GJXGUDpQ.

三行で:

  • Ozone/Wayland のテキスト入力用に2つの実験的なオプションがあるよ!
  • --gtk-verion=4 を指定すると GTK4 IME を有効にできて,GNOME+Ibus の組み合わせでよく動く
  • --enable-wayland-ime で text-input-v1 の実装を有効にできるけど,KDEでしか動かんよ

text-input-v3 自体にもいくつか課題があるようで,それが解消されたら実装できるかな?みたいなことを言っている?

参考文献

Wayland and input method
https://dorotac.eu/posts/input_method/

和訳記事
https://qiita.com/cmplstofB/items/f738720cdf33c835ed16

Chromium text-input-v3 対応に関する Issue
https://issues.chromium.org/issues/40113488

yangniao23yangniao23

sway だと Chromium 系のアプリは XWayland で動かすのが得策
--ozone-platform=x11 --gtk-version=4
を追加する

  • vscode
    ~/.config/code-flags.conf に起動引数を書ける
  • discord
    discord_arch_electron を使って ~/.config/discord-flags.cof に書く
yangniao23yangniao23

GTK_IM_MODULE=fcitx をセットして --ozone-platform=wayland --gtk-version=4 すると Wayland ネイティブで日本語入力ができる

この環境変数が勝手に消えたりするから動作が不安定.どうして……

yangniao23yangniao23

いろいろした結果,fcitx5-gtk を導入し GTK_IM_MODULE=fcitxを設定した上で --ozone-platform=wayland --gtk-version=4 を与えて起動すると Wayland ネイティブで上手く動作すると判明.Wayland の Input Method ではなく fcitx5-gtk を使うことがミソ.

ところが,vscode がこれでも動かなくなってしまったので泣く泣く XWayland で動かすように

yangniao23yangniao23

開発中の Chromium では --enable-wayland-ime --wayland-text-input-version=3 で実験的な text-input-v3 対応が試せるらしい?(未確認)
2024年7月27日投稿の #85 あたりから

Chromium text-input-v3 対応に関する Issue のリンク(上のものと同様)
https://issues.chromium.org/issues/40113488