Qual é a fonte padrão usada no rxvt?

4

Instalei o urxvt e gosto da fonte padrão que está sendo usada (fonte branca na captura de tela anexada), mas não consigo descobrir o que é.

A fonte não está definida em Xresources ou Xdefaults.

Eu também li que ele usa uma das fontes na lista fc, mas não sei qual delas está sendo usada exatamente.

    
por JeanT 12.12.2013 / 01:07

2 respostas

4

Se nenhuma fonte for especificada em .Xdefaults , .xresources ou na linha de comando, a fonte padrão de byte% rxvt usa é 7x14 .

Do arquivo src/defaultfont.h na origem do rxvt:

82 #define NFONT_LIST \
83   "7x14", "6x10", "6x13", "8x13", "8x16", "10x20", "12x24"

Essas fontes são carregadas no conjunto de fontes rxvt padrão em suas respectivas posições quando nada foi especificado para essa posição. Observe que, se você usar uma codificação de múltiplos bytes, haverá um padrão diferente.

Em resposta ao comentário abaixo, não posso dizer com certeza se isso é 6x13 ou não, tudo o que posso apontar é essa lógica em 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   }

Se a localidade for C, o Rs_font[0] será 7x14 e Rs_font[2] será 6x13 . Quando e onde [0] vs [2] são usados para renderizar o texto, isso está além da minha motivação para pesquisar esse código desconhecido.

Se a codificação não for C / POSIX, as fontes 8859 carregadas pelo código acima são:

#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*/

E se as codificações de múltiplos bytes estiverem em uso, um conjunto de fontes específico de codificação totalmente diferente será usado para o padrão.

    
por 12.12.2013 / 07:03
3

Quando invoco no meu laptop Fedora 19, notei esta mensagem em um terminal:

rxvt: can't load font "-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1"

Determinando isto programaticamente?

Eu fiz esta pergunta há algum tempo, intitulado: Existe um comando como xwininfo, xdpyinfo, xprop ou xlsclient que me dirá qual fonte uma janela do cliente X está usando? .

O melhor que você poderá fazer é isto:

$ 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

Se houver um arquivo de fonte em uso, você verá esse arquivo aberto quando observar todos os arquivos em uso pelo processo rxvt .

    
por 12.12.2013 / 01:35

Tags