初めての記事なので至らぬところがあったら指摘してください.
ことの発端
Ubuntu 24.04 を普段使っているが,日本語入力に fcitx5 + mozc が良いよと聞いていたため,試してみた.
しかし,ログインしてみると日本語入力が自動起動しないため困っていたが,fcitx をスタートアップに入れて,無理やり立ち上げていた.しかし,それもなんだかスマートではないと感じたため,重い腰を上げて調査してみた.
インターネット上で同様のバグを調べる
調べてみると,以下のような記事があった
私は Gnome を使っているが現象は近いように思えた.
他にも,いくつか調べてみると以下のような記事があった.
なんとなく,zsh + Wayland が悪いのかなぁと検討をたてて,調査を進めることにした.
/etc/xdg/autostart/im-launch.desktop
自動起動しているのは上記のファイル.
そこを見ていたら,あることに気づいた.
Exec=sh -c 'IM_CONFIG_CHECK_ENV=1 im-launch true'
起動時のシェルスクリプトに渡す環境変数ってこれで合ってるのかなぁ...と疑問に思い,im-launch スクリプトを調べてみると,なんとなく違うような気がした.
そこで,以下のように変更して再ログインしてみた.
cp /etc/xdg/autostart/im-launch.desktop ~/.config/autostart/
emacs ~/.config/autostart/im-launch.desktop
diff /etc/xdg/autostart/imlaunch.desktop ~/.config/autostart/im-launch.desktop
3c3
< Exec=sh -c 'IM_CONFIG_CHECK_ENV=1 im-launch true'
---
> Exec=sh -c 'IM_CONFIG_PHASE=1 im-launch true'
すると,自動起動するようになった.
後日談
色々調査したり,人に相談してUbuntu または debian に報告しようとしたとき,以下のバグレポートを教えていただいた.
私の拙い英語力だと,「zsh + Wayland はサポート外」,「とりあえず直さないよ」と書かれているように思えた.それに,バグ報告,修正をするのは初めてなのでハードルが高く感じ,自分には手に負えないなぁと感じる今日この頃.
しかも,IM_CONFIG_CHECK_ENVやIM_CONFIG_PHASE が何をする変数なのか調査しきれていないため,とりあえず自分が満足したので良いか,と思い供養する.
追記
man im-configの中に,以下の記述があった.
If you wish to create a custom configuration beyond what im-config can do for you, please copy one of these initialization code files into ~/.xinputrc or /etc/X11/xinit/xin‐putrc and edit it to suite your need.
For example, 02_cjkv.rc tells how input method can be customized for each locale.
This script should be written to set environment variables if "\$IM_CONFIG_PHASE" = 1 and to start daemon programs if "\$IM_CONFIG_PHASE" = 2 .
これによると,環境変数を設定するときには1を,デーモンを起動するときには2を設定するように見受けられます.
しかしIM_CONFIG_CHECK_ENVについては特に記載がないため,よくわかりませんでした.
あとは,シェルスクリプトを追いかけて見たところ,気になる点が.私はsystemd経由でXMODIFIERS等の環境変数を設定しているのですが,それが設定される順番かなぁなど,色々気になる点が出てきました.とりあえず,色々と調査したので,ここでまとめておきます.
「今回のファイルが問題なら,bash + Wayland では問題にならないのだろう」と思い,ちょっと調査してみた.そしたら,/etc/profile.d/im-config_wayland.sh というファイルを読み込んでいるためだろうなぁ.ということがなんとなく分かった.つまり,zsh + Wayland がやっぱり本現象の原因なんだろうなぁと思っている.
この辺のGUIのログイン評価順ってどうなっているんだろうなぁと疑問に思いつつ,一旦筆を置くことにした.
もしも,手助けしていただける方がいらしたら,嬉しいと思います.