如何在Linux系统上获得可用于.Xresources配置的有效字体名称?

rom*_*man 18 linux shell terminal fonts xserver

我很感兴趣如何在.Xresources文件中获得有效的字体名称.我已安装ttf-ms-fonts并希望将终端切换为快递字体.但是这样设置它不起作用

urxvt*font:     cour
urxvt*boldFont: courbd
Run Code Online (Sandbox Code Playgroud)

如何指定有效名称?

Ant*_*nko 18

首先,您必须决定是否要使用核心协议或Xft进行字体渲染.正如您在另一个答案中看到的,xfontsel是获取核心协议的正确字体名称的正确工具.但它不太可能是你想要的truetype字体(你想要抗锯齿吗?那么Xft是你的选择).

如果urxvt是使用Xft支持构建的(请检查urxvt --help 2>&1 | grep options以确定),您可能希望为其指定前缀为的字体名称xft:

URxvt.font: xft:Courier New
Run Code Online (Sandbox Code Playgroud)

影响字体匹配和呈现的其他选项可以在xft字体名称中指定:

URxvt.font: xft:Courier New:pixelsize=18:antialias=false
Run Code Online (Sandbox Code Playgroud)

(搜索man rxvt对于xft:进一步的细节)

可以使用查询所有可用的字体名称fc-list.例如,fc-list|grep courbd.ttf显示字体名称为Courier New,样式为Bold(附加:style=Bold以选择它).

使用fc-match "Courier New"检查哪个字体是从支持Xft的观点给定名称的最佳匹配.

其他应用程序可能有自己的X11和Xft字体名称约定.例如xft:,emacs使用相同的前缀; xterm使用faceNamerenderFont资源来确定是否使用Xft以及请求哪种字体; xedit仅支持核心协议.应用程序可从X资源配置这一事实并不足以说明如何解释字体名称.


Mat*_*ias 5

我想你可以使用这个程序

xfontsel
Run Code Online (Sandbox Code Playgroud)

获取字体的完整名称。字体名称如下所示:

-*-courier-bold-*-*-*-*-*-*-*-*-*-*-*
Run Code Online (Sandbox Code Playgroud)

最好的祝福,马蒂亚斯

  • XFN 只能用于指定位图字体,不能用于 TTF。 (2认同)