Jak naprawić wygładzanie czcionek w IntelliJ IDEA podczas korzystania z wysokiej DPI?

Odpowiedzi:

112

Korzystam z wyświetlacza o wysokiej rozdzielczości i zapewniłem mu doskonałe renderowanie czcionek, aby to osiągnąć, musisz:

  • (W systemie Linux) Zainstaluj i używaj Oracle JDK (używam 1.7), a nie OpenJDK (również łatany z fontfix był dla mnie bezużyteczny). Zobacz, jak to zrobić .

  • Edytuj znajdujący się w folderze instalacyjnym bin plik konfiguracyjny .vmoptions (np. Studio.vmoptions i dla 64- bitowego studio64.vmoptions lub WebStorm.exe.vmoptions itp. Zgodnie z zainstalowaną wersją IDE), dodając następujące wiersze:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Usuń informacje wskazujące z czcionki, której chcesz użyć, i wybierz nową czcionkę w preferencjach IntelliJ IDEA (Ustawienia -> Edytor -> Czcionka);
    jeśli nie wiesz, jak to zrobić, zainstaluj FontForge, a następnie:

    1. Otwórz czcionkę w FontForge
    2. Zaznacz wszystkie glify za pomocą Ctrl+Ai usuń wszystkie podpowiedzi (Podpowiedzi -> Wyczyść podpowiedzi)
    3. Wybierz ponownie glify i użyj Podpowiedzi -> Wyczyść instrukcję
    4. Zapisz czcionkę pod inną nazwą (Plik -> Generuj czcionki)
    5. Zainstaluj nową czcionkę, wybierz ją w IDEA

Jeśli postępujesz zgodnie z powyższymi wskazówkami i występują opóźnienia podczas szybkiego przewijania kodu (czasami może się tak zdarzyć w dystrybucjach Linuksa z niezoptymalizowanym sterownikiem GPU ), spróbuj usunąć linię
-Dsun.java2d.xrender=true
z pliku .vmoptions .

Na koniec zrzut ekranu wyniku:

Zrzut ekranu IDE


(używane tutaj czcionki to LucidaMAC dla głównego IDE i Ubuntu Mono z usuniętymi informacjami dotyczącymi edytora kodu)

guari
źródło
4
Niesamowite! Działa również w systemie Windows :)) dziękuję: *
Bloke
1
Próbowałem powyższego na moim komputerze z systemem Windows z wysoką rozdzielczością dpi (3200 x 1800). Dostosowałem opcje studio.vm, jak wspomniano, ale wciąż wszystko jest rozmyte. Jeśli to możliwe, proszę doradzić, czy naprawdę chciałbym, aby to działało?
Tempo
10
@Pace Aby usunąć rozmyte czcionki, należy wyłączyć skalowanie wyświetlania dla tej aplikacji (kliknij prawym przyciskiem myszy jej ikonę, wybierz Properties, przejdź do Compatibilitykarty i sprawdź Disable DPI scaling on high DPI settings, czy w aplikacjach x64 w Win8- należy edytować flagę powiązanego klucza rejestru: otwórz Regedit. exe, przejdź do HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersi dodaj wartość ciągu REG_SZ, którego nazwa jest pełną ścieżką do pliku wykonywalnego aplikacji i którego wartość to HIGHDPIAWARE );)
guari
3
nie mogę wyczyścić wskazówek i instrukcji dotyczących czcionek w tworzeniu czcionek ... Występują błędy, gdy próbuję je później zapisać ... Co robię źle
Mario Zderic
2
Łał. Nadal pomocny rok później. JetBrains musi ustawić to jako domyślne lub przynajmniej przeprowadzić automatyczne wykrywanie. Rozmycie bez tych ustawień sprawia, że ​​IntelliJ wygląda okropnie i nie nadaje się do użytku.
Andrew T Finnell,
4

Napisałem mały podręcznik, jak to naprawić.

   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

Skrypt do uruchomienia Intellij Idea

* pamiętaj tylko, że musisz zmienić lokalizację IDEA_HOME na swoją ścieżkę pomysłu

#!/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 "$@"

Więcej informacji i zrzuty ekranu z lepszych czcionek: http://urshulyak.com/?p=478

Jarosław Urszulak
źródło
Dodanie -Dsun.java2d.xrender=truedo bin/webstorm64.vmoptionskatalogu WebStorm wystarczyło mi.
Alicia,
1
link do pobrania jest uszkodzony. Proszę naprawić
jackode
Ta odpowiedź zakłada architekturę 64-bitową, co może nie być prawdą
Anwar
Zasadniczo jest to uruchamianie dowolnego kodu zgodnie z zaleceniami roota.
Thorbjørn Ravn Andersen
2

