Wie behebe ich das Anti-Aliasing von Schriftarten in IntelliJ IDEA, wenn ich eine hohe DPI verwende?

Antworten:

112

Ich arbeite auf einem hochauflösenden Display mit einer perfekten Schriftwiedergabe. Um dies zu erreichen, müssen Sie:

  • (Unter Linux) Installieren und verwenden Sie Oracle JDK (ich verwende 1.7) und nicht OpenJDK (auch das mit fontfix gepatchte war für mich nutzlos). Sehen Sie, wie das geht .

  • Bearbeiten Sie die Konfigurationsdatei .vmoptions , die Sie im Installationsordner Bin finden (z. B. studio.vmoptions und für 64-Bit- studio64.vmoptions oder WebStorm.exe.vmoptions usw. entsprechend der von Ihnen installierten IDE-Version), indem Sie die folgenden Zeilen hinzufügen:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Entfernen Sie Hinweisinformationen aus der Schriftart, die Sie verwenden möchten, und wählen Sie die neue Schriftart in den Einstellungen von IntelliJ IDEA aus (Einstellung -> Editor -> Schriftart).
    Wenn Sie nicht wissen, wie das geht, installieren Sie FontForge wie folgt :

    1. Öffnen Sie Ihre Schriftart in FontForge
    2. Alle Glyphen über auswählen Ctrl+Aund alle Hinweise löschen (Hinweise -> Hinweise löschen)
    3. Wählen Sie erneut Glyphen aus und verwenden Sie Hinweise -> Anweisung löschen
    4. Speichern Sie die Schriftart unter einem anderen Namen (Datei -> Schriftarten generieren)
    5. Installieren Sie die neue Schriftart und wählen Sie sie in IDEA aus

Wenn Sie die obigen Tipps befolgt haben und beim schnellen Scrollen des Codes Verzögerungen auftreten (dies kann unter Linux-Distributionen mit einem nicht optimierten GPU-Treiber vorkommen), entfernen Sie die Zeile
-Dsun.java2d.xrender=true
aus der .vmoptions- Datei.

Zum Schluss hier ein Screenshot des Ergebnisses:

IDE-Screenshot


(Die hier verwendeten Schriften sind LucidaMAC für die Haupt-IDE und Ubuntu Mono mit entfernten Hinweisinformationen für den Code-Editor.)

Guari
quelle
4
Genial! Funktioniert auch unter Windows :)) Danke: *
Bloke
1
Ich habe das oben auf meinem Windows-Rechner mit hi dpi (3200x1800) ausprobiert. Ich habe die studio.vmoptions wie erwähnt angepasst und trotzdem ist alles noch verschwommen. Bitte teilen Sie mir nach Möglichkeit mit, ob ich das wirklich zum Laufen bringen möchte.
Schritt
10
@Pace Um unscharfe Schriftarten zu entfernen, müssen Sie die Anzeigeskalierung für diese Anwendung deaktivieren (klicken Sie mit der rechten Maustaste auf das entsprechende Symbol, wählen Sie Properties, gehen Sie zur CompatibilityRegisterkarte und überprüfen Sie Disable DPI scaling on high DPI settings, ob x64-Apps in Win8 vorhanden sind). Bearbeiten Sie das Flag des zugehörigen Registrierungsschlüssels: Öffnen Sie Regedit. Gehen Sie zu HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersund fügen Sie einen Zeichenfolgenwert REG_SZ hinzu, dessen Name der vollständige Pfad zur ausführbaren Datei der Anwendung ist und dessen Wert HIGHDPIAWARE ist. );)
guari
3
Es gibt Fehler, wenn ich versuche, sie danach zu speichern ... Was mache ich falsch
Mario Zderic
2
Beeindruckend. Noch ein Jahr später hilfreich. JetBrains muss dies als Standard festlegen oder zumindest eine automatische Erkennung durchführen. Die Unschärfe ohne diese Einstellungen lässt IntelliJ schrecklich und unbrauchbar aussehen.
Andrew T Finnell
4

Ich habe ein kleines Handbuch geschrieben, um dieses Problem zu beheben.

   wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
   tar -zxvf jdk-8u5-tuxjdk-b08.tar.gz
   sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
   rm jdk-8u5-tuxjdk-b08.tar.gz

Skript zum Starten von Intellij Idea

