Habak - "Ha" Background
=========

Kompilacja:
	Potrzebny bdzie kompilator, iksy oraz Imlib2. Standard.
	Wystarczy wpisa "make" i tyle.

Instalacja:
	Eeee... no... nie ma. We gotow binark i po j tam, gdzie uwaasz
	za stosowne.

Pokrtka charektyrystyka:

Habak uywa modelu warstwowego. Najnisz warstw jest po prostu cakiem
czarny ekran. Na tym ekranie mona ukada inne obiekty, zwane habakami.
Habaki dzielone s na 3 rodzaje: pliki graficzne (images), fonty i "obiekty
wbudowane" (internals). Gotow tapet tworzy si nakadajc na czarny pulpit
jeden lub wicej habakw dowolnego typu.  Kolejno wystpowania habakw
w linii polece jest zarazem kolejnoci nakadania ich na pulpit, czyli
habak ktry wystpuje ostatni zostanie narysowany nad "wczeniejszymi"
habakami.

Typy habakw:

Pliki (images) wcza si uywajc opcji -i, np.

./habak -i ~/grafika/tapeta.jpg

spowoduje doczenie na pulpit pliku tapeta.jpg.  Jeli opcja -i nie
wskazuje na plik lecz na katalog, to habak zrobi sobie list plikw w tym
katalogu, wybierze losowo ktry z nich, a nastpnie sprbuje go zaadowa.
Innymi sowy, jeli masz mas obrazkw w ~/gfx/fajne_tapety/ to habak moe
wybiera losowe z nich.
Wystarczy wywoa go jako './habak -i ~/gfx/fajne_tapety/'

Obok plikw mona te uywa fontw (TrueType). Suy do tego opcja -f. 
Za jej pomoc musisz wskaza plik z fontem TrueType, np.

./habak -f ~/.fonts/fajny_font.ttf

Moesz ustali te podany rozmiar fontu, podajc go po ukoniku zaraz za
nazw fontu, np. './habak -f ~/.fonts/fajny_font.ttf/50'

Trzecim (i ostatnim) typem habakw s habaki wewntrzne. Wcza si je opcj -I
Habaki te nie przyjmuj danych z zewntrz, ale samodzielnie generuj pewne
wzorce. Na razie dostpne s tylko dwa wzorce, "int" oraz "INT", realizujce
interlacing. Przykadowe uycie moe wyglda tak:

./habak -I int

Habak wewntrzny "int" realizuje interlacing (przeplot), wygaszajc parzyste
linie obrazu. Bardzo fajny efekt, zwaszcza gdy tapeta jest zbyt pstrokata.
Habak "INT" dziaa identycznie jak "int", z tym e wygasza linie nieparzyste
(kombinujc habak "int" z "INT" mona wygasi wszystkie linie ekranu).

Domylnie linie nie s tak naprawd wygaszane, a jedynie bardzo mocno
przyciemniane (IMO daje to lepszy efekt). Ale mona tym sterowa uywajc
modyfikatora koloru -c (ale o nim pniej).

FILOZOFIA WYKORZYSTYWANIA
Habaki mona (i powinno si) kombinowa ze sob nawzajem. Np.

./habak -i ~/gfx/cool.jpg -I int -i ~/gfx/small_logo.png -f ~/.fonts/deltafont.ttf -f ~/.fonts/deltafont.ttf/10

taka skadnia oznacza, e najpierw narysowany zostanie plik cool.jpg, potem
naoony wewntrzny habak "interlace", potem kolejny obraz small_logo.png,
nastpnie font deltafont.ttf a na kocu jeszcze raz font deltafont.ttf, ale
tym razem z rozmiarem wymuszonym na 10 pikseli. Proste.

MODYFIKATORY
Oczywicie same habaki nie byyby zbyt elastyczne, dlatego dostpna jest
gama modyfikatorw wpywajcych na ich wygld, niektre modyfikatory s
nawet konieczne. Modyfikatory to opcje, ktre wymienia si zaraz po
definicji jakiego habaka - odnosz si zawsze do ostatnio zdefiniowanego
habaka.

Modyfikator -C
-C to modyfikator centrowania. Habak po ktrym uyto tego modyfikatora
zostanie wycentrowany na ekranie.

Modyfikator -S
-S to modyfikator skalowania. Habak potraktowany tym modyfikatorem zostanie
przeskalowany tak, by wypenia cay ekran (ale z zachowaniem proporcji).
Jego uywanie ma sens tylko dla habakw plikowych (images).

Modyfikator -p
-p to modyfikator pozycji. Okrela on dokadnie pooenie habaka na
pulpicie. Modyfikator -p wymaga dodatkowo argumentu w postaci 'x,y', np.

./habak -i ~/gfx/ala.jpg -p 10,50