Podobny wygląd uzyskałem po pobraniu czcionki Menlo i ustawieniu antyaliasingu edytora na „skalę szarości” w oknie Wygląd i zachowanie> Wygląd

Oto wynik:

Tak to wygląda

Oto porównanie dwóch platform

wprowadź opis zdjęcia tutaj

Używam wyższej rozdzielczości i lepszego sprzętu do pracy z MAC, dlatego czcionki wyglądają nieco jaśniej, wynik będzie się różnić w zależności od komputera. W każdym razie warto spróbować, zmiany można łatwo cofnąć

FRR
źródło
Pracował dla mnie częściowo! Czcionki nie są tak wyraźne jak ogólny interfejs Maca, ale wystarczająco ostre, aby można je było zastosować. Mam 13
calowy
dlaczego robisz to na OSX? powinieneś pobrać właściwe czcionki z pudełka :)
FRR
2

Żadne z tych brzydkich rzeczy nie są już potrzebne. Pobierz najnowszą wersję IntelliJ (od wersji 2016.1) dla systemu Linux. Zawiera zmodyfikowane środowisko JRE z naprawionym problemem czcionek. Aby naprawić Android Studio, również zrób symboliczne łącze do środowiska IntelliJ:

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

Alternatywnie, po prostu otwórz menedżera plików jako root (zakładając, że IDE są zainstalowane w katalogu / opt lub innym folderze systemowym) i utwórz skrót do środowiska IntelliJ i przenieś go do folderu instalacyjnego Android Studio, a następnie zmień jego nazwę na „jre”. Działa to w najnowszym Android Studio 2.0, ale powinno również działać z wcześniejszymi wersjami.

Aspiring Dev
źródło
Którą wersję masz na myśli? Kiedy idę do Pomoc> Informacje, widzę Intellij IDEA 15.0.2iBuild #IU-143.1184
Bloke
@Bloke wystarczy wejść na stronę i pobrać najnowszą wersję IntelliJ. Myślę, że teraz jest 2016.1.1. Zmienili sposób, w jaki teraz reklamują nowe wersje, i ma teraz ten format YEAR.REVISION.UPDATE #.
Aspiring Dev
Och, rzeczywiście. Właśnie tego spróbowałem. Moja Source Code Proczcionka wygląda teraz jednak nieco odważniej, ale to niewielki problem. Dzięki!
Bloke
Korzystanie ze środowiska JRE w pakiecie z IntelliJ miało dla mnie ogromne znaczenie. Początkowo pobrałem IntelliJ bez JRE i użyłem mojej lokalnej Oracle JDK (1.7), co spowodowało złe czcionki. HTH.
sengs
2

W nowszych wersjach JetBrains IDE jest inne.

W folderze instalacyjnym IDE po prostu zmień nazwę jre folderu na coś innego. Na przykład:

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

Nowsze wersje używają dołączonego środowiska JRE zamiast wersji systemowej, a ta dołączona wersja powoduje problemy z renderowaniem czcionek .

Działa dobrze tutaj: WebStorm 2016.3.2 na systemie Linux Kubuntu 16.04.

Zrzut ekranu WebStorm ze stałą czcionką

ogram
źródło
Jest to zakopane na dole, ale TO jest prawdziwy winowajca. Wszyscy powyżej koncentrują się na czcionkach edytora, ale miałem już dobre czcionki edytora. Mój problem polegał na tym, że różne objaśnienia, podpowiedzi i dialogi modalne pokazywały straszne renderowanie czcionek bez antyaliasingu. Próbowałem wszystkiego powyżej i nic z tego nie rozwiązało problemu, ale ukrywanie spakowanego JRE załatwiło sprawę.
Dan
1

Jeśli nie możesz wyczyścić podpowiedzi za pomocą FontForge, jak wyjaśniono w odpowiedzi guari . Użyj Cousine (Apache License v2.00) jako czcionki edytora i ustaw rozmiar na 14. Wypróbowałem kilka innych czcionek o stałej szerokości. Jednak Cousine wydaje się mieć ładniejsze renderowanie niż większość innych czcionek. Zobacz zrzut ekranu na końcu

  1. Pobierz czcionkę: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Utwórz nowy katalog czcionek: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Wyodrębnij pliki czcionek: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Udostępnij je IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Zaktualizuj pamięć podręczną czcionek: sudo fc-cache -f -v
  6. Uruchom ponownie IntelliJ i wybierz Cousin jako czcionkę edytora
  7. Nie zapomnij ustawić opcji vm, jak wyjaśniono w guari

Zrzut ekranu:

użytkownik1185087
źródło
Twój zrzut ekranu nie wygląda tak, jakby używał wygładzania.
Ztyx
Zastąpiłem zrzut ekranu mniejszym, aby zapobiec skalowaniu w dół. Teraz widać, że zastosowano wygładzanie
user1185087
1