* Beachten Sie nur, dass Sie den IDEA_HOME-Standort für Ihren Ideenpfad ändern müssen

#!/bin/sh

IDEA_HOME=/opt/idea
export JAVA_HOME=/usr/lib/jvm/jdk-8u5-tuxjdk-b08/
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd \
                      -Dsun.java2d.xrender=true"
export GNOME_DESKTOP_SESSION_ID=this-is-deprecated
exec $IDEA_HOME/bin/idea.sh "$@"

Weitere Informationen und Screenshots zu besseren Schriftarten: http://urshulyak.com/?p=478

Yaroslav Urshulyak
quelle
Hinzufügen -Dsun.java2d.xrender=truezu bin/webstorm64.vmoptionsin WebStorm das Verzeichnis war für mich genug.
Alicia
1
Der Download-Link ist defekt. Bitte fix
jackode
Diese Antwort geht von einer 64-Bit-Architektur aus, was möglicherweise nicht der Fall ist
Anwar
Hierbei wird im Wesentlichen beliebiger Code ausgeführt.
Thorbjørn Ravn Andersen
2

Ein ähnliches Bild habe ich erhalten, als ich die Menlo-Schriftart heruntergeladen und das Editor-Anti-Aliasing unter Aussehen & Verhalten> Aussehen auf "Graustufen" eingestellt habe

Das ist das Ergebnis:

So sieht es aus

Hier ist ein Vergleich zwischen den beiden Plattformen

Bildbeschreibung hier eingeben

Ich verwende eine höhere Auflösung und bessere Hardware bei der Arbeit mit dem MAC. Deshalb sehen die Schriftarten etwas heller aus. Das Ergebnis hängt von Ihrem Computer ab. Auf jeden Fall ist es einen Versuch wert, die Änderungen sind leicht rückgängig zu machen

FRR
quelle
Arbeitete teilweise für mich! Schriftarten sind nicht so scharf wie die generische Mac-Benutzeroberfläche, aber so scharf, dass sie bearbeitet werden können. Ich bin auf 13 "Mac Pro, OS X 10.11.4
Mayank Jain
warum machst du das unter OSX? solltest du die richtigen Schriften aus dem Karton bekommen :)
FRR
2

Nichts von diesem hässlichen Zeug wird mehr benötigt. Laden Sie die neueste Version von IntelliJ (ab 2016.1) für Linux herunter. Es enthält eine modifizierte JRE, bei der das Schriftartenproblem behoben ist. Um auch Android Studio zu reparieren, erstellen Sie einen symbolischen Link zum IntelliJ jre:

ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre

Öffnen Sie alternativ einfach Ihren Dateimanager als root (vorausgesetzt, Ihre IDEs sind im Verzeichnis / opt oder in einem anderen Systemordner installiert), erstellen Sie eine Verknüpfung zu IntelliJs jre, verschieben Sie sie in den Installationsordner von Android Studio und benennen Sie sie in 'jre' um. Dies funktioniert mit dem neuesten Android Studio 2.0, sollte aber auch mit früheren Versionen funktionieren.

Aspiring Dev
quelle
Welche Version meinst du? Wenn ich zu Help> About gehe, sehe ich Intellij IDEA 15.0.2undBuild #IU-143.1184
Bloke
@Bloke gehen Sie einfach auf die Website und laden Sie die neueste Version von IntelliJ herunter. Ich denke, es ist gerade 2016.1.1. Sie haben die Art und Weise geändert, in der sie die neuen Versionen jetzt bewerben, und das Format YEAR.REVISION.UPDATE # wurde jetzt geändert.
Aspiring Dev
Oh ja. Ich habe es gerade ausprobiert. Meine Source Code ProSchrift sieht jetzt etwas zu fett aus, aber das ist ein kleines Problem. Vielen Dank!
Bloke
Die Verwendung der mit IntelliJ gepackten JRE machte für mich den entscheidenden Unterschied. Ich hatte IntelliJ zunächst ohne JRE heruntergeladen und mein lokales Oracle-JDK (1.7) verwendet, was zu fehlerhaften Schriftarten führte. HTH.
sengs
2

Bei neueren JetBrains ist die IDE-Lösung anders.

In IDE Installationsordner nur umbenennen jre Ordner auf etwas anderes. Zum Beispiel:

  1. $ cd your-path-to/WebStorm-162.2228.20/
  2. $ mv jre/ _jre/

