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

sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
sudo apt-get update
sudo apt-get install openjdk-7-jdk

После этого редактируем конфиг IDE.

gedit /opt/phpstorm/phpstorm.vmoptions

Добавляем в него следующие строки

-Dawt.useSystemAAFontSettings=on
-Dsun.java2d.xrender=true

Если этот вариант не помог, то пробуем следующий способ:
Создадим файл запуска IDE, с новыми параметрами. Для этого перейдем в папку с установленным PhpStrom, у меня он установлен в /opt/phpstorm. В директории bin создадим файл start.sh со следующим содержимым:

#!/bin/sh
# путь до IDE
IDEA_HOME=/opt/phpstorm
# путь может отличаться, проверьте у себя точный путь до java
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
# "-Dawt.useSystemAAFontSettings=on" по мне с параметром "on" лучше всего отрисовываются шрифты.
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on \
                      -Dsun.java2d.xrender=true"
export GNOME_DESKTOP_SESSION_ID=this-is-deprecated
exec $IDEA_HOME/bin/phpstorm.sh "$@"

Теперь редактируем .desktop файл запуска приложения.
У меня он находится в ~/.local/share/applications/. Открываем файл в редакторе

gedit ~/.local/share/applications/jetbrains-phpstorm.desktop

Заменяем путь до исполняемого файла,

Exec="/opt/phpstorm/bin/start.sh" %f

После этого все должно заработать.

Для большей интеграцией с ubuntu нехватает поддержка global menu. Попробуем исправить это.
Первым делом доставим программы, которые нам понадобятся для пересборки java (после они нам не понадобятся, их можно будет удалить).

sudo apt-get install openjdk-7-jdk libunity-dev libxt-dev gcc make ant

Скачиваем исходники jayatana

svn checkout http://java-swing-ayatana.googlecode.com/svn/tags/1.2.4/jayatana

Переходим в папку с исходниками:

cd ./jayatana

И пересобираем:

Для OpenJDK 7:

sudo ant deinstall
sudo ant install
sudo ant config

Для Oracle JDK 7:

sudo ant deinstall
sudo ant install -Djava.home.7=/usr/lib/jvm/oraclejdk7
sudo ant config -Djava.home.7=/usr/lib/jvm/oraclejdk7

Все исходники jayatana нам больше не нужны. Можно удалить

rm -rf ./jayatana

Запускаем PhpStrorm и любуемся :)

UPD: Для 13.04 и 14.04 есть репозиторий c глобальным меню:

sudo add-apt-repository ppa:danjaredg/jayatana
sudo apt-get update
sudo apt-get install jayatana

Вернуть обратно:

sudo apt-get --purge remove jayatana libjayatana libjayatanaag libjayatana-java libjayatanaag-java

Вернуть обратно стандартное сглаживание:

sudo apt-get install ppa-purge
sudo ppa-purge ppa:no1wantdthisname/openjdk-fontfix

UPD: Для пользователей Oracle JDK есть способ сгладить шрифты. Для этого нужно удалить из файла шрифта инструкции по отрисовке. Сделать это можно с помощью FontForge.

  • Открываем нужный шрифт в FontForge.
  • Выбираем все символы Ctrl+A и удаляем инфо (Hints -> Clear Hints)
  • Снова выбираем все и удаляем инструкции (Hints -> Clear Instruction)
  • Сохраняем шрифт под другим именем ( File -> Generate Fonts)

Устанавливаем шрифт в системе и выбираем в phpstorm.

Можно прочесть также:

 

5 комментариев “Сглаживание шрифтов и глобальное меню в PhpStorm”

  1. ivan:

    блин еще хуже стало, теперь не знаю как вернуть назад (((((

  2. Max:

    Спасибо. Помог первый способ (Elementary Luna).
    Единственный нюанс с путями:
    /opt/phpstorm/phpstorm.vmoptions

    в моем случае было тут:
    /opt/phpstorm/bin/phpstorm.vmoptions
    /opt/phpstorm/bin/phpstorm64.vmoptions <- Для моей 64-битной версии

  3. Oleh:

    Не помогло. Печаль

  4. Oleg:

    У меня тоже сначала не получилось, но дело в том что

    add-apt-repository ppa:no1wantdthisname/openjdk-fontfix

    выдал ошибку а я не заметил.

    Теперь все хорошо

  5. Иван:

    1) Спасибо за статью, помогла, установил jayatana, тем самым вернул пропавшее глобальное меню.
    2) Глобальное меню. По умолчанию в Ubuntu 15 добавлено глобальное меню. В PhpStorm 9 отлично работает. В IDE IDEA 14 тоже. Но в IDEA при запуске программы в консоль вываливается предупреждение, мозолящее глаза:

    Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar

    На просторах гугла нашел решение, диктующее удаление jayatana. Удалил, ошибка действительно ушла, но исчезает глобальное меню, и в IDEA, и в PhpStorm – е, что конечно не устраивает. Может автор знает, как убрать данное предупреждение без удаления jayatana?
    3) Шрифты. На Ubuntu 15 + PhpStorm 9, тема Darcula, из коробки отличные сглаженные шрифты. Всем, кто придерживается светлых тем советую привыкать к темным, для глаз более щадимо.