使用 xset +fp /usr/share/fonts/terminus 我可以随后使用以下命令启动 urxvt 并获得对我想要的字体(终端)的支持:
urxvt -fn -*-terminus-*-*-*-*-*-*-*-*-*-*-*-*
然而,这在 .Xresources 中是如何完成的呢?如何指定 .Xresources 中字体的缩放方式?
这是一个Gentoo 系统。
简单地尝试以下似乎不起作用:
URxvt*font: xft:terminus:pixelsize=26
据我了解 urxvt 使用两种字体系统,XLFD 和 Fontconfig。以下链接https://wiki.gentoo.org/wiki/Rxvt-unicode#Font试图解释其中的一些内容。然而,即使我逐字复制他们提供的示例,它似乎对 urxvt 实际使用的字体没有任何影响。
我相信它使用默认字体,这在我的系统上看起来很糟糕。
我试图寻找 urxvt 的调试和详细标志,但它的手册页没有列出任何标志。问题是,即使从另一个终端启动 urxvt,urxvt 也不会给出任何有关它尝试的字体以及尝试在何处查找字体的反馈。
我尝试过 fc-list 来列出可用的字体。但是,我不清楚这是否列出了可与 XLFD 或 Fontconfig 一起使用的字体。尽管如此,我随机尝试了一些,仍然没有任何反应。
答案1
正如评论中所述,如果您使用.Xresources
,您应该运行
xrdb -merge ~/.Xresources
更改文件后。或者,您可以进行编辑~/.Xdefaults
(但坚持使用的人xrdb
建议不要这样做)。
无论哪种方式,你的资源模式都适合我,就像这样
urxvt -fn 'xft:terminus:pixelsize=20'
(通配符对我不起作用)。使用strace
,我可以看到在查找“Term”或“term”时打开了哪些文件;您可能会发现它作为调试功能很有用:
execve("/usr/bin/urxvt", ["urxvt", "-fn", "xft:terminus:pixelsize=25"], [/* 61 vars */]) = 0
read(7, "#! perl\n\nuse POSIX ();\n\nmy $term"..., 8192) = 1223
access("/etc/fonts/conf.d/50-enable-terminus.conf", R_OK) = 0
stat("/etc/fonts/conf.d/50-enable-terminus.conf", {st_mode=S_IFREG|0644, st_size=254, ...}) = 0
open("/etc/fonts/conf.d/50-enable-terminus.conf", O_RDONLY) = 9
open("/users/tom/.icons/default/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/default/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/pixmaps/default/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/users/tom/.icons/oxy-black/cursors/xterm", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/oxy-black/cursors/xterm", O_RDONLY) = 7
open("/var/run/utmp", O_RDWR|O_CLOEXEC) = -1 EACCES (Permission denied)
read(7, "/usr/build/xterm/xterm-325f (101"..., 2048) = 34
chown("/dev/pts/3", 0, 0) = -1 EPERM (Operation not permitted)
包含字体信息的文件是
/etc/fonts/conf.d/50-enable-terminus.conf
其中(在我的系统上)包含以下内容:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<selectfont>
<acceptfont>
<pattern>
<patelt name="family"><string>terminus</string></patelt>
</pattern>
</acceptfont>
</selectfont>
</fontconfig>
urxvt
不看对于给定的字体。它设置对 fontconfig 的调用(通过 Keith Packard 编写的 Xft 库)。您可以阅读源代码urxvt
并了解它是如何做到这一点的:
Xft 与 fontconfig 的显着(错误)功能之一是它缺乏错误报告。如果找不到您需要的字体问因为,它将继续为您提供默认字体。使用strace
,您至少可以看到使用了正确的字体配置文件。