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


回答:


112

私は高解像度ディスプレイで、完璧なフォントレンダリングで動作するようにしました。

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

  • 次の行を追加して、Binインストールフォルダーにある.vmoptions構成ファイルを編集します(例:studio.vmoptionsおよび64ビットstudio64.vmoptionsの場合、またはインストールしたIDEのバージョンに応じたWebStorm.exe.vmoptionsなど)。
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • 使用するフォントからヒント情報を削除し、新しいフォントをIntelliJ IDEAの設定で選択します([設定]-> [エディター]-> [フォント])。
    これを行う方法がわからない場合は、FontForgeをインストールしてから:

    1. FontForgeでフォントを開きます
    2. 経由Ctrl+Aですべてのグリフを選択し、すべてのヒントをクリアします(ヒント->ヒントのクリア)
    3. グリフをもう一度選択し、ヒント->指示をクリアを使用します
    4. 別の名前でフォントを保存します(ファイル->フォントの生成)
    5. 新しいフォントをインストールし、IDEAで選択します

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

最後に、結果のスクリーンショットを示します。

IDEスクリーンショット


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


4
驚くばかり!Windowsでも動作します:))ありがとう:*
Bloke

1
前述のように、windowsマシンでhi dpi(3200x1800)で上記を試しましたが、studio.vmoptionsを調整しましたが、まだすべてがぼやけています。可能であれば、私は本当にこれを機能させたいですか?
ペース14年

10
@Paceぼやけたフォントを削除するには、そのアプリケーションのディスプレイスケーリングを無効にする必要があります(そのアイコンを右クリックし、Win8のx64アプリの場合、タブを選択しPropertiesCompatibilityタブに移動してチェックしDisable DPI scaling on high DPI settingsます)。関連するレジストリキーのフラグを編集する必要があります:Regeditを開きます。 exe、HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers文字列値REG_SZに移動して追加します。名前はアプリケーション実行可能ファイルへのフルパスで、値はHIGHDPIAWARE);)
グアリ


2
ワオ。1年後もまだ役に立ちます。JetBrainsはこれをデフォルトにするか、少なくとも自動検出を実行する必要があります。これらの設定がないとぼやけているため、IntelliJはひどく使用できません。
アンドリューTフィンネル14

4

私はこれを修正するためのマニュアルを少し書きました。

   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


WebStormのディレクトリに追加-Dsun.java2d.xrender=trueするbin/webstorm64.vmoptionsだけで十分でした。
アリシア14

1
ダウンロードリンクが壊れています。修正してください
jackode

この答えは、ケースではないかもしれない64ビットアーキテクチャ、前提として
アンワル

これは基本的にルートとして任意のコードを実行しています-注意が必要です。
ソルビョーン・ラヴン・アンデルセン

2

Menloフォントをダウンロードし、[外観と動作]> [外観]でエディターのアンチエイリアスを「グレースケール」に設定するだけで、同様の外観になりました。

これが結果です:

これは見た目です

ここに2つのプラットフォームの比較があります

ここに画像の説明を入力してください

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


私のために部分的に働いた!フォントは、一般的なMac UIほど鮮明ではありませんが、機能するほどシャープです。13インチMac Pro、OS X 10.11.4
Mayank Jain

OSXでこれを行う理由は何ですか?箱から出して正しいフォントを取得する必要があります:)
FRR

2

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

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

または、ファイルマネージャーをルートとして開き(IDEが/ optディレクトリまたは別のシステムフォルダーにインストールされている場合)、IntelliJのjreへのショートカットを作成し、Android Studioインストールフォルダーに移動して、名前を 'jre'に変更します。これは最新のAndroid Studio 2.0で機能しますが、以前のバージョンでも機能するはずです。


どちらのバージョンですか?私はについて>ヘルプに行くときは、私が見るIntellij IDEA 15.0.2Build #IU-143.1184
やつ

@Blokeはサイトにアクセスして、最新のIntelliJをダウンロードするだけです。現時点では2016.1.1です。彼らは今、新しいバージョンを宣伝する方法を変更し、現在はそのYEAR.REVISION.UPDATE#形式を持っています。
意欲的な開発

ああ、確かに。試したばかりです。私のSource Code Proフォントは今や少し太すぎますが、それは小さな問題です。ありがとう!
ブローク

