Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Infinality, czyli wyraźne czcionki w Linuksie

Wstęp

Standardowy wygląd czcionek w dystrybucjach Linuksa pozostawia wiele do życzenia - czcionki są rozmyte, miękkie. Windows - jeśli chodzi o fonty - jest gotowy do pracy out of the box. W Linuksie sprawa jest bardziej skomplikowana. Za rysowanie czcionek odpowiada biblioteka freetype, która w domyślnej konfiguracji jest kompilowana z wyłączonym wygładzaniem podpikselowym (subpixel hinting) - włączenie uniemożliwiają patenty ClearType od Microsoftu. Natomiast od maja 2010 roku freetype jest kompilowane z włączonym bytecode hintingiem - wtedy wygasły patenty Apple'a.

Dzięki hintingowi małe czcionki nie są rozmyte nawet z włączonym antyaliasingiem.

Infinality

Z pomocą przychodzi projekt Infinality w której skład wchodzą biblioteka freetype skompilowana z włączonym wygładzaniem podpikselowym, bytecode hintingiem, autorskimi łatkami i ustawieniami oraz zmodyfikowane wersje bibliotek fontconfig i cairo.

r   e   k   l   a   m   a

Instalacja i konfiguracja

W zależności od dystrybucji instalacja i konfiguracja może się różnić. Skupmy się na Kubuntu. Na Arch Linuksie (na którego pierwotnie powstał projekt) konfiguracja wygląda minimalnie inaczej - ale od czego jest potężne ArchWiki ;-)

Dodajemy repozytorium Infinality, aktualizujemy bazę pakietów, aktualizujemy system i instalujemy Infinality:


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

Czcionki od Microsoftu można zainstalować poleceniem:


sudo apt-get install ttf-mscorefonts-installer

Niestety powyższa paczka nie zawiera wielu czcionek, np. Segoe UI, więc można skopiować czcionki bezpośrednio z partycji Windows. Tworzymy katalog, kopiujemy, nadajemy uprawnienia i odświeżamy pamięć podręczną czcionek:


sudo mkdir /usr/share/fonts/windows7
sudo cp /media/wojtex/windows_partition/Windows/Fonts/* /usr/share/fonts/windows7
sudo chmod 755 /usr/share/fonts/windows7/*
fc-cache -f -v

Następnie przechodzimy do katalogu /etc/fonts/infinality i uruchamiamy skrypt konfiguracyjny:


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

Wybieramy 6 (win7) i ENTER. W ten sposób aktywowaliśmy ustawienia naśladujące Windows 7: wygładzanie, rodzaj hintingu, domyślne czcionki, ustawienia wyświetlania konkretnych czcionek itp. Wszystko to można przejrzeć w katalogu [/etc/fonts/infinality/conf.d. Jeśli chcemy dostosować ustawienia do swoich potrzeb (np. wyłączyć wygładzanie dla określonych typów i rozmiarów czcionek) możemy skopiować katalog z ustawieniami Infinality i swobodnie go modyfikować:


cd /etc/fonts/infinality/styles.conf.avail
sudo cp -R win7 win7wojtex

Po zmianach ponownie uruchamiamy infctl.sh setstyle i wybieramy nazwę nowego ustawienia.

Następnie edytujemy skrypt /etc/profile.d/infinality-settings.sh, na przykład:


kdesudo kate /etc/profile.d/infinality-settings.sh

Wyszukujemy wiersz USE_STYLE="DEFAULT" i zamieniamy na USE_STYLE="WINDOWS7LIGHTWOJTEX". Następnie wklejamy poniżej sekcję:


################ WINDOWS 7 STYLE LIGHT WOJTEX ##############
# ZMIONIONE FILTER_PARAMS I WINDOWS_STYLE_SHARPENING_STRENGTH
# W STOSUNKU DO WINDOWS7LIGHT
if [ "$USE_STYLE" = "WINDOWS7LIGHTWOJTEX" ]; then

export INFINALITY_FT_FILTER_PARAMS="06 25 44 25 06"
export INFINALITY_FT_GRAYSCALE_FILTER_STRENGTH=0
export INFINALITY_FT_FRINGE_FILTER_STRENGTH=100
export INFINALITY_FT_AUTOHINT_HORIZONTAL_STEM_DARKEN_STRENGTH=10
export INFINALITY_FT_AUTOHINT_VERTICAL_STEM_DARKEN_STRENGTH=25
export INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH=0
export INFINALITY_FT_CHROMEOS_STYLE_SHARPENING_STRENGTH=0
export INFINALITY_FT_STEM_ALIGNMENT_STRENGTH=0
export INFINALITY_FT_STEM_FITTING_STRENGTH=0
export INFINALITY_FT_GAMMA_CORRECTION="1000 160"
export INFINALITY_FT_BRIGHTNESS="0"
export INFINALITY_FT_CONTRAST="20"
export INFINALITY_FT_USE_VARIOUS_TWEAKS=true
export INFINALITY_FT_AUTOHINT_INCREASE_GLYPH_HEIGHTS=false
export INFINALITY_FT_AUTOHINT_SNAP_STEM_HEIGHT=100
export INFINALITY_FT_STEM_SNAPPING_SLIDING_SCALE=30
export INFINALITY_FT_USE_KNOWN_SETTINGS_ON_SELECTED_FONTS=true

fi

Zapisujemy. W ten sposób czcionki będą miały podobny wygląd jaki jest w Windows 7. Jeśli chcemy popracować nad własnym wyglądem czcionek warto zainstalować program grip, który umożliwia podgląd ustawień na żywo:


sudo apt-get install git gambas3-runtime gambas3-gb-form gambas3-gb-qt4 gambas3-gb-desktop gambas3-gb-image
git clone https://github.com/kokoko3k/grip.git
cd grip
gbc3 -e -a -g -t -p -m && gba3 && ./*.gambas

Infinality a Windows 7

Przeglądarka Firefox:

dobreprogramy - Windows

dobreprogramy - Linux

Porównałem renderowanie na wielu stronach, z różnym powiększeniem, różnymi czcionkami (italic i bold również) oraz na stronie http://www.typetester.org/. Efekt - rewelacja.

 

linux

Komentarze