OpenJDK-8/Oracle JDK 8 Font Patches for Ubuntu
Solution 1:
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) 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.
Solution 2:
To make DanielSteward anwser complete:
Unfortunately tuxjdk
for GTK look and feel uses font set in currently used gtkrc. But most of the themes don't set any font there. As a result netbeans will use bold Arial 15 as UI font.
To fix that create gtkrc just for netbeans with fixed font and tell netbeans to use this file.
I prepared special launcher that does this semi-automatically:
#!/bin/bash ### Customizable variables: ### # Path where netbeans was installed NETBEANS_PATH=${NETBEANS_PATH:-~/opt/netbeans-dev-2015-06-04}/bin/netbeans # Desktop environment name to use style from USED_DE=${USED_DE:-mate} # Tuxjdk seems to render too big UI fonts so use this value to decrease them FONT_SUBTRAHENT=${FONT_SUBTRAHENT:-3} ############################### function remQuotes(){ echo "${@//\'/}" } function decreaseFontSize(){ local subtrahend=$1; shift local args="$@" echo ${args//[0-9]/} $((${args//[!0-9]/} - $subtrahend)) } theme=$(remQuotes `gsettings get org.${USED_DE}.interface gtk-theme`) font=$(remQuotes `gsettings get org.${USED_DE}.interface font-name`) font=$(decreaseFontSize $FONT_SUBTRAHENT $font) themeDirs=$(find ~/.themes/ /usr/share/themes/ -type d -name "${theme}") gtkRcPath="" for dir in "$themeDirs"; do if [[ -f "$dir/gtk-2.0/gtkrc" ]]; then gtkRcPath="$dir/gtk-2.0/gtkrc" break; fi done if [[ "$gtkRcPath" == "" ]]; then echo "Theme not found" >/dev/stderr ./$NETBEANS_PATH $@ fi cat $HOME/.netbeans/.gtkrc-2.0 include "$gtkRcPath" style "user-font" { font_name = "$font" } widget_class "*" style "user-font" gtk-font-name="$font" EOF GTK2_RC_FILES=~/.netbeans/.gtkrc-2.0 $NETBEANS_PATH $@
This will read your theme settings and create fake theme just for netbeans.
You have to adjust NETBEANS_PATH
and USED_DE
variables to your environment.