web-dev-qa-db-fra.com

Comment désactiver l'anticrénelage des pixels de police uniquement dans Terminal?

Pour la programmation, j’aime désactiver l’anticrénelage des polices (c’est-à-dire sélectionner l’option Monochrome), car le texte du terminal est beaucoup plus net lorsque la taille des polices est réduite. Mais dans le navigateur Web, tout semble pire.

Existe-t-il un moyen d’avoir le meilleur des deux mondes et d’avoir des polices Terminal non antialiasées, mais des polices de navigateur Web antialiasées?

7
dan

Vous pouvez contrôler l'anticrénelage des polices dans ~/.fonts.conf. Cela sur une base individuelle de programme nécessite cependant quelques ruses.

<?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>

Cela crée un alias de police appelé XTerm qui mappe sur Envy Code R mais désactive l'antialiasing. Exécutez fc-cache ~/.fonts et vous devriez alors pouvoir sélectionner cette police dans Terminal.

Si cela ne vous dérange pas (ou même ne préférez pas) que la police utilisée dans le terminal soit toujours non antialiasée dans tous les programmes, c'est un peu plus simple:

<?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>

qui ne nécessite aucun autre hackery de polices et assure que Envy Code R est toujours anti-aliasé.

Vous pouvez également limiter les tailles de police où l'antialiasing peut être effectué:

<?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>

pour empêcher l'anticrénelage pour Envy Code R lorsqu'il est inférieur à 8 points.

Cet article sur Arch Wiki montre comment ajuster les polices plus en détail. man fonts.conf est une référence au langage de configuration, mais sans trop d'exemples pratiques.

9
geekosaur

J'ai passé beaucoup de temps à éponger les configurations de polices et de systèmes pour obtenir une police décente non anti-aliasée dans Ubuntu Terminal. Une solution consistait à installer une police TrueType dédiée, non anti-aliasée, telle que Terminus. Définissez les préférences de votre terminal pour utiliser la police Terminus 8 ou utilisez l'outil Paramètres avancés d'Ubuntu pour définir la police de la console globale sur Terminus 8.

Sudo apt-get install xfonts-terminus console-terminus

Je n'ai pas encore trouvé de solution qui me permette d'utiliser ma police préférée (X11 6x13) dans Terminal. Entre temps, j'utilisais pterm et PuTTY au lieu de Terminal. Le seul inconvénient est que pterm et PuTTY ne supportent pas les onglets.

4
Steve HHH