Как исправить сглаживание шрифтов в IntelliJ IDEA при использовании высокого DPI?

Я использую более высокий параметр DPI, который делает IntelliJ (фактически Android Studio) действительно испорченными шрифтами .

Я использую MacType, который отлично отображает мои шрифты в другом месте, но я думаю, что Java VM каким-то образом перехватывает его или что-то, он убивает меня.


ОБНОВЛЕНИЕ : как говорит rpgmaker в своем ответе ниже, вы также можете установить последнюю версию IntelliJ (2016.1)

Я нахожусь на дисплее с высоким разрешением на дюйм, и я получил его работу с идеальным рендерингом шрифтов, для этого вам нужно:

  • (В Linux) Установите и используйте Oracle JDK (я использую 1.7), а не OpenJDK (также исправленный с fontfix был бесполезен для меня). Посмотрите, как это сделать .

  • Измените конфигурационный файл .vmoptions, который вы найдете в папке установки Bin (например, studio.vmoptions и для 64-битных Studio64.vmoptions , или WebStorm.exe.vmoptions и т. Д. В соответствии с версией установленной вами среды IDE), добавив следующие строки:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Удалите информацию о шрифтах, которые вы хотите использовать, и выберите новый шрифт в настройках IntelliJ IDEA (Настройка -> Редактор -> Шрифт);
    Если вы не знаете, как это сделать, тогда установите FontForge :

    1. Откройте шрифт в FontForge
    2. Выделите все глифы с помощью Ctrl+A и очистите все подсказки (Советы -> Очистить подсказки)
    3. Выберите глифы снова и используйте подсказки -> Очистить инструкцию
    4. Сохраните шрифт с другим именем (File -> Generate Fonts)
    5. Установите новый шрифт, выберите его в IDEA

Если вы следуете приведенным выше советам и испытываете лаги при быстрой прокрутке кода (иногда это может произойти в дистрибутивах Linux с неуправляемым драйвером gpu), попробуйте удалить строку
-Dsun.java2d.xrender=true
Из файла .vmoptions .

Наконец, вот скриншот результата:

Снимок экрана IDE

(Здесь используются шрифты LucidaMAC для основной IDE и Ubuntu Mono с удаленной информацией о подсказках для редактора кода)

Я написал небольшое руководство, чтобы исправить это.

  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 

Сценарий для запуска Intellij Idea

* Обратите внимание, что вам нужно изменить местоположение IDEA_HOME для вашего пути идеи

 #!/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 "[email protected]" 

Дополнительная информация и скриншоты лучших шрифтов: http://urshulyak.com/?p=478

Я получил аналогичный вид, просто загрузив шрифт Menlo и установив редактор Anti-aliasing в «оттенки серого» в «Внешний вид и поведение»> «Внешний вид»

Это результат:

Вот как это выглядит

Вот сравнение между двумя платформами

Введите описание изображения здесь

Я использую более высокое разрешение и лучшее оборудование при работе с MAC, поэтому шрифты выглядят немного ярче, результат будет зависеть от вашего компьютера. В любом случае это стоит того, изменения легко вернуть

На новом решении JetBrains IDE отличается.

В папке установки IDE просто переименуйте папку jre в другое. Например:

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

В более новых версиях используется JRE, а не ваша система, и эта связанная версия вызывает проблемы с отображением шрифтов .

Здесь отлично работает: WebStorm 2016.3.2 на Kubuntu 16.04 linux.

Скриншот WebStorm с фиксированным шрифтом

Ничего из этого уродливого материала больше не требуется. Загрузите последнюю версию IntelliJ (2016.1) для Linux. Он включает модифицированную JRE с исправленной проблемой шрифтов. Чтобы исправить Android Studio тоже сделать символическую ссылку на IntelliJ jre:

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

Кроме того, просто откройте свой файловый менеджер как root (при условии, что ваши IDE установлены в каталоге / opt или другой системной папке) и создайте ярлык для java IntelliJ и переместите его в папку установки Android Studio, а затем переименуйте его в 'jre'. Это работает для последней студии Android 2.0, но она также должна работать с более ранними версиями.

Если вы не можете прояснить намеки на FontForge, как объяснил Гуари в его ответе . Используйте Cousine (Apache License v2.00) в качестве шрифта редактора и установите размер 14. Я попробовал пару других моноширинных шрифтов. Тем не менее, Cousine, кажется, имеет более приятный рендеринг, чем большинство других шрифтов. Смотрите скриншот в конце

  1. Скачать шрифт: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Создайте новый семейный sudo mkdir /usr/share/fonts/truetype/Cousine : sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Извлеките файлы шрифтов: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Сделайте их доступными для IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Обновите кеш шрифтов: sudo fc-cache -f -v
  6. Перезапустите IntelliJ и выберите Cousin в качестве шрифта редактора.
  7. Не забудьте установить vmoptions, как объяснил гуари

Скриншот:

Принятый ответ не сработал для меня, но у меня все работает, делая это:

