it-swarm.com.de

Wie deaktiviere ich das Pixel-Antialiasing für Schriftarten nur in Terminal?

Zum Programmieren möchte ich das Antialiasing von Schriftarten deaktivieren (d. H. Die Option Monochrom auswählen), da der Terminaltext bei kleineren Schriftgrößen viel schärfer aussieht. Aber dann sieht alles im Webbrowser schlechter aus.

Gibt es eine Möglichkeit, das Beste aus beiden Welten zu erzielen und nicht antialiasisierte Terminal-Schriften, sondern antialiasisierte Webbrowser-Schriften zu verwenden?

7
dan

Sie können das Antialiasing von Schriftarten in ~/.fonts.conf steuern. Dies auf individueller Programmbasis zu tun, erfordert jedoch einige Tricks.

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

Dadurch wird ein Schriftarten-Alias ​​mit dem Namen XTerm erstellt, der Envy Code R zugeordnet ist, das Antialiasing jedoch deaktiviert. Führen Sie fc-cache ~/.fonts aus, und Sie sollten dann in der Lage sein, diese Schriftart in Terminal auszuwählen.

Wenn Sie nichts dagegen haben (oder es sogar vorziehen), dass die im Terminal verwendete Schriftart in jedem Programm nicht antialias ist, ist dies ein bisschen einfacher:

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

das erfordert keine andere Schriftenhackerei und stellt sicher, dass Envy Code R immer antialias ist.

Sie können auch die Schriftgrößen einschränken, in denen Antialiasing ausgeführt werden kann:

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

um ein Antialiasing für Envy Code R zu verhindern, wenn es kleiner als 8 Punkte ist.

Dieser Artikel im Arch Wiki zeigt, wie man Schriften detaillierter bearbeitet. man fonts.conf ist ein Verweis auf die Konfigurationssprache, jedoch ohne viel an praktischen Beispielen.

9
geekosaur

Ich habe viel Zeit damit verbracht, mich mit Schriftart- und Systemkonfigurationen zu beschäftigen, um eine anständige, nicht geglättete Schriftart in Ubuntu Terminal zu erhalten. Eine Lösung bestand darin, eine dedizierte TrueType-Schriftart ohne Anti-Aliasing zu installieren, z. B. Terminus. Stellen Sie Ihre Terminal-Einstellungen so ein, dass die Terminus 8-Schriftart verwendet wird, oder verwenden Sie das Ubuntu Advanced Settings-Tool, um die globale Konsolenschriftart auf Terminus 8 einzustellen.

Sudo apt-get install xfonts-terminus console-terminus

Ich habe noch keine Lösung gefunden, mit der ich meine Lieblingsschrift (X11 6x13) in Terminal verwenden kann. In der Zwischenzeit habe ich pterm und PuTTY anstelle von Terminal verwendet. Der einzige Nachteil ist, dass pterm und PuTTY keine Tabs unterstützen.

4
Steve HHH