如何确定 X 应用程序需要什么字体

如何确定 X 应用程序需要什么字体

我正在尝试通过 X 服务器运行应用程序并收到以下消息:

X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  45 (X_OpenFont)
  Serial number of failed request:  6
  Current serial number in output stream:  9

据我所读到的所有内容,这意味着我试图显示的计算机缺少字体。问题是,我不知道缺少什么字体。上述消息是唯一显示的消息。

我如何确定缺少哪种字体?

跟进:

我将 DISPLAY 变量更改为 localhost:...,并使用 wireshark 观察数据包的通过情况。看起来请求的字体名称是“*”。这个请求有问题吗?在我看来,这只会加载任何字体。我的字体配置有问题吗?

更多后续:

我已经在工作机器上确认它也在请求“*”字体。我知道这一点是因为我使用 gdb 捕获了对 XLoadFont 的调用,并且 name 参数显示为“*”。

在这种情况下应该发生什么?它应该按字面意思返回吗?任何字体?

答案1

根据加载字体文档,带有的查询'*'应该返回任何匹配的Font

ltrace将对库的调用转储到 中stderr。如果您比较ltrace正确执行和失败执行的输出,您应该猜出工作系统中使用了哪种字体。

也可以选择比较xlsfontsfc-list命令的输出。如有疑问,fc-cache -fv如果缓存已损坏,调用可能会有所帮助。

相关内容