Intellij IDEA сглаживание шрифтов в Linux
Я использую IntelliJ IDEA в Arch Linux с KDE. Версия OpenJDK 1.7.0_40.
Целые шрифты IDE (включая редактор кода) отображаются без сглаживания и сглаживания шрифтов. Я установил в idea.properties
файл idea.use.default.antialiasing.in.editor
в true
и добавил в _JAVA_OPTIONS
переменная -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
без какого-либо эффекта.
Что еще я могу попробовать включить сглаживание шрифтов?
8 ответов
Посмотрите здесь. Я помню ту же проблему при запуске IDEA, но после добавления строки, упомянутой в вики, проблема исчезла.
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=setting'
где setting
может быть
off
или жеfalse
или жеdefault
- Нет сглаживанияon
- Полное сглаживаниеgasp
- Используйте встроенные инструкции хинтинга шрифтаlcd
или жеlcd_hrgb
- Сглаживание настроено для многих популярных ЖК-мониторовlcd_hbgr
- Альтернативная настройка ЖК-монитораlcd_vrgb
- Альтернативная настройка ЖК-монитораlcd_vbgr
- Альтернативная настройка ЖК-монитора
Я нашел другое решение здесь. Это работает для Oracle JDK, но может быть полезно для людей, спотыкающихся в этом вопросе. Вы должны отредактировать .vmoptions
файл (в моем случае это idea64.vmoptions
от /bin
). Добавьте эти три строки:
-Dawt.useSystemAAFontSettings=on
-Dswing.aatext=true
-Dsun.java2d.xrender=true
Если у вас возникли проблемы, вы можете удалить последнюю строку. Вы можете протестировать разные версии для первой настройки (варианты смотрите в посте выше).
Кроме того, вы можете отредактировать используемый шрифт и очистить подсказки (автор сообщения предлагает использовать FontForge). Я не нашел это необходимым.
Больше ничего этого не нужно. Загрузите последнюю версию 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, но должно работать и с более ранними версиями.
Android Studio теперь поставляется с модифицированной JRE, поэтому символическая ссылка больше не нужна, просто скачайте последнюю версию.
Как уже упоминалось, это ошибка в JDK. Хорошей новостью является то, что есть патч для OpenJDK, который значительно улучшает рендеринг шрифтов для IntelliJ в Linux и повышает качество шрифта до уровня, который я видел на моем Mac.
(Чтобы было ясно, это значительно лучше, чем то, что можно получить путем настройки idea.properties
.)
Чтобы установить его, используйте пакеты ниже:
Ubuntu PPA https://launchpad.net/~no1wantdthisname/+archive/openjdk-fontfix
Arch AUR: https://aur.archlinux.org/packages/jre7-openjdk-headless-fontfix/
(Я использую Ubuntu/Elementary OS, поэтому я не могу поручиться за это лично)
Он не будет работать с OpenJDK, даже с любым _JAVA_OPTIONS
вы выбираете, так что удалите его с sudo pacman -Rndd jdk7-openjdk jre7-openjdk jre7-openjdk-headless java-rhino
и установите Oracle JDK 8 от Aur. После установки вы должны выйти / войти, чтобы обновить переменные среды Java (например, JAVA_HOME
). Вуаля, рендеринг шрифтов в порядке.
Наслаждайтесь!
PS: pacman -Rndd
удаляет без зависимостей, но с файлами конфигурации, расширен: pacman --remove --nosave --nodeps --nodeps
,
Это относится к IntelliJ IDEA 2018
Лучшее решение - загрузить версию с включенной Java Runtime. Эта версия работает на пользовательском JRE, который исправлен, чтобы лучше обрабатывать шрифты в Linux.
IntelliJ IDEA предлагает 2 версии для ОС Linux, одна версия имеет встроенный JRE (это загрузка по умолчанию), а другая версия не имеет и зависит от собственной установки Java пользователя.
Если вы не хотите переустанавливать IntelliJ, есть другое решение:
- Загрузите и распакуйте эту JRE
- Переключиться на это
- добавлять
-Djava2d.font.loadFontConf=false
к файлам idea.vmoptions и idea64.vmoptions, расположенным в папке intellij_installation_folder / bin /
NB. Результат первого решения был немного более привлекательным, когда я их попробовал.
Что касается моего тестирования, то решение @Corneliu Dascălu, упомянутое здесь, больше не работает на IntelliJ 2018.
Это известная ошибка в OpenJDK. Я не думаю, что какая-то подстройка исправит это для вас, это может сделать его немного лучше, но рендеринг шрифтов в OpenJDK нарушен.
ИМХО самое безболезненное исправление - это зайти в AUR и установить jdk7-compat, который предназначен для работы рядом с вашим обычным JDK.
Не беспокойтесь, если вы никогда не использовали AUR, это действительно просто. В основном то, что вы делаете, это
- убедитесь, что у вас установлен базовый уровень
pacman -S base-devel
- скачайте tar со страницы AUR, на которую я ссылался выше, распакуйте ее.
- запустите makepkg -di в папке, куда вы распаковали
и это сделано. Теперь отредактируйте /usr/share/intellijidea-ce/bin/idea.sh и измените строку, в которой выполняется программа (в нижней части файла), чтобы она выглядела следующим образом
eval "/opt/java7/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
Это заставит intelliJ работать в ORACLE JVM, а не в OpenJDK, что решает проблемы со шрифтами все вместе.
В /usr/share/intellijidea-ce/bin/idea.sh:
отредактируйте эту строку:
ALL_JVM_ARGS="$VM_OPTIONS $COMMON_JVM_ARGS $IDE_JVM_ARGS $AGENT $REQUIRED_JVM_ARGS"
и сделайте так:
ALL_JVM_ARGS="$VM_OPTIONS $COMMON_JVM_ARGS $IDE_JVM_ARGS $AGENT $REQUIRED_JVM_ARGS -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true"