In neueren Versionen wird gebündeltes JRE anstelle von System 1 verwendet, und diese gebündelte Version führt zu Problemen beim Rendern von Schriftarten .

Funktioniert gut hier: WebStorm 2016.3.2 unter Kubuntu 16.04 Linux.

WebStorm-Screenshot mit fester Schriftart

ogram
quelle
Dies ist am unteren Rand begraben, aber das ist der wahre Schuldige. Alle oben sind auf die Editor-Schriften fokussiert, aber ich hatte bereits gute Editor-Schriften. Mein Problem waren die verschiedenen Beschriftungen, QuickInfos und modalen Dialoge, die alle eine fürchterliche Darstellung der Schrift ohne Antialiasing zeigten. Ich habe alles oben ausprobiert und nichts davon hat das Problem gelöst, aber das Verstecken der Packete hat den Trick getan.
Dan
1

Wenn Sie mit FontForge keine Hinweise löschen können, wie guari in seiner Antwort erklärt hat . Verwenden Sie Cousine (Apache License v2.00) als Editor-Schriftart und stellen Sie die Größe auf 14 ein. Ich habe einige andere monospaced-Schriftarten ausprobiert. Allerdings Cousine scheint ein schöneres Rendering als die meisten anderen Schriftarten zu haben. Siehe den Screenshot am Ende

  1. Laden Sie die Schriftart herunter: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Erstellen Sie ein neues Schriftfamilienverzeichnis: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Extrahieren Sie die Schriftdateien: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Stellen Sie sie für IntelliJ zur Verfügung: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Aktualisieren Sie den Schriftart-Cache: sudo fc-cache -f -v
  6. Starten Sie IntelliJ neu und wählen Sie Cousin als Editor-Schriftart
  7. Vergiss nicht, die vmoptions so einzustellen, wie es Guari erklärt hat

Bildschirmfoto:

user1185087
quelle
Ihr Screenshot scheint kein Anti-Aliasing zu verwenden.
Ztyx
Ersetzen Sie den Screenshot durch einen kleineren, um eine Verkleinerung zu vermeiden. Jetzt können Sie sehen, dass Anti-Aliasing verwendet wird
user1185087
1

In Windows 10 hatte ich ähnliche Probleme. Durch das Überprüfen der Disable display scaling on high DPI settingsSchriftarten wurden die Schriftarten glatter, aber viel größer. So geht's (aus einem vorherigen Kommentar eines anderen Benutzers):

Klicken Sie mit der rechten Maustaste auf das Symbol, wählen Sie Properties, gehen Sie zur CompatibilityRegisterkarte und überprüfen SieDisable DPI scaling on high DPI settings

Wenn Sie in Windows Settingsnach suchen Display Settings, wird ein Dialogfeld mit einem Schieberegler angezeigt Change the size of text, apps, and other items. Ich habe es von 125% auf 100% verschoben und musste mich abmelden und wieder anmelden. Die Schriftarten sind jetzt klein UND flüssig:

Bildbeschreibung hier eingeben

Noch mehr, wenn ich das Häkchen entferne Disable display scaling on high DPI settings, scheint es immer noch glatt zu sein.

User1
quelle
Dies war die einzige Lösung, die für mich funktioniert hat! Vielen Dank!
DrKaoliN
0

Die akzeptierte Antwort hat bei mir nicht funktioniert, aber ich habe damit alles zum Laufen gebracht:

Nachdem ich verschiedene Tutorials gelesen und einige Fehler behoben habe, habe ich einen Weg gefunden, der perfekt funktioniert.

Laden Sie zuerst JDK 8 von Oracle herunter und führen Sie die folgenden Zeilen im Terminal aus:

cd Downloads
tar -xvf jdk-8u25-linux-x64.tar.gz
rm jdk-8u25-linux-x64.tar.gz
sudo mkdir -p /usr/lib/jvm/
sudo mv jdk1.8.0_25 /usr/lib/jvm/

Laden Sie jetzt den JDK-Fontfix herunter (mit freundlicher Genehmigung von [Urshulyak Yaroslav] [2]), indem Sie Folgendes ausführen:

cd ~/Downloads
wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
tar -xvf jdk-8u5-tuxjdk-b08.tar.gz
sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
rm jdk-8u5-tuxjdk-b08.tar.gz