spowoduje wyrenderowanie pliku ala.jpg tak, by jego grny lewy naronik
znalaz si w punkcie 10,50 na pulpicie. Wsprzdne mog by ujemne,
powoduje to wtedy liczenie pozycji od przeciwlegej strony ekranu. Np.

./habak -i ~/gfx/ala.jpg -p -10,50

spowoduje obliczenie pozycji "pocztku" habaka na dziesi pikseli od prawej
i 50 pikseli od grnej krawdzi ekranu. Aby umieci habaka np. w prawym
grnym rogu naley uy '-p -0,0'

Modyfikator -c
-c to modyfikator koloru. Niektre z habakw pozwalaj na ustawienie koloru
(obecnie s to habaki fontu i wewntrzne habaki realizujce przeplot). Opcja
-c przyjmuje argument bdcy opisem koloru w postaci R,G,B,A, np.

./habak -I int -c 50,60,70,190

oznacza uycie habaka "int" z kolorem:
- skadowa czerwona ustawiona na 50
- skadowa zielona na 60
- skadowa niebieska na 70
- kana alpha (stopie przezroczystoci) na 190

Wszystkie te liczby mog przyjmowa wartoci od 0 (minimalne nasycenie) do
255 (maksymalne nasycenie).

Np. '-c 0,0,0,255' oznacza kolor czarny cakowicie nieprzezroczysty,
'-c 255,255,255,0' oznacza kolor biay cakowicie przezroczysty (a wic
zupenie "niewidzialny"), a '-c 200,0,0,128' to kolor mocno czerwony
o przezroczystoci wynoszcej 50%.

Modyfikator -t
Ten modyfikator to modyfikator tekstu, dziaa jedynie przy habaku fontowym.
Jako argument przyjmuje jeden wiersz tekstu jaki naley wyrenderowa
uywajc fontowego habaka. Tekst moe by dowolny, mona sobie "wypisa"
wersj jdra, dat, swoje imi, nazw ukochanej dystrybucji albo imi kota
ktry wygrzewa si na drukarce. Wybierz sobie co. Ja lubi dat.  Tekst
bdzie adnie antyaliasowany. Jeli chcesz uy w nim znaczkw spoza ASCII,
to musisz uy kodowania utf-8.

Np.

./habak -f ~/.fonts/deltafont.ttf/15 -t "User $USER on day `date +%Y-%m-%d`" -p 0,-0 -c 240,240,240,200

spowoduje wyrenderowanie na czarnym ekranie np. napisu "User grzegorz on day
2003-12-21", uywajc fontu deltafont.ttf w rozmiarze 15 pikseli. Napis
bdzie pooony w lewym dolnym naroniku ekranu, szarego koloru i lekko
przezroczysty.

Oczywicie to bardzo prosty przykad, mona go skomplikowa:

./habak -i /usr/local/share/backgrounds/lens -C -f ~/.fonts/deltafont.ttf/15 -t "User $USER on day `date +%Y-%m-%d`" -p 0,-0 -c 240,240,240,200

Teraz na to najpierw zostanie naoony wycentrowany obrazek z katalogu
/usr/local/share/backgrounds/lens, a dopiero na niego wyrenderowany ten
tekst. Ale mona to jeszcze bardziej skomplikowa:

./habak -i /usr/local/share/backgrounds/lens -C -f ~/.fonts/deltafont.ttf/15 -t "User $USER on day `date +%Y-%m-%d`" -p 5,-0 -c 240,240,240,100 -f ~/.fonts/deltafont.ttf/15 -t "User $USER on day `date +%Y-%m-%d`" -p 0,-5 -c 240,240,240,255

Tutaj sytuacja jest podobna, z tym e troch zamotaem z tekstem
- mianowicie generuj *dwa* habaki fontowe o tej samej treci, z tym e
jeden jest nieco przesunity i ma o wiele mniejsz przezroczysto. Daje to
bardzo fajny efekt cienia pod tekstem. Kombinujc *kilka* takich cieni
o rnych wielkociach fontu i nateniach przezroczystoci mona osign
bardzo bajeranckie efekty.

A na koniec zupenie dowalmy:

./habak -i /usr/local/share/backgrounds/lens -C -I int -f ~/.fonts/deltafont.ttf/15 -t "User $USER on day `date +%Y-%m-%d`" -p 5,-0 -c 240,240,240,100 -f ~/.fonts/deltafont.ttf/15 -t "User $USER on day `date +%Y-%m-%d`" -p 0,-5 -c 240,240,240,255

Tutaj dooyem wewntrznego habaka typu "interlace" pomidzy grafik
z /usr/local/share/backgrounds/lens a habaki fontowe. Dziki temu sam
obrazek jest usiany drobn siateczk przeplotu, ale tekstu ju nie (bo ley
ponad przeplotem).

