Как исправить сглаживание шрифтов в IntelliJ IDEA при использовании высокого DPI?
Я использую более высокое значение DPI, что делает IntelliJ (фактически Android Studio) действительно испорченными шрифтами.
Я использую MacType, который прекрасно отображает мои шрифты в других местах, но я предполагаю, что Java VM каким-то образом перехватывает его или что-то еще, это убивает меня.
ОБНОВЛЕНИЕ: как rpgmaker говорит в своем ответе ниже, вы также можете просто установить последнюю версию IntelliJ (2016.1 и более поздние версии)
11 ответов
Я работаю с дисплеем с высоким разрешением, и у меня он работает с идеальным рендерингом шрифтов, для достижения этого вам необходимо:
(В Linux) Установите и используйте Oracle JDK (я использую 1.7), а не OpenJDK (также исправленный файл с fontfix был для меня бесполезен). Посмотрите, как это сделать.
Отредактируйте файл конфигурации .vmoptions, который вы найдете в папке установки Bin (например, studio.vmoptions и для 64bit studio64.vmoptions или WebStorm.exe.vmoptions и т. Д. В соответствии с версией установленной IDE), добавив следующие строки:
-Dawt.useSystemAAFontSettings=on
-Dswing.aatext=true
-Dsun.java2d.xrender=true
Удалите информацию подсказок из шрифта, который вы хотите использовать, и выберите новый шрифт в настройках IntelliJ IDEA (Настройка -> Редактор -> Шрифт);
если вы не знаете, как это сделать, установите FontForge:- Откройте свой шрифт в FontForge
- Выбрать все глифы с помощью
Ctrl+A
и очистить все подсказки (Советы -> Очистить подсказки) - Снова выберите глифы и используйте подсказки -> Очистить инструкцию
- Сохраните шрифт под другим именем (Файл -> Создать шрифты)
- Установите новый шрифт, выберите его в IDEA
Если вы следовали приведенным выше советам и у вас возникают задержки при быстрой прокрутке кода (это иногда может происходить в дистрибутивах Linux с неоптимизированным драйвером gpu), попробуйте удалить строку -Dsun.java2d.xrender=true
из файла .vmoptions.
Наконец, вот скриншот результата:
(здесь используются шрифты 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 "$@"
Больше информации и скриншоты лучших шрифтов: http://urshulyak.com/?p=478
В более новой версии JetBrains IDE решение другое.
В папке установки IDE просто переименуйте jre
папка к чему-то еще. Например:
$ cd your-path-to/WebStorm-162.2228.20/
$ mv jre/ _jre/
Более новые версии используют пакет JRE вместо вашей системной, и эта версия вызывает проблемы с отображением шрифтов.
Здесь отлично работает: WebStorm 2016.3.2 на Kubuntu 16.04 linux.
Я получил похожий вид, просто скачав шрифт Menlo и установив сглаживание Editor на "оттенки серого" в разделе "Внешний вид и поведение"> "Внешний вид".
Это результат:
Вот сравнение между двумя платформами
Я использую более высокое разрешение и лучшее аппаратное обеспечение при работе с MAC, поэтому шрифты выглядят немного ярче, результат будет зависеть от вашей машины. В любом случае, стоит попробовать, изменения легко вернуть
Больше ничего этого не нужно. Загрузите последнюю версию IntelliJ (2016.1 и более поздние версии) для Linux. Он включает в себя модифицированный JRE с исправленной проблемой шрифтов. Чтобы исправить Android Studio тоже сделайте символическую ссылку на IntelliJ jre:
ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre
В качестве альтернативы просто откройте ваш файловый менеджер от имени root (при условии, что ваши IDE установлены в каталоге /opt или другой системной папке) и создайте ярлык для jre IntelliJ и переместите его в папку установки Android Studio, затем переименуйте его в "jre". Это работает для последней версии Android 2.0, но должно работать и с более ранними версиями.
Если вы не можете очистить подсказки с FontForge, как Гуари объяснил в своем ответе. Используйте Cousine (Apache License v2.00) в качестве шрифта редактора и установите размер 14. Я пробовал пару других моноширинных шрифтов. Тем не менее, Cousine, кажется, имеет более хороший рендеринг, чем большинство других шрифтов. Смотрите скриншот в конце
- Скачать шрифт:
cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
- Создать новое семейство шрифтов dir:
sudo mkdir /usr/share/fonts/truetype/Cousine
- Извлеките файлы шрифтов:
sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
- Сделайте их доступными для IntelliJ:
sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
- Обновите кэш шрифтов:
sudo fc-cache -f -v
- Перезапустите IntelliJ и выберите Cousin в качестве шрифта редактора.
- Не забудьте установить vmoptions, как объяснил guari
Скриншот:
В Windows 10 у меня были похожие проблемы. Проверка Disable display scaling on high DPI settings
сделал шрифты более плавными, но гораздо большими. Вот как это сделать (из предыдущего комментария от другого пользователя):
Щелкните правой кнопкой мыши по его значку, выберите
Properties
, идти кCompatibility
вкладка и проверкаDisable DPI scaling on high DPI settings
Зайдя в Windows Settings
и в поисках Display Settings
есть диалог с ползунком, который говорит Change the size of text, apps, and other items
, Я переместил его со 125% до 100% и должен был выйти из системы и снова войти в нее. Шрифты стали маленькими И плавными:
Даже больше, если я сниму галочку Disable display scaling on high DPI settings
кажется, все еще гладко.
Принятый ответ не сработал для меня, но я получил все, сделав это:
Прочитав различные учебники и поработав с кучей исправлений, я нашел способ, который отлично работает.
Прежде всего загрузите 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 (Предоставлено [Уршуляк Ярослав][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 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 "$@"
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:
Если вы используете IntelliJ IDEA 2016.X или новее без JDK в комплекте, вы можете установить переменную среды "IDEA_JDK", чтобы указать конкретную среду выполнения. Рендеринг шрифтов в Ubuntu 16.04 с Android Studio идеален, так что вы можете поделиться одним и тем же 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:
Я понял, что сглаживание phpstorm работает довольно хорошо, используя конфигурацию по умолчанию. Сравнение двух команд показывает, что единственное отличие - это phpstorm, использующий собственную java (/usr/share/phpstorm/jre64/bin/java).
Я изменил стартовый скрипт идеи, чтобы он использовал java phpstorm, и он работал, и все так же хорошо, как и phpstorm. Скриншот