Como ajustar a renderização TTF no xterm?

3

Eu tenho tentado nos últimos dois dias fazer com que o xterm exiba a mesma fonte que eu me acostumei no konsole nos últimos anos - funciona muito bem para mim mesmo com tamanho de face relativamente pequeno. O xterm parece renderizar a fonte de uma forma muito mais difícil para mim.

Aqui estão algumas capturas de tela para comparação.

xterm:

konsole:

A fonte em questão é DejaVu Sans Mono 8. Ambas são antialiased, obviamente. Eu até apliquei o esquema de cores de konsole a xterm, pensando que poderia ser o motivo da diferença, mas não foi. Além disso, no konsole eu tenho a caixa de seleção “Desenhar cores intensas em negrito” ativada, mas a diferença é clara na fonte negrito e regular.

A diferença parece estar em quão agressivamente cada aplicativo antialisa a fonte. No xterm, o texto é muito mais embaçado e também consideravelmente mais difícil de ler, pelo menos para mim. É provavelmente mais óbvio com o caractere m , que na versão não em negrito tem a primeira “perna” espalhada por dois pixels no xterm, enquanto no konsole, é agradável e nítido.

Estou obtendo os mesmos resultados tanto no Gentoo quanto no Ubuntu, e com a configuração conservadora em /etc/fonts/conf.d no meu laptop Gentoo, assim como a configuração de tudo no Ubuntu.

Pontos de bônus se você pode descobrir porque diabos o xterm falha em exibir alguns dos caracteres não-latinos, embora eu não me importe com isso. Isso simplesmente não faz nenhum sentido para mim. Pode ser uma pista, embora ...

Aqui está a parte relevante do meu .Xresources :

XTerm*faceName: DejaVu Sans Mono
XTerm*faceSize: 8
XTerm*background: #000000
XTerm*foreground: #B2B2B2
XTerm*color0:  #000000
XTerm*color1:  #B21818
XTerm*color2:  #18B218
XTerm*color3:  #B26818
XTerm*color4:  #1818B2
XTerm*color5:  #B218B2
XTerm*color6:  #18B2B2
XTerm*color7:  #B2B2B2
XTerm*color8:  #686868
XTerm*color9:  #FF5454
XTerm*color10: #54FF54
XTerm*color11: #FFFF54
XTerm*color12: #5454FF
XTerm*color13: #FF54FF
XTerm*color14: #54FFFF
XTerm*color15: #FFFFFF
XTerm*boldColors: true

Atualização: Para esclarecer, fazer com que o xterm use o TTF é trivial; o que estou procurando é uma maneira de ajustar a maneira como o TTF é renderizado no xterm para corresponder às configurações usadas pelo konsole (e praticamente qualquer outro aplicativo X11, para esse assunto). Por alguma razão, o xterm parece ignorar tudo além do nome da cara e do tamanho da face da fonte TTF que eu tento definir, seja em Xresources, ou em minhas configurações de fontconfig (que são corretamente selecionadas pelo resto do sistema).

    
por koniiiik 20.01.2015 / 23:02

3 respostas

1

No xterm (1), você pode alterar o tipo de fonte mantendo pressionada a tecla CTRL e clicando com o botão direito do mouse na janela. Eu digo, porque você não tem muitas escolhas. Clicar na opção "TrueType" fornecerá resultados mais próximos do que você está procurando. Você pode ganhar mais controle editando o arquivo Xresources como eu tenho certeza que você sabe - Veja: link para exemplos de como para modificar isso para atender às suas necessidades.

xterm (1) não exibe a maioria dos caracteres não latinos por padrão. você pode usar a opção -u8 ou usar o wrapper uxterm (1)

Tente este comando, você pode ajustar o tamanho para atender a sua necessidade ou deixá-lo para fora e CTRL-rightclick para alterar o tamanho da fonte

xterm -u8-fn 7x13 -fa "DejaVu Sans Mono: tamanho = 8: antialias = verdadeiro"

    
por 21.01.2015 / 00:39
0

Isso se deve aos aplicativos GTK e ao xterm usando maneiras extremamente diferentes de configurar fontes. O GTK usa font-config, enquanto o xterm / Xft usa recursos do X.

Para configurar fontes Xft usando recursos X, adicione isso ao seu ~/.Xresources :

  Xft.rgba: rgb

Esta configuração modifica o tipo de antialiasing. Aqui estão alguns exemplos de capturas de tela xterm tiradas com xmag , sem nenhuma configuração rgba, e rgb , grb , vrgb . Todos eles têm diferente nitidez, fidelidade de cores e brilho aparente.

Também existem botões para Xft.antialias , Xft.hinting , Xft.hintstyle , Xft.lcdfilter e outros. Para obter detalhes, consulte a documentação do fontconfig .

    
por 03.02.2015 / 22:48
0

A diferença no processamento que você está vendo entre o Konsole e o xterm se resume nas configurações de dicas do fontconfig. Você pode dizer que as dicas estão envolvidas se você comparar as formas dos glifos entre as duas capturas de tela; o zero tem um formato ligeiramente diferente no Konsole, porque foi encaixado na grade de pixels (o que está entre as coisas que a fonte faz).

O Konsole provavelmente seleciona configurações de algumas camadas adicionais da configuração do KDE, enquanto o xterm apenas honra as configurações de fontes de nível baixo.

Eu tenho trabalhado nisso recentemente no meu sistema Arch, e a combinação de configurações que melhor reproduzem o que você está vendo no Konsole é (coloque isso no seu .Xresources ):

Xft.antialias: 1
Xft.autohint: 1
Xft.hintstyle: hintslight

Algumas fontes incluem informações de dicas dos designers da fonte. Alguns não. O auto-hintador de freetype ( Xft.autohint: 1 ) irá gerar dicas para a fonte, e o nível de sugestão hintslight retornará para as dicas incluídas, se presentes. Provavelmente também vale a pena tentar hintfull ; se reduz à sua preferência, mais a qualidade das dicas presentes na fonte que você está usando.

(Você não está usando o antialiasing de subpixel nessas capturas de tela, e outro comentador já explicou como começar a usá-lo, se quiser.)

Aqui estão minhas capturas de tela antes e depois em cada nível de dicas. (7pt Anonymous Pro em um display de 192dpi.)

Padrões:

Configuraçãoacima:

    
por 27.10.2018 / 18:56