Como desativo o antialiasing de pixel de fonte apenas no Terminal?

7

Para programar, eu gosto de desligar o antialiasing de fontes (isto é, selecionar a opção Monocromático) porque faz com que o texto do terminal pareça muito mais nítido em tamanhos de fonte menores. Mas tudo no navegador da Web parece pior.

Existe uma maneira de ter o melhor dos dois mundos e ter fontes de terminal não antialiased, mas fontes de navegador da Web antialiased?

    
por dan 30.03.2011 / 21:42

2 respostas

8

Você pode controlar o antialiasing de fontes em ~/.fonts.conf . Fazer isso em uma base de programa individual requer alguns truques, no entanto.

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <dir>~/.fonts</dir>
  <alias>
    <family>XTerm</family>
    <prefer><family>Envy Code R</family></prefer>
    <default><family>monospace</family></default>
  </alias>
  <match target="pattern">
    <test name="family">
      <string>XTerm</string>
    </test>
    <edit mode="assign" name="family">
      <string>Envy Code R</string>
    </edit>
    <edit mode="assign" name="antialias">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

Isso cria um alias de fonte chamado XTerm , que mapeia para Envy Code R , mas desativa o antialiasing. Execute fc-cache ~/.fonts e você poderá selecionar essa fonte no Terminal.

Se você não se importar (ou mesmo preferir) com a fonte usada no Terminal sempre sem ser antialiased em qualquer programa, é um pouco mais simples:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <dir>~/.fonts</dir>
  <match target="pattern">
    <test name="family">
      <string>Envy Code R</string>
    </test>
    <edit mode="assign" name="antialias">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

que não requer nenhum tipo de hacker de fonte e garante que Envy Code R seja sempre antialiased.

Você também pode restringir os tamanhos de fonte nos quais o antialiasing pode ser executado:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <dir>~/.fonts</dir>
  <match target="pattern">
    <test name="family">
      <string>Envy Code R</string>
    </test>
    <test name="size" qual="any" compare="less">
      <double>8</double>
    </test>
    <edit mode="assign" name="antialias">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

para evitar o antialiasing para Envy Code R quando for menor que 8 pontos.

Este artigo no Wiki do Arch mostra como ajustar as fontes em mais detalhes. man fonts.conf é uma referência à linguagem de configuração, mas sem muito em termos de exemplos práticos.

    
por geekosaur 30.03.2011 / 22:19
1

Eu gastei muito tempo usando fontes e configurações de sistema para obter uma fonte decente sem serrilhado no Ubuntu Terminal. Uma solução foi instalar uma fonte TrueType sem suavização, como o Terminus. Defina suas preferências de Terminal para usar a fonte Terminus 8 ou use a ferramenta Configurações avançadas do Ubuntu para definir a fonte do console global como Terminus 8.

sudo apt-get install xfonts-terminus console-terminus

Ainda não encontrei uma solução que me permita usar minha fonte favorita (X11 6x13) no Terminal. Nesse meio tempo, tenho usado pterm e Putty em vez de Terminal. A única desvantagem é que pterm e Putty não suportam abas.

    
por Steve HHH 24.01.2013 / 20:21