W systemie Windows 10 miałem podobne problemy. Sprawdzenie, czy Disable display scaling on high DPI settingsczcionki są gładsze, ale znacznie większe. Oto jak to zrobić (z poprzedniego komentarza innego użytkownika):

Kliknij prawym przyciskiem myszy jego ikonę, wybierz Properties, przejdź do Compatibilityzakładki i sprawdźDisable DPI scaling on high DPI settings

Wchodząc do Windows Settingsi szukając Display Settings, pojawia się okno dialogowe z suwakiem Change the size of text, apps, and other items. Przesunąłem go z 125% do 100% i musiałem się wylogować i zalogować ponownie. Czcionki są małe ORAZ gładkie:

wprowadź opis zdjęcia tutaj

Co więcej, jeśli odznaczę Disable display scaling on high DPI settings, wydaje się, że nadal jest płynny.

Użytkownik 1
źródło
To było jedyne rozwiązanie, które działało dla mnie! Dzięki!
DrKaoliN
0

Przyjęta odpowiedź nie działała dla mnie, ale wszystko działało tak:

Po przeczytaniu różnych samouczków i wprowadzeniu wielu poprawek znalazłem sposób, który działa idealnie.

Najpierw pobierz JDK 8 z Oracle i wykonaj następujące wiersze w terminalu:

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/

Teraz pobierz poprawkę czcionki JDK (dzięki uprzejmości [Urshulyak Yaroslav] [2]), wykonując następujące czynności:

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

Spowoduje to rozpakowanie pobranego pliku zip i przeniesienie go do / usr / lib / jvm /. Teraz uruchom następujące polecenie w terminalu:

cd ~
sudo gedit .bashrc

Następnie dodaj następujące wiersze na samym dole pliku bashrc.

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

Zapisz, a następnie edytuj idea.sh. (Twoja lokalizacja skryptu może być inna)

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

Na samym dole skryptu zamień wiersze w instrukcji While Do na dole tymi dwoma wierszami:

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

Zapisz, a następnie otwórz IntelliJ, czcionki powinny działać i będziesz używać Oracle JDK 8 do programowania. Prawdopodobnie będziesz musiał edytować Ustawienia Projektu i ponownie skonfigurować JDK, ale pamiętaj, aby użyć rzeczywistego JDK, a nie poprawki czcionek.

Ta poprawka działa również z CLion, Android Studio i [PyCharm.

Instrukcje te zakładają, że wersja JDK to 1.8.0_25, nazwy plików / ścieżek zmienią się w przyszłych wersjach.


źródło
Czy masz pomysł, jak uzyskać to dzięki PhpStorm? Dolna część pliku wygląda następująco: 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.PERector $ ID_PI_90 \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? test $ EC -ne 88 && exit $ EC #test $? -ne 88 && break exec "$ 0" "$ @"
MichaelHindley,
0

Możesz zainstalować Oracle JDK-8. Testowany na Ubuntu 14.04, powinien również działać później.

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

Sprawdź wersję:

$ 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)

Zabrałem stąd .

Temak
źródło
0

Tak to wygląda ze strasznym renderowaniem czcionek na Ubuntu 16.04:

Tak to wygląda ze strasznym renderowaniem czcionek na Ubuntu 16.04

Jeśli używasz IntelliJ IDEA 2016.X lub nowszej wersji bez pakietu JDK, możesz ustawić zmienną środowiskową „IDEA_JDK”, aby określić konkretny środowisko wykonawcze. Renderowanie czcionek w Ubuntu 16.04 ze Android Studio jest idealne, więc możesz współdzielić ten sam JRE z Intellij IDEA. IntelliJ najpierw szuka zmiennej środowiskowej IDEA_JDK, więc ustaw ją, dodając plik:

/etc/profile.d/IDEA_SDK.sh

Dodaj to do pliku:

export IDEA_JDK=/opt/android-studio/jre

Dostosuj / opt / android-studio / jre zgodnie z instalacją. Wyloguj się i zaloguj ponownie i odpal swój Intellij IDE

Tak to wygląda po użyciu nowego środowiska JRE:

Tak to wygląda po użyciu nowego środowiska JRE

Abhisek Padhi
źródło
-1

Uświadomiłem sobie, że wygładzanie phpstorma działa całkiem dobrze przy domyślnej konfiguracji. Porównanie dwóch poleceń pokazuje, że jedyną różnicą jest phpstorm przy użyciu własnej java (/ usr / share / phpstorm / jre64 / bin / java).

Zmodyfikowałem skrypt startowy pomysłu, aby działał w Javie phpstorm i działał i wszystko jest tak dobre, jak phpstorm. zrzut ekranu

jswh
źródło
Jakie zmiany? Czy potrzebujesz do tego zainstalować phpstorm?
Journeyman Geek