为什么“rxvt -font x”会给我一个错误,但比普通的“rxvt”字体“更好”?

为什么“rxvt -font x”会给我一个错误,但比普通的“rxvt”字体“更好”?

当我运行rxvt&(Rxvt v2.7.10 - 发布:2003 年 3 月 26 日)[这看起来很旧,但这是 Fedora Core 24 附带的版本]时,我得到一个 rxvt 窗口,其中的字体我觉得很难看。

然而,当我这样做时rxvt -font x,我收到错误消息rxvt: can't load font "x",但随后出现一个 rxvt 窗口,其中字体稍小,我非常喜欢。

这是什么邪恶的魔法,我怎样才能做同样的事情而不出错?

我的一些 .x* 文件中确实提到了 rxvt,但没有提到字体:

  • 在 .Xdefaults 中,我有:
 
rxvt*背景:灰色
rxvt*前景:黑色
rxvt*保存行数:100
rxvt*几何形状:80x53
  • 在 .Xresources 中,我有:
 
rxvt*背景:灰色
rxvt*前景:黑色
rxvt*保存行数:60
  • 在 .fvwm2rc 中,我有:
 
样式“rxvt”图标 term.xpm,SloppyFocus,IconBox -70 1 -1 -140
样式“rxvt”MWMBorder、MWMButtons

这是我最怀疑的文件,但我没有看到任何提到字体的内容。

注意:在过去的 20 年里,这个问题一直困扰着我。

答案1

rxvt 使用"fixed"如果-font选项失败。它在 main.c 中执行此操作:

xfont = XLoadQueryFont(r->Xdisplay, r->h->rs[Rs_font + idx]);
if (!xfont) {
    rxvt_print_error(msg, r->h->rs[Rs_font + idx]);
    r->h->rs[Rs_font + idx] = "fixed";
    xfont = XLoadQueryFont(r->Xdisplay, "fixed");
    if (!xfont) {
        rxvt_print_error(msg, "fixed");
        goto Abort;
    }
}
r->TermWin.font = xfont;

区别在于默认字体不是"fixed"(特定字体的别名),但类似

-misc-fixed-medium-r-semicondensed--12-110-75-75-c-60-iso8859-1

与实际情况不同"fixed"

-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1

(我曾经xfd -fn fixed得到后者,但你可以在 中看到这一点/usr/share/X11/fonts/misc/fonts.alias)。

相关内容