IntelliJ IDEAで高DPIを使用しているときにフォントのアンチエイリアスを修正するには?

anti-aliasing fonts intellij-idea jvm

私は、IntelliJ(実際にはAndroid Studio)が本当にめちゃくちゃなフォントを持っているように高いDPI設定を使用しています

私は MacType を使っていますが、これは他の場所で私のフォントを美しくレンダリングしてくれるのですが、Java VM が何らかの形でそれを妨害しているのでしょうか、それが私を殺しているのです

  79  None  2013-07-03


ベストアンサー

私は高dpiディスプレイにしているし、私はあなたがする必要がありますこれを達成するために、完璧なフォントレンダリングで動作しているそれを得た

  • (Linux の場合) Oracle JDK (私は 1.7 を使用しています) をインストールし、OpenJDK ではなく、Oracle JDK を使用してください (fontfix でパッチを当てたものも私には役立たずでした)。これを行うにはを参照してください

  • Binのインストールフォルダにある.vmoptions設定ファイル(例えば、インストールしたIDEのバージョンに応じて、studio.vmoptionsと64bitのstudio64.vmoptions、またはWebStorm.exe.vmoptionsなど)を編集して、以下の行を追加します。 -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dsun.java2d.xrender=true

  • 使用したいフォントからヒント情報を削除し、IntelliJ IDEAの環境設定(Setting -> Editor -> Font)で新しいフォントを選択します

    1. FontForgeでフォントを開きます
    2. Ctrl+A ですべてのグリフを選択し、すべてのヒントをクリアする (Hints -> Clear Hints)
    3. 再びグリフを選択して、ヒント -> 命令をクリアします
    4. フォントを別の名前で保存します(File -> Generate Fonts)
    5. 新しいフォントをインストールし、IDEAで選択します

上記のヒントに従ってコードを高速スクロールするときにラグが発生している場合(これは最適化されていない gpu ドライバを搭載した Linux ディストリビューションで発生することがあります)、.vmoptions ファイルから -Dsun.java2d.xrender=true の行を削除してみてください

最後に結果のスクリーンショットです

IDE screenshot

(ここで使用されているフォントは、メインIDE用のLucidaMACとコードエディタ用のヒント情報を削除したUbuntu Monoです)

112  guari  2013-07-24


ちょっとしたマニュアルの直し方を書いてみました

   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

4  Yaroslav Urshulyak  2014-09-07


Menlo fontをダウンロードして、Appearance & behavior > AppearanceのEditor Anti-aliasingを’grayscale’に設定するだけで、似たような感じになりました

このような結果になりました

This is how it looks

ここで、2つのプラットフォームの比較をしてみましょう

enter image description here

私は、フォントが少し明るく見える理由であるMACでの仕事でより高い解像度とより良いハードウェアを使用していますが、結果はお使いのマシンによって異なります。とにかくそれはショットの価値がある、変更は元に戻すのは簡単です

2  FRR  2016-03-30


こんな醜いものはもう必要ありません。Linux用の最新のIntelliJ (2016.1以降)をダウンロードしてください。これには、フォントの問題を修正した修正済みのJREが含まれています。Android Studioも修正するには、IntelliJ jreへのシンボリックリンクを作成してください

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

あるいは、ファイルマネージャーをrootとして開き(IDEが/optディレクトリまたは別のシステムフォルダにインストールされていると仮定して)、IntelliJのjreへのショートカットを作成し、Android Studioのインストールフォルダに移動し、それを’jre’にリネームします。これは最新のアンドロイドスタジオ2.0で動作しますが、それ以前のバージョンでも動作するはずです

2  Aspiring Dev  2016-04-15


新しいJetBrains IDEではソリューションが異なります

IDEのインストールフォルダでは、jreフォルダの名前を他のものに変更してください。例えば

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

新しいバージョンでは、システムの代わりにバンドルされた JRE を使用しており、このバンドルされたバージョンではフォントレンダリングの問題が発生します

ここでは問題なく動作します。Kubuntu 16.04 linux上のWebStorm 2016.3.2

WebStorm screenshot with fixed font

2  ogram  2016-11-05


guariさんが回答で説明されているようにFontForgeでヒントをクリアできない場合。エディタフォントとしてCousine(Apache License v2.00)を使用し、サイズを14に設定します。他の等幅フォントもいくつか試してみました。しかし、Cousineは他のほとんどのフォントよりも良いレンダリングを持っているようです。最後にスクリーンショットを見てください

  1. フォントをダウンロードしてください。cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. 新しいフォントファミリdirを作成します。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. guari explainedのようなvmoptionsを設定することを忘れないでください

Screenshot:

1  user1185087  2015-03-16


Windows10でも同じような問題がありました。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%に移動させて、ログオフして再度ログインする必要がありました。フォントが小さくて滑らかになりました

enter image description here

さらに、Disable display scaling on high DPI settingsのチェックを外すと、まだスムーズに動くようです

1  User1  2017-07-14


受け入れられた答えは私には通用しませんでしたが、私はこれをすることで全てが通用するようになりました

様々なチュートリアルを読んで、修正の束をめちゃくちゃにした後、私は完全に動作する方法を見つけました

まず、JDK 8 from 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のフォント修正プログラム(Courtesy of [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

保存してから idea.sh を gedit してください。(スクリプトの場所は異なるかもしれません)

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

スクリプトの一番下にあるWhile Do文の行を以下の2行に置き換えてください

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であったと仮定していますが、ファイル/パス名は将来のバージョンで変更されます

0  None  2014-12-28


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)

こちらからの引用です

0  Temak  2016-08-17


ubuntu 16.04で恐ろしいフォントレンダリングをしているとこんな感じになります

This is how it looks like with horrible font rendering on ubuntu 16.04

バンドルされているJDKを使わずにIntelliJ IDEA 2016.X以降を使用している場合は、環境変数「IDEA_JDK」を設定することで特定のランタイムを指定することができます。ubuntu 16.04のAndroid studioでのフォントレンダリングは完璧なので、Intellij IDEAと同じJREを共有することができます。IntelliJはまずIDEA_JDKの環境変数を探しますので、ファイルを追加して設定します

/etc/profile.d/IDEA_SDK.sh

これをファイルに追加します

export IDEA_JDK=/opt/android-studio/jre

インストールに合わせて/opt/android-studio/jreを調整してください。ログアウトしてログインし、Intellij IDEを起動します

新しいJREを使った後はこんな感じです

This is what it looks like after using the new JRE

0  Abhisek Padhi  2017-04-21


2つのコマンドを比較してみると、phpstormが独自のjava(/usr/share/phpstorm/jre64/bin/java)を使用しているのが唯一の違いとなっています

ideaの起動スクリプトをphpstormのjavaを使って作るように修正してみたところ、うまくいき、全てphpstormの通りになりました。画面ショット

-1  jswh  2017-10-31


タイトルとURLをコピーしました