Wayland の文字入力まわりのメモ
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
和訳記事
Chromium text-input-v3 対応に関する Issue
sway だと Chromium 系のアプリは XWayland で動かすのが得策
--ozone-platform=x11 --gtk-version=4
を追加する
- vscode
~/.config/code-flags.conf
に起動引数を書ける - discord
discord_arch_electron を使って~/.config/discord-flags.cof
に書く
GTK_IM_MODULE=fcitx
をセットして --ozone-platform=wayland --gtk-version=4
すると Wayland ネイティブで日本語入力ができる
この環境変数が勝手に消えたりするから動作が不安定.どうして……
いろいろした結果,fcitx5-gtk
を導入し GTK_IM_MODULE=fcitx
を設定した上で --ozone-platform=wayland --gtk-version=4
を与えて起動すると Wayland ネイティブで上手く動作すると判明.Wayland の Input Method ではなく fcitx5-gtk
を使うことがミソ.
ところが,vscode がこれでも動かなくなってしまったので泣く泣く XWayland で動かすように
開発中の Chromium では --enable-wayland-ime --wayland-text-input-version=3
で実験的な text-input-v3 対応が試せるらしい?(未確認)
2024年7月27日投稿の #85 あたりから
Chromium text-input-v3 対応に関する Issue のリンク(上のものと同様)