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.

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

0 nowych
  #1 15.05.2016 13:32

Ja pod Ubuntu mam out of the box wszystko gotowe do pracy a fonty wyglądają lepiej niż pod win 10 (gdzie jakiś sterownik muszę dograć) - mam HP ZBook 14

Berion   14 #2 15.05.2016 13:36

W Linux Mint wystarczy wrzucić do "$home/.fonts/", oczywiście to konfig per user, ale nie trzeba odświeżać cache czcionek i łatwiej jest backupować (nie trzeba się martwić tym co jest na partycji systemowej - w tym sensie).

Moje trzy grosze jakby kogoś to interesowało.

Autor edytował komentarz w dniu: 15.05.2016 13:36
maew   7 #3 15.05.2016 13:48

Mi wystarczy zainstalować po prostu odpowiednie czcionki np. noto (fonts-noto w Debianie) i wszędzie poustawiać. Domyślnie są one zainstalowane w środowisku Plasma i wygląda to bardzo dobrze.

Poza tym wcale nie jest tak, że Windows ma ładniejsze czcionki - Windows 10 ma beznadziejne. Sporo dystrybucji ma domyślnie skonfigurowane ładne czcionki - np. Ubuntu i pochodne (Mint itp). Wśród innych dystrybucji też nie jest źle.

Nadchodzące gnome 3.20 będzie miało odświeżoną czcionkę (duużo lepiej), do tego wspomniana Plasma i już mamy spory kawałek świata dystrybucji z ładnymi, ładniejszymi niż Windows 10 czcionkami.

Tak czy siak, poradnik na pewno komuś się przyda.

Autor edytował komentarz w dniu: 15.05.2016 13:53
Latający Turban   12 #4 15.05.2016 13:55

Nie wiem może mam coś z oczami ale w ostatnich manjaro zwłaszcza lxqt są bardzo ładne czcionki. W linuksie ogólnie przeszkadza mi co innego. Otóż strony bardzo często mają ustawione zbyt małe czcionki względem tych windowsowych a powiększenie często sprawia że strona sie rozjeżdża. Jest to zwłaszcza męczące na rozdzielczościahc FHD i wzwyż, na mniejszym monitorze jest trochę lepiej. Do tego mam wrażenie, że jest jakiś problem z odstępami między literami, przy jednych są za duże a przy drugich za małe i źle się czyta taki tekst

grapeli23   5 #5 15.05.2016 14:36

Wszystkie łaty od Infinality od dawna znajdują się w głównym branchu freetype. Ostatnie chyba gdzieś tak w 2014 roku, główne w okolicach 2012.
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/log/

Owszem istotna jest sama konfiguracja, dobór czcionek. Zgadza się wiki archlinuksa może w tym początkującym pomóc. Warto by dodać, że można tworzyć konfigi nawet per-aplikacja i nie jest to jakoś szczególnie trudne. Podobnie jak można każdą dowolną aplikację uruchamiać z takim czy innym motywem gtk, qt, inną lokalizacją, strefą czasową.

KoczurekK   10 #6 15.05.2016 14:56

Osobiście siedzę na Roboto i sobie chwalę, Google odwaliło kawał dobrej roboty. :)

Azerty2   6 #7 15.05.2016 15:06

@KoczurekK: Fakt, zgadzam się. Na chromebookach jest dużo lepiej.

KoczurekK   10 #8 15.05.2016 15:21

@Azerty2: Nie wiem, nie używałem. Mówię o samej czcionce szczęśliwie rezydującej w moim Ubuntu 16.04. ;)

Madras   4 #9 15.05.2016 15:21

Nie chcę wyjść na marudnego, ale w mojej ocenie końcowy efekt jaki pokazałeś na zdjęciach jest i tak lepszy na Windowsie. Szczególnie dużą różnicę widać na mniejszych literkach - choćby w opisie redaktora. Kiedy miałem Debiana (niedługo znów go postawię na nowym sprzęcie) to stosowałem gotowy config z tego miejsca: https://wiki.debian.org/Fonts#Subpixel-hinting_and_Font-smoothing

aderas   5 #10 15.05.2016 16:25

Ja z kolei wrzuciłem SNFS do /.fonts/ i muszę powiedzieć, że wygląda całkiem całkiem. Potem już nie chciało mi się eksperymentować z innymi i tak zostało. Choć Roboto od Google'a również jest dobra.

