我已经安装了 urxvt 并且我喜欢使用的默认字体(附加屏幕截图中的白色字体),但我不知道它是什么。
Xresources 或 Xdefaults 中未定义字体。
我还读到它使用了 fc-list 中的一种字体,但我不知道确切使用的是哪一种。
如果没有指定的字体.Xdefaults
,.xresources
或在命令行上,默认单字节字体rxvt
用途是7x14
。
从src/defaultfont.h
rxvt 源中的文件:
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]
则 is7x14
和Rs_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)
如果使用多字节编码,则默认使用完全不同的编码特定字体集。
当我在 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
进程正在使用的所有文件时,您将看到该文件已打开。