据我记得,Emacs 必须.Xresources
在启动时加载该文件并从那里读取字体渲染设置。但我的只有在先运行xrdb merge
然后启动 emacs时才会这样做。我想我这里配置有问题。
当我的 emacs 作为 systemd 服务启动时,我刚刚添加ExecStartPre=xrdb -merge ~/.Xresources
到 emacs.service 中。它实际上解决了这个问题。但我仍然想知道为什么它不能正常工作?
另外,我的 .Xdefaults 是 .Xresources 的符号链接,我在 openSUSE 上使用 KDE。
答案1
它完全按照它应该的方式工作。~/.Xresources
通常在您登录时加载。许多发行版都将其作为 X 会话启动脚本的一部分。如果您不使用完整的 destkop 环境,您可能需要将其添加到您的登录脚本中,在您的情况下这将是 systemd,就像您所做的那样。来自的资源~/.Xresources
被加载到 X 服务器中并应用于该 X 服务器上显示的所有程序。
您可能会对 感到困惑.Xresources
,~/.Xdefaults
它由每个 X 客户端应用程序在启动时加载,然后应用于该应用程序。远程使用X时,~/.Xresources
文件位于X服务器端,而~/.Xdefaults
文件位于客户端。
请注意,Emacs 仅~/.Xdefaults
在服务器中未加载资源时才加载(更准确地说,如果XResourceManagerString
返回NULL
)。它还~/.Xdefaults-$HOSTNAME
无条件加载。我不知道为什么。