Wie deaktiviere ich das Antialiasing von Schriftpixeln nur im Terminal?

7

Zum Programmieren deaktiviere ich gerne das Antialiasing von Schriftarten (dh wählen Sie die Option Monochrom), 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 haben und nicht antialiasierte Terminal-Schriftarten, aber antialiasierte Webbrowser-Schriftarten zu haben?

Dan
quelle

Antworten:

9

Sie können das Antialiasing von Schriftarten in steuern ~/.fonts.conf. 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 Schriftartenalias XTermerstellt, der Envy Code RAntialiasing zugeordnet , aber deaktiviert wird. Führen Sie aus fc-cache ~/.fonts, und Sie sollten dann in der Lage sein, diese Schriftart im Terminal auszuwählen.

Wenn es Ihnen nichts ausmacht (oder Sie es sogar bevorzugen), dass die im Terminal verwendete Schriftart in keinem Programm immer ein Antialiasing ist, ist dies etwas 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 Font-Hackerei und versichert, dass Envy Code Rimmer Antialiasing 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 Antialiasing zu verhindern, Envy Code Rwenn es kleiner als 8 Punkte ist.

Dieser Artikel im Arch Wiki zeigt, wie Sie Schriftarten detaillierter optimieren. man fonts.confist ein Verweis auf die Konfigurationssprache, jedoch ohne viel an praktischen Beispielen.

Geekosaurier
quelle
1
Gute Antwort. fonts.conf kann sehr leistungsfähig sein, aber die seltsame XML-basierte Syntax macht die Verwendung sehr schwierig.
Adam Byrtek
@ Adam: Stimmt. Es wäre schön, wenn es ein Dienstprogramm zur Schriftkonfiguration gäbe, mit dem Sie dies gut erstellen können.
Geekosaurier
Ich habe eine ~ / .fonts.conf erstellt, die das zweite Snippet enthält, um das Antialiasing für alle Verwendungszwecke einer Schriftart zu deaktivieren (Dina, eine von mir heruntergeladene Bitmap-Schriftart). Ich sehe es immer noch als Anti-Aliasing ab einer bestimmten Größe. Muss ich neu starten oder so? Ich habe versucht, 'fc-cache ~ / .fonts' auszuführen, was schnell und leise war.
Jonathan Hartley
5

Ich habe viel Zeit damit verbracht, mich mit Schriftarten und Systemkonfigurationen zu beschäftigen, um eine anständige, nicht gegen Alias ​​gerichtete Schrift in Ubuntu Terminal zu erhalten. Eine Lösung bestand darin, eine dedizierte TrueType-Schriftart ohne Alias ​​zu installieren, z. B. Terminus. Stellen Sie Ihre Terminaleinstellungen so ein, dass die Terminus 8-Schriftart verwendet wird, oder verwenden Sie das Ubuntu-Tool für erweiterte Einstellungen, um die globale Konsolenschriftart auf Terminus 8 festzulegen.

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.

Steve HHH
quelle
1
Dies ist meiner Meinung nach eine viel einfachere und bessere Lösung!
9a3eedi