Исправление отображения шрифтов в продуктах JetBrains

Разработка: JetBrainsВ одной из моих прошлых статей, я пробовал улучшить отображение шрифтов в продуктах JetBrains, таких как PyCharm, PhpStorm, IntelliJ Idea и прочих в ОС Linux, однако на тот момент так и не добился идеального отображения шрифтов. Спустя некоторое время, поменяв ноутбук, я снова решил использовать PyCharm в качестве Django IDE…

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

Информации по данной проблеме не так уж и много, поскольку сами JetBrains не предоставляют конкретного ее решения, уповая на проблемы в Swing. Однако мне удалось исправить ситуацию полностью и данный способ должен сработать на большинстве компьютеров.

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

Устанавливаем пропатченный OpenJDK

Открываем консоль и выполняем следующие команды:
$ sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
$ sudo apt-get update
$ sudo apt-get install openjdk-7-jdk

Затем нам нужно установить домашнюю директорию для Java и параметры сглаживания шрифтов в JAVA_OPTIONS.

Для этого откроем файл /etc/environment с правами суперпользователя и добавим туда пару строк:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'

В зависимости от железа и операционной системы, вам возможно понадобится поэкспериментировать с параметром -Dawt.useSystemAAFontSettings, у меня все сглаживание заработало со значением -Dawt.useSystemAAFontSettings=on, у Вас он может принимать значение lcd.

Затем перевходим в систему или перезапускаем Xorg, и проверяем результат. Надеюсь это решит вашу проблему. Любой вопрос по проблеме можно задать в комментариях к этой записи.

P.S. А вот и изображение с результатом:

Разработка: PyCharm, Ubuntu, нормальные шрифты

21 комментарий

Serg_Seo
Спасибо! Все работает — единственное рабочее решение которое я нашел.
Satchitananda
Благодарю, сам уже думал переползать на OSX и в последний момент, нашел все необходимые материалы, теперь ненарадуюсь :)
EvgIq
Спасибо большое!
Все работает!
Ubuntu 12.10 PyCharm 2.6.3
EvgIq
Satchitananda
Очень рад что инструкция Вам помогла, я тоже безумно радовался что мне не придется искать другую IDE, или боже упаси, возвращаться на Windows.
pointer
А вот у меня к сожалению проблемы со шрифтами:


Причем, что характерно, при Dawt.useSystemAAFontSettings=on все работает. Но вот при попытке выставить Dawt.useSystemAAFontSettings=lcd (он же по умолчанию) случается вот такая вот неприятность.
Не подскажете, куда копать?
pointer

Так лучше видна проблема
Satchitananda
А почему тогда просто не оставить on?
pointer
1) Потому что тупо просто не нравится
2) Потому что хочется привести к единому внешнему виду отображение GTK и Java приложений в системе
3) Потому что что-то не работает, а я вообще не имею понятия, почему. меня это то ли беспокоит, то ли бесит.
4) Потому что это можно исправить. Наверное.

как-то так =)
Satchitananda
Я не до конца понял, когда у вас установлен параметр on, у Вас все шрифты рендерятся нормально?
pointer
Не совсем так. Когда включен Dawt.useSystemAAFontSettings=on — все рендерится без глюков, так как и должно рендериться при этих настройках. Похожий метод рендеринга в макоси. Но системные настройки шрифтов другие, аналогичный методу lcd. А вот при его включении он, как говорится, хеппенс.

для сравнения скриншоты с idea (Dawt.useSystemAAFontSettings=on) и chrome (рендериг как в остальных gtk приложениях)

Satchitananda
Так сделайте настройки только для Idea. Вам же нужен результат, а не единое значение для всех gtk приложений :)
abc_ua
В редакторе все ок, а вот в остальном интерфейсе жирный шрифт(

davinci
Да, у меня такая-же байда на Ubuntu, а на другой установке — нормальный тонкий шрифт, по мне так главное что проблема со сглаживанием решена. Если не устраивает, то можно поменять шрифт в настройках на любой, который нравится. И кстати, это лечится в настройках, убирая галку — «Override default fonts by», во вкладке Apperance
lookfortheroot
Спасибо за решение! Однако есть вопрос — во множестве статей пишется, что OpenJDK очень не дружит с Идеей. Неужели у вас все нормально? Не хотелось бы ломать рабочую систему экспериментами :)
Satchitananda
Я профессионально использую IntelliJ Idea в своих проектах с OpenJDK, и еще ни разу не столкнулся с какой-либо проблемой.
SergeySergeevich
Вы наверное господ бог? Thanks!
Satchitananda
Всего лишь такой же задолбавшийся человек, рад что вам помогло!
ArseniyKrasikov
Спасибо, основываясь на статье решил локальным изменением idea.sh :3
seosova
Если кто пользуется Fedora, то там решить проблему со сглаживанием можно так:
Качаем патченную jdk с code.google.com/p/tuxjdk/
Устанавливаем

cd ~/Загрузки #дальше по смыслу мы просто распоковываем архив и переносим в папку /opt/, если у Вас вохникают ошибки, провертье пути  и имена файлов
tar xzf jdk-8u5-tuxjdk-b08.tar.xz
sudo mv ~/Загрузки/jdk-8u5-tuxjdk-b08/ /opt/jdk-8u5-tuxjdk-b08/
cd /opt/jdk-8u5-tuxjdk-b08/
sudo alternatives --install /usr/bin/java java /opt/jdk-8u5-tuxjdk-b08/bin/java 2
sudo alternatives --config java #в этом месте выберете новую java
java -version #проверка версии, должна быть новая пропатченная openjdk version "1.8.0-tuxjdk"
export JAVA_HOME=/opt/jdk-8u5-tuxjdk-b08 #добавляем новую java в свое окружение
export JRE_HOME=/opt/jdk-8u5-tuxjdk-b08
export PATH=$PATH:/opt/jdk-8u5-tuxjdk-b08/bin:/opt/jdk-8u5-tuxjdk-b08/jre/bin

Все. Выглядит все достаточно хорошо.
сглаживание шрифтов Fedora Rubymine

P.S. тот же рецепт на форуме нашей федоры RFRemix. forum.russianfedora.pro/viewtopic.php?f=15&t=6536&p=43981&sid=3bdac82ae226e2dc986cbe2a61918dc0#p43981 ( вдруг у кого не выйдет с первого раза )

Оставить комментарий