rxvt 中使用的默认字体是什么?

Jea*_*anT 5 rxvt urxvt

我已经安装了 urxvt 并且我喜欢使用的默认字体(附加屏幕截图中的白色字体),但我不知道它是什么。

Xresources 或 Xdefaults 中未定义字体。在此处输入图片说明

我还读到它使用了 fc-list 中的一种字体,但我不知道确切使用的是哪一种。

cas*_*sey 5

如果没有指定的字体.Xdefaults.xresources或在命令行上,默认单字节字体rxvt用途是7x14

src/defaultfont.hrxvt 源中的文件:

82 #define NFONT_LIST \
83   "7x14", "6x10", "6x13", "8x13", "8x16", "10x20", "12x24"
Run Code Online (Sandbox Code Playgroud)

当没有为该位置指定任何内容时,这些字体将加载到在其各自位置设置的默认 rxvt 字体中。请注意,如果您使用多字节编码,则有不同的默认值。

针对下面的评论,我不能确定这是否是 6x13,我只能指出这个逻辑 defaultfont.c

300  if (encoding >= ENC_ISO8859_1 && encoding <= ENC_ISO8859_LAST) {
301    /* fallback for ISO-8859-* encodings */
302    k = encoding - ENC_ISO8859_1 + 1;
303    MIN_IT(k, 99999);
304  } else
305    /* fallback for "C", "POSIX", and invalid locales */
306    k = 0;
 :
308   for (j = 0; j < MAX_NFONTS; j++) {
309     if (rs[Rs_font + j] == NULL) {
310       if (k == 0)
311       rs[Rs_font + j] = def_fontName[j];
312     else {
313       /* couple of wasted bytes each but lots of future expansion */
314       rs[Rs_font + j] = rxvt_malloc(STRLEN(defaultfont_8859[j]) + 4);
315       sprintf((char *)rs[Rs_font + j], defaultfont_8859[j], k);
316     }
317   }
Run Code Online (Sandbox Code Playgroud)

如果语言环境是 C,Rs_font[0]则 is7x14Rs_font[2]is 6x13。何时何地使用[0]vs[2]来呈现文本超出了我搜索这个陌生代码的动机。

如果编码不是C/POSIX,上面代码加载的8859字体为:

#define NFONT_LIST_ISO8859X \
"-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-%d",       /*xf*/ \
"-misc-fixed-medium-r-normal--10-100-75-75-c-60-iso8859-%d",       /*xf*/ \
"-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-%d",/*xf*/ \
"-misc-fixed-medium-r-normal--13-120-75-75-c-80-iso8859-%d",       /*xf*/ \
"-misc-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-%d",     /*xf*/ \
"-misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-%d",      /*xf*/ \
"-misc-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-%d"     /*xf*/
Run Code Online (Sandbox Code Playgroud)

如果使用多字节编码,则默认使用完全不同的编码特定字体集。


slm*_*slm 3

当我在 Fedora 19 笔记本电脑上调用它时,我在终端中注意到了这条消息:

rxvt: can't load font "-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1"
Run Code Online (Sandbox Code Playgroud)

以编程方式确定这一点?

我前段时间问过这个问题,标题为:是否有一个命令(例如 xwininfo、xdpyinfo、xprop 或 xlsclient)可以告诉我 X 客户端窗口正在使用什么字体?

你能做的最好的事情就是:

$ lsof -p $(pgrep rxvt)
COMMAND   PID USER   FD   TYPE             DEVICE  SIZE/OFF    NODE NAME
rxvt    17594 saml  cwd    DIR              253,2     12288 6553601 /home/saml
rxvt    17594 saml  rtd    DIR              253,1      4096       2 /
rxvt    17594 saml  txt    REG              253,1    167360  545755 /usr/bin/rxvt
rxvt    17594 saml  mem    REG              253,1    162472  549496 /usr/lib64/ld-2.17.so
rxvt    17594 saml  mem    REG              253,1   2108632  549497 /usr/lib64/libc-2.17.so
rxvt    17594 saml  mem    REG              253,1     22440  549506 /usr/lib64/libdl-2.17.so
rxvt    17594 saml  mem    REG              253,1     17856  549504 /usr/lib64/libXau.so.6.0.0
rxvt    17594 saml  mem    REG              253,1    125432  549505 /usr/lib64/libxcb.so.1.1.0
rxvt    17594 saml  mem    REG              253,1   1300352  549507 /usr/lib64/libX11.so.6.3.0
rxvt    17594 saml  mem    REG              253,1     43072  549528 /usr/lib64/libXrender.so.1.3.0
rxvt    17594 saml  mem    REG              253,1     26112  549530 /usr/lib64/libXfixes.so.3.1.0
rxvt    17594 saml  mem    REG              253,1     47568  549552 /usr/lib64/libXcursor.so.1.0.2
rxvt    17594 saml  mem    REG              253,1     76688  529186 /usr/lib64/libXpm.so.4.11.0
rxvt    17594 saml  mem    REG              253,1     62368  524974 /usr/lib64/libnss_files-2.17.so
rxvt    17594 saml  mem    REG              253,1 106055264  814955 /usr/lib/locale/locale-archive
rxvt    17594 saml    0r   CHR                1,3       0t0    1028 /dev/null
rxvt    17594 saml    1u   CHR              136,5       0t0       8 /dev/pts/5
rxvt    17594 saml    2u   CHR              136,5       0t0       8 /dev/pts/5
rxvt    17594 saml    3u  unix 0xffff8800acc4ce00       0t0 4920851 socket
rxvt    17594 saml    4u   CHR                5,2       0t0    1298 /dev/ptmx
Run Code Online (Sandbox Code Playgroud)

如果正在使用某个字体文件,当您查看该rxvt进程正在使用的所有文件时,您将看到该文件已打开。