Jarek Palikot   13 #11 15.05.2016 16:58

Siedze teraz na Sidzie z KDE i mam całkiem fajne fonty (defaultowe oxygen-sans, antyaliasing włączony, wszystko default)

Tu link dla Debiana do HOWTO install infinality font-settings for Debian
http://forums.debian.net/viewtopic.php?f=16&t=88545

Zaraz spróbuje ten fontconfig podlinkowany przez Madrasa

Farkas   11 #12 15.05.2016 18:46

No ja sobie chwalę akurat Ubuntu Fonts :)

bonusso3   2 #13 15.05.2016 20:23

Super. Jakoś ostatnio przeszło mi przez myśl żeby podmienić czcionki w Ubunciaku, ale jakoś nie chciało mi się szukać. Dzięki bardzo :)

GBM MODERATOR BLOGA  20 #14 16.05.2016 09:22

Stosuję Infinality od jakiegoś czasu, nawet udało się co nieco skrobnąć na jego temat (http://www.dobreprogramy.pl/GBM/Piekny-Linux-czyli-uruchamiany-renderowanie-czci...). Jednakże znacznie lepsze niż Windows - jest renderowanie "pod" OSX ;-) Przynajmniej ja mam takie wrażenie :)

dragon321   10 #15 16.05.2016 11:06

Wpis dobry, może się przydać co niektórym.

Jednakże zbyt odważnie rzucasz słowem "Linux", sugerując, że problem z fontami jest wszędzie. Moje Ubuntu ma ładne fonty(sporo ładniejsze niż miałem na Arch Linux, chociaż to się pewnie dałoby ustawić). Font(czcionka) Ubuntu jest wyraźny, ładny i darmowy.

Do tego zdania:
"Standardowy wygląd czcionek w dystrybucjach Linuksa"
dodałbym słowo "wielu" przed słowem "dystrybucjach". To by uniknęło nieporozumień.

Pozdrawiam.

Autor edytował komentarz w dniu: 16.05.2016 11:07
bystryy   10 #16 16.05.2016 11:49

@Berion: "W Linux Mint wystarczy wrzucić do "$home/.fonts/", oczywiście to konfig per user, ale nie trzeba odświeżać cache czcionek i łatwiej jest backupować (nie trzeba się martwić tym co jest na partycji systemowej - w tym sensie). "

Robię dokładnie tak samo pod Slackware. Czcionki są od razu dostępne np. w LibreOffice, GIMPie itp. :)

A co do samego wpisu, wygląd czcionek zależy od dystrybucji i używanego środowiska graficznego. Na moim Slacku na stronach internetowych czcionki wyglądają bardzo dobrze, za to trochę niedomagają w menu programów. Czasem następuje poprawa, a czasem regres w zależności od sterowników Nvidii. (już się do tego przyzwyczaiłem, po prostu przestałem się w te menu zbytnio wpatrywać ;) )

przemo188   8 #17 16.05.2016 12:09

Zastosowałem się wg opisu w Netrunerze z KDE. Raczej z ciekawości bo ludzię modyfikować wygląd i działanie swojego systemu. Efekt ciekawy. Ale Netrunner miał i tak wyraźne te czcionki. Trudno się teraz przyzwyczaić do wyglądu fontów ala Windows, jak się Windowsa nie używa od iluś lat.

Porada przydatna dla niektórych dystrybucji. Czekam na następne ciekawe mody w linuxie.

Autor edytował komentarz w dniu: 16.05.2016 12:10
  #18 19.05.2016 19:10

Niestety Twoje screeny pokazują jeszcze coś innego. Antyaliasing jest w ok, ale widać że Windowsie lepiej są zachowane odstępy międzyliterowe. Przykładowo w "Adam Golański" A jest w linuksie za blisko "d" i "a" za blisko "i". Literki nie są równomiernie rozłożone. Pod windowsem jest pod tym względem bardzo dobrze.
Używam linuksa na co dzień o bardzo sobie chwalę, ale chyba się przyjrzę tym czcionkom bo jakoś wcześniej tego nie zauważałem.

  #19 21.05.2016 02:42

@Jarek Palikot: nieaktualne, zresztą pisze że dla wheezy a to oldstable dzisiaj, z gita można pociągnąć i skompilować sobie, też używam bo na debianowym openboksie domyślny render czcionek jest tak koślawy i niewyraźny, że wypala oczy po kilku godzinach:)