Configurando fontes para xterm, urxvt, emacs e outros

4

Recentemente, comecei a usar xmonad como meu gerenciador de janelas. Eu também decidi usar urxvt como o terminal padrão, já que é supostamente leve.

A maioria dos aplicativos que fornecem uma opção de configuração de fonte permite escolher uma face de fonte (como Arial, Consolas, FreeMono, Dejavu Sans etc.) e definir o tamanho em pixels (11px, 12px ou qualquer outro). Isso é fácil de entender.

Agora, ao tentar configurar as fontes para aplicativos como xterm, urxvt e emacs, entre outros, tenho que criar uma string bastante estranha que se pareça com: "-*-Fixed-Bold-R-Normal-*-13-*-*-*-*-*-*-*" ou "-unknown-DejaVu Sans Mono-normal-normal-normal-*-14-*-*-*-m-0-iso10646-1"

Eu usei o programa xfontsel para gerar isso para mim, usando tentativa e erro. Mas eu realmente não entendo o que isso significa, ou porque é necessário.

Além disso, também usei coisas como esta: %código%.

Minhas perguntas:

  • Qual é a estranha cadeia longa para configurar fontes?
  • O que coisas como URxvt.font: 9x15bold significam? Como tudo isso acontece?
  • Por que não seguir a maneira convencional de definir fontes como a maioria das outras aplicações usa?
  • Por que as fontes xterm e urxvt não são tão boas quanto as fontes gnome-terminal? Existe alguma maneira de conseguir isso?
por Akshay 27.03.2011 / 13:51

1 resposta

10
  1. É uma X descrição da fonte lógica , usada principalmente pelos programas pure-Xlib.

  2. " 9x15bold " é um alias de conveniência para uma fonte de bitmap que acompanha o X.org. Isso não significa nada específico, há simplesmente uma tabela "fonts.alias" que traduz para um XLFD:

    ! $Xorg: fonts.alias,v 1.3 2000/08/21 16:42:31 coskrey Exp $
    fixed        -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
    variable     -*-helvetica-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
    5x7          -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1
    ...
    8x16         -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1
    9x15         -misc-fixed-medium-r-normal--15-140-75-75-c-90-iso8859-1
    9x15bold     -misc-fixed-bold-r-normal--15-140-75-75-c-90-iso8859-1
    10x20        -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso8859-1
    ...
    
  3. Xresources é a maneira convencional. Ou pelo menos costumava ser. Por exemplo, pode-se definir a fonte para um programa com URxvt.font , ou para tudo com *font , e isso afetaria todos os programas - inclusive os executados em um servidor remoto. (X11 é um protocolo de rede).

    A maioria dos programas recém-escritos usa sistemas como o dconf no GNOME, o que é bom, porque eles foram escritos especificamente para o GNOME. O Xterm, no entanto, é independente do ambiente de desktop, porque - o mais importante - foi criado muito antes do KDE e do GNOME e do Qt e do GTK; faz parte do pacote de software X11 principal. Assim, ele fica no Xresources porque é simples e padrão, sem dependências de bibliotecas ou serviços de terceiros. (Tem suas desvantagens, é claro, como a falta de reconfiguração em tempo real.)

  4. O Xterm é um programa Xlib puro e usa a renderização de fontes fornecida pelo X11, enquanto o Terminal GNOME, sendo escrito com o GTK, usa o Freetype (via Pango).

    No entanto, versões recentes do Xterm e URxvt incluem suporte para renderização básica de fonte Freetype via Xft (tem menos recursos que o Pango, por exemplo, não possui fallback de fonte, mas geralmente é "bom o suficiente"). Você pode usá-lo adicionando esses recursos:

    URxvt.font: xft:DejaVu Sans Mono:size=9
    
    XTerm*faceName: DejaVu Sans Mono
    XTerm*faceSize: 9
    

    O tamanho da fonte é em pontos (não em pixels).

por 27.03.2011 / 14:24