是否有 xwininfo、xdpyinfo、xprop 或 xlsclient 等命令可以告诉我 X 客户端窗口正在使用什么字体?

是否有 xwininfo、xdpyinfo、xprop 或 xlsclient 等命令可以告诉我 X 客户端窗口正在使用什么字体?

我正在尝试找到一个命令来报告给定 X 窗口配置使用的字体。存在这样的命令吗?

浏览这些工具,我没有看到一个选项可以给我这个:

  • 微信信息
  • xdpy信息
  • xprop
  • xls客户端

通过查看输出,lsof我看到似乎正在使用的字体文件,但是不清楚给定窗口实际上正在使用哪些字体文件(如果有)。

例子

$ lsof |grep gnome-ter|grep font | head -8
gnome-ter  3282      saml  mem       REG              253,0    223040    1180775 /usr/lib64/libfontconfig.so.1.4.4
gnome-ter  3282      saml  mem       REG              253,0   3656228    1588238 /usr/share/fonts/un-core/UnDotum.ttf
gnome-ter  3282      saml  mem       REG              253,0    585272     266781 /usr/share/fonts/gnu-free/FreeSans.ttf
gnome-ter  3282      saml  mem       REG              253,0    323284    1447753 /usr/share/fonts/dejavu/DejaVuSansMono.ttf
gnome-ter  3282      saml  mem       REG              253,0    190240    1588229 /usr/share/fonts/paktype-naqsh/PakType_Naqsh.ttf
gnome-ter  3282      saml  mem       REG              253,0    683528    1447770 /usr/share/fonts/dejavu/DejaVuSans.ttf
gnome-ter  3282      saml  mem       REG              253,2     42144   10488291 /home/saml/.fonts/ProggyCleanSZBP.ttf
gnome-ter  3282      saml  mem       REG              253,0     15504    1966923 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-le64.cache-3

需要明确的是,我对这个解决方案不感兴趣,标题为:如何查看系统使用的是什么字体?:

$ gconftool-2 --get /apps/gnome-terminal/global/profile_list
[Default,Profile0]

$ gconftool-2 --get /apps/gnome-terminal/profiles/Default/font
Monospace 12
$ gconftool-2 --get /apps/gnome-terminal/profiles/Profile0/font
TakaoMincho Bold 36

如果可能的话,我想通过 X 确定这些信息。

参考

答案1

大多数现代应用程序,包括所有 Gtk(→ GNOME)和 Qt(→ KDE)应用程序,都使用xft,它执行客户端渲染并将图像发送到服务器。 (可能通过X渲染扩展名,但它是发送用于渲染的图像,而不是文本)。因此,对于这些应用程序,X 服务器没有字体的概念。没有什么比检查应用程序是否已打开字体文件更好的了。

即使对于使用服务器端字体的老式应用程序,我认为 Xlib 中也没有办法查询另一个客户端正在使用哪些字体。

相关内容