IntelliJにパッケージ化されたJREを使用すると、すべての違いが生じました。私は最初にJREなしでIntelliJをダウンロードし、ローカルのOracle JDK(1.7)を使用しましたが、その結果、フォントが不良になりました。HTH。
17

2

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

IDEでインストールフォルダは、単に名前を変更する jre何か他のものにフォルダを。例えば:

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

新しいバージョンでは、システム1ではなくバンドルされたJREが使用され、このバンドルされたバージョンではフォントのレンダリングの問題が発生します

ここで正常に動作します:Kubuntu 16.04 Linux上のWebStorm 2016.3.2。

固定フォントのWebStormスクリーンショット


これは底に埋もれていますが、これが本当の犯人です。上記のすべての人はエディターフォントに焦点を当てていますが、私はすでに良いエディターフォントを持っています。私の問題は、さまざまなコールアウト、ツールチップ、およびモーダルダイアログがすべて、アンチエイリアスなしでひどいフォントレンダリングを示していたことでした。上記のすべてを試しても問題は解決しませんでしたが、パッケージ化されたjreを非表示にすることで問題は解決しました。
ダン

1

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

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

スクリーンショット:


スクリーンショットがアンチエイリアスを使用しているように見えません。
Ztyx

縮小を防ぐために、スクリーンショットをより小さいものに置き換えました。これで、アンチエイリアスが使用されていることがわかります
-user1185087

1

Windows 10では、同様の問題がありました。をチェックするDisable display scaling on high DPI settingsと、フォントはより滑らかになりましたが、はるかに大きくなりました。これを行う方法は次のとおりです(別のユーザーからの以前のコメントから)。

そのアイコンを右クリックして、を選択しPropertiesCompatibilityタブに移動してチェックします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、まだ滑らかに見えます。


これは私のために働いた唯一の解決策でした!どうも!
DrKaoliN

0

受け入れられた答えは私にはうまくいきませんでしたが、これを行うことですべてがうまくいきました:

さまざまなチュートリアルを読み、多くの修正をいじった後、完璧に機能する方法を見つけました。

まず、OracleからJDK 8をダウンロードし、ターミナルで次の行を実行します。

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フォント修正([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 /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であり、ファイル/パス名が将来のバージョンに合わせて変更されることを想定しています。


これをPhpStormで動作させる方法を考えていますか?ファイルの下部は次のようになります。LD_LIBRARY_PATH = "$ IDE_BIN_HOME:$ LD_LIBRARY_PATH" "$ JDK / bin / java" \ $ AGENT \ "-Xbootclasspath / a:$ IDE_HOME / lib / boot.jar" \ -classpath "$ CLASSPATH "\ $ VM_OPTIONS" -Djb.vmOptionsFile = $ VM_OPTIONS_FILES_USED "\" -XX:ErrorFile = $ HOME / java_error_in_WEBIDE_%p.log "\ -Djb.restart.code = 88 -Didea.paths.selector = WebIde90 \ $ IDE_PROPETYRTI_PROPERTYES_PROPERTYES_PROPERTYES_PROPETYES \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $?test $ EC -ne 88 && exit $ EC #test $?-ne 88 && break exec "$ 0" "$ @"
MichaelHindley

0

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

これは、ubuntu 16.04での恐ろしいフォントレンダリングの様子です。

これは、ubuntu 16.04での恐ろしいフォントレンダリングの様子です。

JDKがバンドルされていないIntelliJ IDEA 2016.X以降を使用している場合は、環境変数「IDEA_JDK」を設定して特定のランタイムを指定できます。Android Studioを使用したubuntu 16.04のフォントレンダリングは完璧であるため、同じ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を使用した後の外観です。

これは、新しいJREを使用した後の外観です


-1

phpstormのアンチエイリアシングはデフォルト設定を使用すると非常にうまく機能することがわかりました。2つのコマンドを比較すると、唯一の違いは独自のjava(/ usr / share / phpstorm / jre64 / bin / java)を使用したphpstormであることがわかります。

phpstormのjavaを使用するように起動スクリプトを修正しましたが、動作し、すべてがphpstormと同じくらい良好です。 スクリーンショット


何が変わりますか?phpstormをインストールする必要がありますか?
ジャーニーマンオタク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.