fcitxが壊れたので設定を見直す

壊れた原因

普段はMac bookでzoomを使っていたのだけれど、ちょっとした用事でメインのデスクトップにもzoomを入れることになり、

yay -S zoom

でインストール(officialじゃなくてaurだよ)。

しかしこのzoom、理由は不明だが依存パッケージにibusがあり、おそらくこいつが原因でfcitxが正常に動かなくなってしまった。多分何かしらのコンフリクトが発生している。状態としては、起動するけれど変換してくれない、というもの。

明らかにzoomインストール後の不具合だったので、何とか依存パッケージごと削除してもとに戻そうとするも、どこかのファイルに変更が加えられてしまったのか、うまくいかない。

これまで

fcitxの起動はこれまで、.xinitrc

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

と記述した上で、i3のスタート時起動 exec --no-startup-id fcitx を行っていた。
のだが、どうやら一連のexportは通常.xprofileに記述するほうが正しいみたい。

.xprofileへの記述で、fcitx自体は無事動くようになった(なぜかは不明)。

追加の問題

ただ、こうすると、fcitxが起動している状態でターミナルを立ち上げたとき、日本語のインプットが必ず先に入ってしまう(これまではなぜかターミナルではデフォルト英数だった)。自作ランチャーにも日本語が入るようになり、すごくわずらわしい。いちいち切り替えて入力するのも嫌だし…。

対策

exportの記述をすべて.xprofileに移した上で、思いきってスタート時のfcitx起動を削除した。 代わりに、i3の設定で

#IME
bindsym $mod+i exec fcitx
bindsym $mod+k exec "killall fcitx"

として、ショートカットでfcitxの起動/停止を行うようにした。IME自体をデフォルトで無効にして、どうしても必要なときに日本語入力を立ち上げる。こうなると「日本語入力ができる」ほうがむしろ特殊な状態になるので、「今日本語入力だっけ…?」的なわずらわしさがちょっと減り、わりと頭の中はスッキリする。
だいたい起動時に問答無用でfcitxを起動している人が多い印象ですが、むしろ使わないときはkillallしてしまったほうが快適ですね。

最後に

zoom(ibus)許すまじ。

(本当は、日本語入力するデバイスと英語/コードを書くデバイスを思いきって分けてしまったほうが楽かもしれない)