配新电脑的时候居然把这问题解决了,在这里留个档吧……
我当初的问题是 systemd --user
起的 Emacs daemon 无法在 emacsclient -c
里呼出 fcitx。但在 shell 里 emacs --daemon
起的就可以。
最后问题还是在 env 的配置上,但问题不在 LANG
,而在 fcitx 所需要的那些。
以下是一个我能用的 ~/.config/systemd/user/emacs.service
的例子:
[Unit]
Description=Emacs daemon service
[Service]
Type=forking
ExecStart=/usr/bin/emacs --daemon
ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
Environment=XMODIFIERS=@im=fcitx
Environment=GTK_IM_MODULE=fcitx
Restart=always
[Install]
WantedBy=default.target
如果有朋友遇到类似问题的,试着在 Emacs 里检查 (getenv "XMODIFIERS")
和 (getenv "GTK_IM_MODULE")
的值是否正确