Java, Infinality i inne fonty

Historia usprawniania metod renderowania fontów w Linuksie ma już wieloletnią tradycję i zdążyła obrosnąć w legendy. Wiele osób nie może patrzeć na domyślną jakość fontów w niektórych dystrybucjach, inni uważają je za całkiem ok, a jeszcze inni stawiają ponad to, co można zobaczyć na wiodącym systemie. Ile odbiorców tyle gustów, niemniej jedno można powiedzieć – najładniej i najprzyjemniej prezentują się fonty w Ubuntu. Wiele innych dystrybucji wspomaga stylistykę renderowania fontów projektem Infinality (który jest de facto zestawem łatek), a niektórzy użytkownicy uważają wręcz, że również w Ubuntu Infinality potrafi poprawić co nieco. Jedno jest pewne – Infinality doskonale sprawdzi się również dla programów w Javie, a dokładniej OpenJDK.

pixelitor
Dwukrotne powiększenie okna i domyślny render fontów oraz Infinality (animacja)
Dziwnym zbiegiem okoliczności, OpenJDK korzysta z systemowego renderowania fontów z pominięciem tego, co oferuje rzeczone Infinality. Cała zabawa sprowadza się do odpowiedniego skompilowania Javy, z jednoczesnym uwzględnieniem flagi –enable-infinality. Oczywiście nie będziemy nic kompilowali, bo ktoś to uczynił już za nas, a efekt tej pracy znajdziemy w odpowiednim repozytorium PPA.

Czy gra jest warta świeczki? Poprawiony wygląd fontów w Javie oznacza ni mniej ni więcej jak właśnie poprawiony wygląd fontów, a co za tym idzie wygodniejszą pracę z takimi programami. A już na pewno odczują to wszyscy użytkownicy pracujący we wszelakich edytorach programistycznych.

Co należy zatem zrobić, aby uraczyć się ulepszoną stylistyką? Najpierw należy zainstalować samo Infinality dla systemu, a następnie poprawioną wersję OpenJDK, która będzie potrafiła z rzeczone Infinality skorzystać.

Infinality dla systemu

Użytkownicy Ubuntu 14.04/14.10, Minta 17.1 i pochodnych mogą skorzystać z odpowiedniego repozytorium zawierającego usprawnienia dla renderowania fontów:

sudo add-apt-repository ppa:no1wantdthisname/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fontconfig-infinality

Użytkujący Manjaro lub Arch Linuksa wykorzystują paczkę z AUR fontconfig-infinality-ultimate:

yaourt -S fontconfig-infinality-ultimate

Pozostaje uruchomić skrypt konfiguracyjny (choć nie jest to wymagane), by ew. określić styl renderowania którego oczekujemy (Ubuntu, Infinality, WinXP, Win7, OS X i tak dalej):

sudo bash /etc/fonts/infinality/infctl.sh setstyle

I to wszystko co należy zrobić, by Infinality roztoczyło swój urok z ekranów naszych monitorów.

Infinality dla OpenJDK

Ten krok należy pominąć, jeżeli korzystamy z zamkniętej Javy od Oracle (i nie chcemy tego zmieniać). Z powodów o których wspomniałem wcześniej, OpenJDK pozostaje nieczułe na zmiany których dokonaliśmy powyżej. Dlatego musimy skorzystać z odpowiednio spreparowanej kompilacji, a która znajduje się w repozytorium (dla Ubuntu 14.04/14.10, Mint 17.1):

sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
sudo apt-get update
sudo apt-get install openjdk-7-jdk

W Manjaro i Arch Linuksie wykorzystujemy repozytorium AUR i paczkę z pożądanym JRE7 lub JRE8:

yaourt -S jre7-openjdk-headless-infinality
yaourt -S jre7-openjdk-infinality

A jak to wygląda w praktyce? Poniższe zrzuty należy otworzyć w nowych kartach (obraz nie zostanie przeskalowany):

openjdk_default
Java: domyślna czcionka w edytorze
openjdk_infinality
Java: czcionki poprawione renderem Infinality

Choć jakość fontów to rzecz gustu, trudno nie odnieść wrażenia, że z Infinality jest czytelniej i bardziej przyjemnie dla oka. Dlaczego dystrybucje nie wykorzystują domyślnie tego rozwiązania? Część łatek trafiła do głównego nurtu freetype2, jednak proces spowalniają niewolne rozwiązania.

2 komentarze

  1. Jeśli chodzi o Manjaro lub Archa to polecam dodać repo z infinality
    [infinality-bundle]
    Server = http://bohoomil.com/repo/$arch
    [infinality-bundle-fonts]
    Server = http://bohoomil.com/repo/fonts
    [infinality-bundle-multilib]
    Server = http://bohoomil.com/repo/multilib/$arch

    należy też dodać podpis Key-ID: 962DDE58

    czyli

    # pacman-key -r 962DDE58

    # pacman-key –lsign-key 962DDE58
    Instalacja opisana jest tutaj https://wiki.archlinux.org/index.php/Infinality#Installation_2

  2. Na starym monitorze CRT wersja domyślna wygląda dużo lepiej, jest bardziej kontrastowa i przez to czytelniejsza. Sprawdzę to jeszcze w domu na nowszym monitorze 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Post comment

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.