Прочитав различные учебники и возившись с кучей исправлений, я нашел способ, который отлично работает.

Прежде всего загрузите JDK 8 из Oracle и выполните следующие строки в терминале:

 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/ 

Теперь загрузите исправление шрифта JDK (любезно предоставлено [Urshulyak Yaroslav] [2]), выполнив следующее:

 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 

Это извлечет загруженный zip и переместит его в / usr / lib / jvm /. Теперь запустите в терминале следующее:

 cd ~ sudo gedit .bashrc 

Затем добавьте следующие строки в самую нижнюю часть файла bashrc.

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

Сохраните его тогда gedit the idea.sh. (Возможно, ваше место в сценарии может быть другим)

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

В самом низу скрипта замените строки (строки) в инструкции While Do внизу этими двумя строками:

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

Сохраните его, затем откройте IntelliJ, шрифты должны работать, и вы будете использовать Oracle JDK 8 для разработки. Вам, скорее всего, придется отредактировать настройки проекта и снова настроить JDK, но обязательно используйте фактический JDK, а не исправление шрифта.

Это исправление также работает с CLion, Android Studio и [PyCharm.

Эти инструкции предполагают, что версия JDK была 1,8,0_25, имена файлов / путей будут изменены для будущих версий.

Вы можете установить Oracle JDK-8. Протестировано на ubuntu 14.04, должно работать и на потом.

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

Проверьте версию:

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

Взял отсюда .

Вот как это выглядит с ужасным рендерингом шрифтов на ubuntu 16.04:

Вот как это выглядит с ужасным отрисовкой шрифтов на ubuntu 16.04

Если вы используете IntelliJ IDEA 2016.X или более поздней версии без связанного JDK, вы можете установить переменную среды «IDEA_JDK» для указания конкретной среды выполнения. Шрифт рендеринга в ubuntu 16.04 с Android-студией идеально подходит, поэтому вы можете поделиться тем же JRE с Intellij IDEA. IntelliJ сначала ищет переменную среды IDEA_JDK, поэтому установите ее, добавив файл:

 /etc/profile.d/IDEA_SDK.sh 

Добавьте это в файл:

 export IDEA_JDK=/opt/android-studio/jre 

Откорректируйте / opt / android-studio / jre согласно вашей установке. Выйдите из системы и войдите в систему и запустите свою Intellij IDE

Вот как это выглядит после использования новой JRE:

Вот как это выглядит после использования новой JRE

В Windows 10 у меня были подобные проблемы. Проверка параметра « Disable display scaling on high DPI settings сделала шрифты более плавными, но намного большими. Вот как это сделать (из предыдущего комментария от другого пользователя):

Щелкните правой кнопкой мыши по его значку, выберите « Properties , перейдите на вкладку « Compatibility » и установите флажок « Disable DPI scaling on high DPI settings

Перейдя в Settings Windows и найдите Display Settings , появится диалоговое окно с ползунком, в котором говорится об Change the size of text, apps, and other items . Я переместил его с 125% до 100% и должен был выйти из системы и вернуться обратно. Шрифты маленькие и гладкие:

Введите описание изображения здесь

Более того, если я сниму флажок « Disable display scaling on high DPI settings , он все равно будет плавным.

  • Без броска VirtualMachineError гарантирует
  • JFrame.dispose () vs System.exit ()
  • «Ошибка при инициализации VM; Не удалось зарезервировать достаточно места для кучи объектов ", используя -Xmx3G
  • Какова стандартная кодировка JVM?
  • java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET
  • Каков максимальный размер кучи с 64-битной JVM?
  • out в System.out.println ()
  • Каков максимальный размер кучи по умолчанию для JVM Sun от Java SE 6?
  • Зачем вам когда-либо реализовывать finalize ()?
  • Есть ли способ получить ссылочный адрес?
  • Когда основной stream останавливается в Java?
  • Interesting Posts

    OpenCV лучше обнаруживает красный цвет?

    Пользовательские сообщения об ошибках в сериализаторе Django Rest Framework

    MySQL выбрасывает неверную ошибку строкового значения

    Internet explorer 10 по умолчанию в рабочем режиме

    шестнадцатеричная плавающая константа в C

    Как создать контекст рендеринга OpenGL с прозрачным фоном?

    Воспроизведение решеточного диаграммы дендрограммы с ggplot2

    Сделать столбец флажком

    Можно ли сделать частичный снимок экрана в Windows 7?

    Как автоматизировать настройку Chrome в качестве браузера Windows по умолчанию?

    Закрыт java.net.SocketException

    Сериализуемые classы и динамические прокси в EF – как?

    UnobservedTaskException выполняется, но обрабатывается обработчиком TaskScheduler.UnobservedTaskException и продолжением обработчика OnlyOnFaulted

    Постановка компьютерной камеры с матрицей гомографии на основе 4 компланарных точек

    Как подключить ярлык «Visual Studio 2010 Documentation» к панели задач Windows 7?

    Давайте будем гением компьютера.