WSLでfcitx5をsystemdで起動する
wslWSLgでGUIアプリを起動するとき、imとしてfcitx5を起動するようにしています。
今まではログインシェルのprofileで起動していましたが、systemdで起動したくなったので unitファイルの例を示します。
まず、環境変数を設定しないといけません。 unitファイルでも環境変数を設定できますが、 自分の環境だとうまく動かなかったので、environment.dに配置します。
mkdir -p ~/.config/environment.d/
cat << _EOS_ > ~/.config/environment.d/im.conf
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
_EOS_
次にこのようなunitファイルを作ります。
WantsとAfterはもしかしたらいらないかもしれません
自分の環境はwaylandをdisableしているので --disable=wayland
をつけています
[Unit]
Description=fcitx5
Wants=default.target
After=default.target
[Service]
ExecStart=/usr/bin/fcitx5 --disable=wayland
Restart=on-failure
[Install]
WantedBy=default.target
あとはユーザー権限でインストールします。 root権限だと、HOME環境変数が設定されていないので起動に失敗します
systemctl --user enable fcitx.service
systemctl --user start fcitx.service