2019-10-19 (Sa) [長年日記]
_ input method の現状
https://wiki.duckcorp.org/index.php/Using_Wayland
↑ここにまとまってるのは、Wayland の現状だけど、その中に input method の 現状も含まれてて、私がさっき探した結果となんとなく一致している。
wlroots は v2 で、ibus は v1 なんだよね。 そして fcitx5 もソースを見たら v1 だった。
wayfire は wlroots を使ってるけど、それだけではたぶんダメで、対応する必要がありそう。
ibus engine mozc-jp
で自前で切り替えた場合- 端末 (gtk アプリ) は、unix socket を使って直接 ibus とやりとりしてるのか?
- Emacs には toggle キーが届かないので mozc.el は無力。gtk に signal handler を登録してキーイベントを自前で処理してるので、gtk が ibus と直接やりとりすることもない。
- 何もしない場合
- wlroots/wayfire が v1 に対応していないので、activate できない。
- Emacs には toggle キーが届くので、mozc.el を使って直接 mozc で変換できる。
- GNOME の場合
- 何がどう動いてたのかわからん
こんな感じ? 推測も含まれてるけど。immodule があるので、直接やりとりくらいはするんじゃないかと。
v1 の場合は activate/deactivate しかなかったのか。他の機能は別の interface だったんだな。で、v2 はその他の機能もいろいろ含めてるんだな。
自分で何とかするなら、v2 に合わせたいけど、ちょっと手間が大きすぎるかなぁ。
ん? いや、v1 にするか v2 にするかは、display server と input method の間の 話であって、アプリケーションには関係がないはず。
コンポーネント | 現状 | v1 にする場合 | v2 にする場合 |
---|---|---|---|
ibus | v1 | そのまま | v2 に対応する |
wlroots | v2 | 無視 | 使う |
wayfire | なし | 作る | wlroots をベースにして作る |
wayfire 用に v1 対応させるのが一番楽そう? 何やんなきゃいけないのかは、全く不明だけど。
それやって Emacs がどうなるのかは判らない… まぁプラグイン作るならアプリケーションごとに除外くらいはできると 思うけど。
ちなみに、アプリケーション側は、GTK_IM_MODULE=wayland
ってのがあって、
ibus と直接喋るんじゃなくて wayland の protocol を通してやりとりする方法
に対応してるっぽい? という推測ができた。
これはこれで X アプリはどうするのか? gtk2 アプリはどうするのか?
といった懸念点もあるけど、
gtk2 アプリなんて古代の遺物はそう使うことはなさそうだしな。