Manjaro, pisz wyraźniej

Odwieczna pogoń za precyzyjnym wyświetlaniem fontów na pulpitach linuksowych wydaje się nie mieć końca. Sposób renderowania fontów w różnych dystrybucjach ma tylu samo zwolenników, jak i przeciwników, bo nierzadko jest to sprawa gustu. Jednak muszę dodać sprawiedliwie, że po parogodzinnej obserwacji jaki poziom w tej kwestii oferuje Windows 8 na dedykowanej maszynie, to nie ma co narzekać na jakość fontów w Linuksie. Niemniej, nigdy nie było tak dobrze, żeby nie mogło być lepiej, a dla wymagających i lubiących różnorodność powstał projekt Infiniality.

Po świeżej instalacji Manjaro do jakość i czytelność fontów nie można mieć pretensji. Owszem, możemy tradycyjnymi metodami postarać się nadać im błysku, ale i bez tego można być usatysfakcjonowanym. Niemniej, ostatnio triumfy święci wspomniane Infinality, które brawurowym zestawem łatek znacznie wzbogaca możliwości standardowej biblioteki freetype2. Wobec rozbudowanych możliwości silnika Infinality, wzrasta też ilość opcji i parametrów, które opisują renderowanie fontów, a co pozostaje dla wielu użytkowników niewidoczne z racji braku implementacji tych ustawień w graficznych konfiguratorach czcionek ekranowych. Opisy i porady jak wdrożyć w naszą dystrybucję sposób rysowania czcionek oferowany przez Infinality straszy więc mnóstwem ręcznych poprawek w ustawieniach fontconfig. Jednak, chociażby w Manjaro, wdrożenie Infinality jest stosunkowo proste do przeprowadzenia.

DejaVu 12, renderowanie domyślne vs infinality

Na sam początek za pomocą menadżera pakietów Pamac (należy użyć repozytoriów AUR), instalujemy paczki freetype2-infinality i fontconfig-infinality. Jeżeli ktoś bardziej ufa terminalowi, to:

yaourt -S freetype2-infinality
yaourt -S fontconfig-infinality

Powyższe zastąpi bibliotekę freetype2 nową, poprawioną wersją freetype2-infinality. Następnie należy wdrożyć plik konfiguracyjny dla fontconfig – u mnie sprawdził się już taki:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
        <match target="font">
           <edit name="autohint" mode="assign">
             <bool>true</bool>
           </edit>
           <edit name="hinting" mode="assign">
             <bool>true</bool>
           </edit>
           <edit mode="assign" name="hintstyle">
             <const>hintslight</const>
           </edit>
           <edit mode="assign" name="lcdfilter">
             <const>lcddefault</const>
           </edit>
        </match>
</fontconfig>

Powyższe zapisujemy w katalogu domowym pod nazwą .fonts.conf (dokładnie tak, z kropką na początku). Pozostaje wylogowanie się i zalogowanie i podziwianie zmian. Niekiedy subtelnych, niekiedy bardziej widocznych, ale jakby na to nie patrzeć to jednak kolejny krok w stronę doskonałości.

Czy da się to jakoś to kontrolować? W celu automatycznego wdrażania specyficznych opcji Infinality możemy posłużyć się skryptem Infinality Changer.

Skrypt w Bashu, a jednak graficznie – Infinality changer

Należy go pobrać, rozpakować choćby do katalog ~/Programy, a następnie uruchomić. Wybrany styl zostanie wdrożony w życie po naszym przelogowaniu się.