Dadurch wird die heruntergeladene Zip-Datei extrahiert und nach / usr / lib / jvm / verschoben. Führen Sie nun im Terminal Folgendes aus:

cd ~
sudo gedit .bashrc

Fügen Sie dann die folgenden Zeilen ganz unten in die bashrc-Datei ein.

JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/
export JAVA_HOME

Speichern Sie es und bearbeiten Sie die idea.sh. (Ihr Skriptspeicherort kann unterschiedlich sein.)

gedit /home/USER/Downloads/idea/bin/idea.sh

Ersetzen Sie ganz unten im Skript die Zeilen in der While Do-Anweisung unten durch diese beiden Zeilen:

eval "/usr/lib/jvm/jdk-8u5-tuxjdk-b08/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
test $? -ne 88 && break

Speichern Sie es und öffnen Sie IntelliJ. Die Schriftarten sollten funktionieren und Sie werden Oracle JDK 8 für die Entwicklung verwenden. Wahrscheinlich müssen Sie die Projekteinstellungen bearbeiten und das JDK erneut einrichten. Achten Sie jedoch darauf, dass Sie das tatsächliche JDK und nicht das Schriftartkorrektur-JDK verwenden.

Dieser Fix funktioniert auch mit CLion, Android Studio und [PyCharm.

In diesen Anweisungen wird davon ausgegangen, dass die JDK-Version 1.8.0_25 lautet. Die Datei- / Pfadnamen werden für zukünftige Versionen geändert.


quelle
Haben Sie eine Idee, wie Sie dies mit PhpStorm zum Laufen bringen können? Das Ende der Datei sieht folgendermaßen aus: LD_LIBRARY_PATH = "$ IDE_BIN_HOME: $ LD_LIBRARY_PATH" "$ JDK / bin / java" \ $ AGENT \ "-Xbootclasspath / a: $ IDE_HOME / lib / boot.jar" \ -classpath "$ CLASSPATH "\ $ VM_OPTIONS" -Djb.vmOptionsFile = $ VM_OPTIONS_FILES_USED "\" -XX: ErrorFile = $ HOME / java_error_in_WEBIDE_% p.log "\ -Djb.restart.code = 88 -Didea.paths.selector = WebIPROPROP \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? test $ EC -ne 88 && exit $ EC #test $? -ne 88 && break exec "$ 0" "$ @"
MichaelHindley
0

Sie können Oracle JDK-8 installieren. Getestet auf Ubuntu 14.04, sollte später auch funktionieren.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Überprüfe die Version:

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Nahm von hier .

Temak
quelle
0

So sieht es mit schrecklichem Font-Rendering auf Ubuntu 16.04 aus:

So sieht es mit einem schrecklichen Font-Rendering unter Ubuntu 16.04 aus

Wenn Sie IntelliJ IDEA 2016.X oder höher ohne JDK-Paket verwenden, können Sie eine Umgebungsvariable "IDEA_JDK" festlegen, um eine bestimmte Laufzeit anzugeben. Das Rendern von Schriftarten in Ubuntu 16.04 mit Android Studio ist perfekt, sodass Sie dieselbe JRE mit Intellij IDEA teilen können. IntelliJ sucht zuerst nach der Umgebungsvariablen IDEA_JDK. Legen Sie diese fest, indem Sie eine Datei hinzufügen:

/etc/profile.d/IDEA_SDK.sh

Fügen Sie dies zur Datei hinzu:

export IDEA_JDK=/opt/android-studio/jre

Passen Sie / opt / android-studio / jre gemäß Ihrer Installation an. Melden Sie sich ab und wieder an und starten Sie Ihre Intellij IDE

So sieht es nach der Verwendung der neuen JRE aus:

So sieht es nach der Verwendung der neuen JRE aus

Abhisek Padhi
quelle
-1

Ich habe festgestellt, dass das Anti-Aliasing von phpstorm mit der Standardkonfiguration recht gut funktioniert. Der Vergleich der beiden Befehle zeigt, dass der einzige Unterschied darin besteht, dass phpstorm ein eigenes Java verwendet (/ usr / share / phpstorm / jre64 / bin / java).

Ich habe das Startskript von idea so geändert, dass es mit Java von phpstorm funktioniert und alles ist so gut wie bei phpstorm. Bildschirmfoto

jswh
quelle
Was ändert sich? Müssen Sie dafür phpstorm installieren?
Geselle Geek