I use a higher DPI setting which makes IntelliJ (actually Android Studio) have really messed up fonts.
I use MacType which renders my fonts beautifully elsewhere, but I guess Java VM somehow intercepts it or something, it's killing me.
I use a higher DPI setting which makes IntelliJ (actually Android Studio) have really messed up fonts.
I use MacType which renders my fonts beautifully elsewhere, but I guess Java VM somehow intercepts it or something, it's killing me.
I’m on a high-dpi display and I got it working with a perfect font rendering, to achieve this you need to:
(On Linux) Install and use Oracle JDK (I’m using 1.7) and not OpenJDK (also the patched one with fontfix was useless for me). See how to do this.
Edit the .vmoptions configuration file that you find into the Bin installation folder (eg. studio.vmoptions and for 64bit studio64.vmoptions, or WebStorm.exe.vmoptions etc. according to the version of the IDE you installed) by adding these lines:
-Dawt.useSystemAAFontSettings=on
-Dswing.aatext=true
-Dsun.java2d.xrender=true
Remove hinting informations from the font that you would like to use and select the new font into IntelliJ IDEA preferences (Setting -> Editor -> Font);
if you don’t know how to do this, install FontForge then:
Ctrl+A
and clear all hints (Hints -> Clear Hints)If you followed the above tips and you’re experiencing lags when fast scrolling the code (this sometimes could happen on Linux distributions with a not optimized gpu driver), try removing the line
-Dsun.java2d.xrender=true
from the .vmoptions file.
Finally, here is a screenshot of the result:
(fonts used here are LucidaMAC for the main IDE and Ubuntu Mono with removed hinting informations for the code editor)
Properties
, go to Compatibility
tab and check Disable DPI scaling on high DPI settings
, for x64 apps in Win8- you should edit the flag of the related registry key: open Regedit.exe, go to HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
and add a string value REG_SZ whose name is the full path to the application executable and whose value is HIGHDPIAWARE) ;)
I wrote a little manual howto fix this.
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
Script to start Intellij Idea
*only note that need to change IDEA_HOME location for your path of idea
#!/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 "$@"
More info and screenshots of better fonts: http://urshulyak.com/?p=478
-Dsun.java2d.xrender=true
to bin/webstorm64.vmoptions
in WebStorm's directory was enough for me.
I got a similar look just by downloading the Menlo font and setting the Editor Anti-aliasing to 'grayscale' within Appearance & behaviour > Appearance
This is the result:
Here is a comparison between the two platforms
I am using a higher resolution and better hardware at work with the MAC, that is why the fonts look a bit brighter, the result will vary depending on your machine. Anyways it's worth a shot, the changes are easy to revert
None of this ugly stuff is needed anymore. Download the latest IntelliJ (2016.1 onwards) for Linux. It includes a modified JRE with the fonts issue fixed. To fix Android Studio too make a symbolic link to the IntelliJ jre:
ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre
Alternatively, just open your file manager as root (assuming your IDEs are installed in the /opt directory or another system folder) and create a shortcut to IntelliJ's jre and move it to Android Studio installation folder, then rename it to 'jre'. This works for the latest android studio 2.0 but it should work with earlier versions too.
Intellij IDEA 15.0.2
and Build #IU-143.1184
Source Code Pro
font now looks a bit too bold, though, but that's a minor issue. Thanks!
On newer JetBrains IDE's solution is different.
In IDE installation folder just rename jre
folder to something else. For example:
$ cd your-path-to/WebStorm-162.2228.20/
$ mv jre/ _jre/
Newer versions use bundled JRE instead of your system one and this bundled version causes font rendering issues.
Works fine here: WebStorm 2016.3.2 on Kubuntu 16.04 linux.
If you can't clear hints with FontForge like guari explained in his answer. Use Cousine (Apache License v2.00) as editor font and set the size to 14. I tried a couple of other monospaced fonts. However, Cousine seems to have a nicer rendering than the most other fonts. See the screenshot at the end
cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
sudo mkdir /usr/share/fonts/truetype/Cousine
sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
sudo fc-cache -f -v
Screenshot:
In Windows 10, I had similar issues. Checking the Disable display scaling on high DPI settings
made the fonts smoother but much bigger. Here's how to do this (from a previous comment from another user):
Right click on its icon, select
Properties
, go toCompatibility
tab and checkDisable DPI scaling on high DPI settings
Going into Windows Settings
and searching for Display Settings
, there's a dialog with a slider that says Change the size of text, apps, and other items
. I moved it from 125% to 100% and had to logoff and log back in. The fonts are small AND smooth now:
Even more, if I uncheck Disable display scaling on high DPI settings
, it appears to still be smooth.
The accepted answer didn't work for me but I got everything working by doing this:
After reading various tutorials and messing with a bunch of fixes I've found a way that works perfectly.
First of all download JDK 8 from Oracle and execute the following lines in the terminal:
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/
Now download the JDK font fix (Courtesy of [Urshulyak Yaroslav][2]) by executing the following:
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
This will extract the downloaded zip and move it to /usr/lib/jvm/. Now run the following in the terminal:
cd ~
sudo gedit .bashrc
Then add the following lines to the very bottom of the bashrc file.
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/
export JAVA_HOME
Save it then gedit the idea.sh. (Your script location may be different)
gedit /home/USER/Downloads/idea/bin/idea.sh
At the very bottom of the script replace the line(s) in the While Do statement at the bottom with these two lines:
eval "/usr/lib/jvm/jdk-8u5-tuxjdk-b08/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
test $? -ne 88 && break
Save it then open up IntelliJ, the fonts should work and you will be using Oracle JDK 8 for development. You will likely have to edit Project Settings and set up your JDK again but be sure to use the actual JDK and not the font fix one.
This fix also works with CLion, Android Studio and [PyCharm.
These instructions assume the JDK version was 1.8.0_25, file/path names will change for future versions.
You can install Oracle JDK-8. Tested on ubuntu 14.04, should work for later also.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Check the version:
$ 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)
Took from here.
This is how it looks like with horrible font rendering on ubuntu 16.04:
If you are using the IntelliJ IDEA 2016.X or later without bundled JDK, you can set an environment variable "IDEA_JDK" to specify a specific runtime. Font rendering in ubuntu 16.04 with Android studio is perfect, so you can share the same JRE with Intellij IDEA. IntelliJ looks for IDEA_JDK environment variable first, so set it by adding a file:
/etc/profile.d/IDEA_SDK.sh
Add this to the file:
export IDEA_JDK=/opt/android-studio/jre
Adjust /opt/android-studio/jre as per your installation. Logout and login back and fire your Intellij IDE
This is what it looks like after using the new JRE:
I realized that the anti-aliasing of phpstorm works quite well using the default configuration.The comparison of the two commands shows that the only difference is phpstorm using its own java (/usr/share/phpstorm/jre64/bin/java).
I modified the startup script of idea to make it using phpstorm's java and it worked and everything is as good as phpstorm do. screen shot