Natives Java GTK-Look-and-Feel in Ubuntu
In Ubuntu sehen Java Applikationen, die das GTK Look and Feel (LaF) von Swing verwenden, leider nicht nativ aus. Doch gerade dieses LaF sollte genau dafür sorgen. Besonders im Unity Desktop erkennt man sie sofort als „Alien“.
Die Menüs haben keinen Rahmen und befinden sich auch nicht in der globalen Menüzeile noch bieten sie HUD-Unterstützung. Die Schrift in Buttons und Dialogboxen ist zu dünn und passt nicht zum generellen GTK Look nativer Programme.
Dieses How-To beschreibt, wie man in wenigen Schritten das Aussehen von Javas Swing Menüs und Text in Ubuntu nativ aussehen lässt.
Für Linux Mint (Cinnamon, Xfce) hilft mein How-To und Skript im Artikel Javas Swing Menü im GTK LaF richtig darstellen.
Globales Menü und HUD Unterstützung
Um das Swing Menü vom Fenster in die obere globale Menüzeile zu verschieben, muss nur das Paket „Ayatana“ installiert werden. Damit funktioniert auch das Head-Up-Display (HUD) mit Java Apps und beseitigt nebenbei auch das Menürahmenproblem. Da es sich nicht in den Ubuntu Paketquellen befindet, hilft ein PPA. Im Terminal muss folgendes eingegeben werden:
sudo add-apt-repository ppa:danjaredg/jayatana
sudo apt-get update
sudo apt-get install jayatana
Man muss sich Ab- und wieder Anmelden! Wenn du alle weiteren Schritte auch noch durchführen willst, brauchst du dich nur am Ende Ab- und wieder anzumelden.
Bessere Schriftdarstellung
Zuerst das Paket „Infinality“ aus einem PPA installieren:
sudo add-apt-repository ppa:no1wantdthisname/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fontconfig-infinality
Dann den Patch für „OpenJDK“ einspielen und Java erneut installieren:
sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
sudo apt-get update
Abschließend muss man entweder OpenJDK7 oder 8 installieren (auch wenn es bereits installiert ist), je nachdem welches verfügbar ist oder man benutzen möchte.
OpenJDK7 (z.B. Ubuntu 14.04 LTS):
sudo apt-get install openjdk-7-jdk
OpenJDK8 (z.B. Ubuntu 15.04 oder höher):
sudo apt-get install openjdk-8-jdk
Spätestens jetzt muss man sich Ab- und wieder Anmelden!
Als Beispiel sieht man hier die Java-IDE „Netbeans“ nach Anwendung dieses How-Tos:
Änderungen zurücknehmen
Um die oben gemachte Änderungen zurückzunehmen und den Originalzustand wieder herzustellen, gib folgendes ins Terminal ein:
sudo apt-get --purge remove jayatana libjayatana libjayatanaag libjayatana-java libjayatanaag-java
sudo apt-get purge fontconfig-infinality
sudo apt-get install ppa-purge
sudo ppa-purge ppa:no1wantdthisname/ppa
sudo ppa-purge ppa:no1wantdthisname/openjdk-fontfix
Abschließend Java (OpenJDK7 oder OpenJDK8) erneut installieren.
sudo apt-get remove openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless
sudo apt-get install openjdk-7-jre-headless openjdk-7-jre openjdk-7-jdk
oder
sudo apt-get remove openjdk-8-jdk openjdk-8-jre openjdk-8-jre-headless
sudo apt-get install openjdk-8-jre-headless openjdk-8-jre openjdk-8-jdk
Ab- und wieder Anmelden!
Thanks a lot for this helpful post. It worked like a charm and made the fonts look native.
Thank You for Your Feedback. I am happy that my post could help.
Pingback: Korrekte Javas Swing Menüs im GTK LaF von Linux Mint | Hanis Sammelsurium