1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329
|
Habak - "Ha" Background (*lat. "mentha longifolia")
=========
Kompilacja:
Potrzebny bdzie kompilator, iksy oraz Imlib2. Standard.
Wystarczy wpisa "make" i tyle.
Aha, w pliku src/defaults.h moesz zmieni sobie definicje okrelajce
domylne ustawienia programu.
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), teksty 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 ponad "wczeniejszymi"
habakami.
Obsuga:
Habak ma dosy fikuny system obsugi z linii polece. Habak rozrnia
2 typy opcji: modyfikatory i habaki. Modyfikatory maj posta -mX gdzie "X"
jest oznaczeniem konkretnego modyfikatora. Modyfikatory dziel si nastpnie
na te, ktre przyjmuj argumenty i te ktre wystpuj samodzielnie.
Habaki maj posta -hX, gdzie "X" to oznaczenie konkretnego typu habaka.
Habaki generalnie wymagaj podania dodatkowych argumentw, cho jest od tego
jeden wyjtek, ale o tym pniej.
Zapamitaj: S dwa typy opcji. Opcje zaczynajce si od -m to modyfikatory,
opcje zaczynajce si od -h to habaki.
Typy habakw:
Habaki plikowe (grafiki) -hi:
Pliki z grafik (images) wcza si uywajc opcji -hi, np.
./habak -hi ~/grafika/tapeta.jpg
spowoduje doczenie na pulpit pliku tapeta.jpg. Jeli opcja -hi nie
wskazuje na plik lecz na katalog, to habak wygeneruje sobie rekursywnie
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 -hi ~/gfx/fajne_tapety/'
Jeli uyjesz habaka -hi ale nie podasz adnego pliku do zaadowania, to
program uyje albo ostatnio podanego pliku (z poprzedniej opcji -hi), albo
zacznie szuka obrazw do zaadowania skanujc zawarto Twojego $HOME.
Sam opcj "-hi" mona zwykle pomin, podajc od razu nazw katalogu/pliku
do zaadowania. Czyli mona np. zrobi po prostu
./habak ~/grafika/tapeta.jpg
Habaki tekstowe -ht:
Obok obrazw mona te renderowa na pulpicie teksty. Robi si to habakiem
tekstowym, wywoywanym opcj '-ht'. Jako argument przyjmuje on jeden wiersz
tekstu ktry naley naoy na pulpit. 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 (np. chcesz wypisa co z pliterkami), to musisz zakodowa tekst
w utf-8.
Jeli podasz opcj -ht ale nie podasz jej adnych argumentw, to uyje ona
ostatnio zdefiniowanego tekstu (z poprzedniej opcji -ht) lub tekstu
domylnego, wbudowanego w program.
Habaki wewntrzne (wbudowane) -hI:
Trzecim (i ostatnim) typem habakw s habaki wewntrzne. Wcza si je opcj
-hI Habaki te nie przyjmuj danych z zewntrz, ale samodzielnie generuj
pewne wzorce. Na razie dostpne s tylko dwa takie wzorce, "int" oraz "INT",
realizujce interlacing (przeplot). Przykadowe uycie moe wyglda tak:
./habak -hI int
Habak wewntrzny "int" realizuje przeplot przygaszajc parzyste linie
obrazu. Bardzo fajny efekt, zwaszcza gdy tapeta naoy si go na zbyt
pstrokat tapet.
Habak "INT" dziaa identycznie jak "int", z tym e modyfikuje linie
nieparzyste (kombinujc ze sob habaki "int" oraz "INT" mona zmieni
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 -mc (ale o nim pniej).
Jeli uyjesz opcji -hI ale nie podasz typu habaka wewntrznego, to
domylnie zostanie uyty ostatnio zdefiniowany typ lub zakodowany na stae
"int".
ZAPAMITAJ: S trzy typy habakw:
-hi Habak plikowy, suy do wczytywania plikw graficznych. Jeli nie podasz
mu argumentu, to uyje tego z poprzedniego wystpienia -hi lub sprbuje
zaadowa "./logo.png".
-ht Habak tekstowy, podajesz mu lini tekstu do narysowania na ekranie.
Jeli nie podasz argumentu to uyje ostatnio podanego tekstu, albo
domylnego ("Habak v.x.y.z")
-hI Habak wewntrzny, generuje samodzielnie jaki wzorzec. Znowu, jeli nie
podasz mu argumentu to wemie ten z ostatniego wywoania -hI. Ale jeli
nic nie znajdzie, to wemie "default", czyli "int".
FILOZOFIA WYKORZYSTYWANIA
Habaki mona (i powinno si) kombinowa ze sob nawzajem. Np.
./habak -hi ~/gfx/cool.jpg -hI int -hi ~/gfx/small_logo.png -ht "Ala ma kota"
taka skadnia oznacza, e najpierw narysowany zostanie plik cool.jpg, potem
naoony wewntrzny habak "interlace", potem kolejny obraz small_logo.png,
a na kocu tekst "Ala ma kota". Proste.
MODYFIKATORY
Oczywicie same habaki nie byyby zbyt elastyczne, dlatego dostpna jest
gama modyfikatorw wpywajcych na ich wygld, niektre modyfikatory s
nawet konieczne by w ogle co sensownego otrzyma. Istnieje oglny zbir
waciwoci jakie mog mie habaki. Zaraz na pocztku program posiada pewne
wartoci domylne, ktre potem mona zmienia wywoujc rne modyfikatory.
W momencie wywoania jakiego habaka z linii polece robi on sobie
"snpashot" aktualnych ustawie, potem mona je zmieni i wywoa nastpnego
habaka itp. Zmienianie opcji po wywoaniu jakiego habaka ju na niego nie
wpywa. Potraktuj to tak, jakby by fotografem - najpierw aranujesz
sceneri, potem pstrykasz fotk. Potem znowu co zmieniasz w aranacji
i pstrykasz kolejn fotk. W ten sposb habak generuje sobie kolejne klatki
obrazu, ktre potem wyrenderuje po kolei na pulpicie.
Modyfikator -mC
-mC to modyfikator centrowania. Wymusi wycentrowanie habaka na rodku
ekranu. Jego dziaanie zostanie wyczone jeli uyjesz potem opcji -mp.
Modyfikator ten jest domylnie wyczony.
Modyfikator -mS
-mS to modyfikator skalowania. Habak zostanie przeskalowany tak, by
wypenia cay ekran (ale z zachowaniem proporcji). Jego obecno ma
znaczenie tylko dla habakw plikowych (images). Domylnie nieaktywny. Jego
dziaanie jest negowane przez pniejsze uycie -mp
Modyfikator -ms
-ms to te modyfikator skalowania, tyle e ten bdzie ignorowa proporcje
obrazu - obraz wypeni po przeskalowaniu cay ekran, ale zapewne bdzie
zdeformowany (zbytnio rozcignity w pionie czy poziomie). Domylnie
nieaktywy, rwnie negowany przez -mp
Modyfikator -mp
-mp to modyfikator pozycji. Okrela on dokadnie pooenie habaka na
pulpicie. Modyfikator -mp wymaga dodatkowo argumentu w postaci 'x,y', np.
./habak -mp 10,50 ~/gfx/ala.jpg
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 -mp -10,50 ~/gfx/ala.jpg
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 '-mp -0,0'
Uycie tego modyfikatora wyczy dziaanie -mC, -ms czy -mS
Jeli nie uyjesz -mp, to domylnie obraz zostanie wycentrowany.
Modyfikator -mc
-mc to modyfikator koloru. Niektre z habakw reaguj na ustawienia koloru
(np. tekst czy wewntrzne habaki realizujce przeplot). Opcja
-mc przyjmuje argument bdcy opisem koloru w postaci R,G,B,A, np.
./habak -mc 50,60,70,190 -hI int
oznacza uycie wewntrznego 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. '-mc 0,0,0,255' oznacza kolor czarny cakowicie nieprzezroczysty,
'-mc 255,255,255,0' oznacza kolor biay cakowicie przezroczysty (a wic
zupenie "niewidzialny"), a '-mc 200,0,0,128' to kolor mocno czerwony
o przezroczystoci wynoszcej 50%.
Domylnie (zanim uyjesz -mc) kolor jest ustawiony na co w stylu lekko
przezroczystej, przybrudzonej bieli.
Modyfikator -mf
Tym modyfikatorem wybiera si font (uywany przy rysowaniu tekstu)
Za pomoc tej opcji moesz wskaza plik z fontem TrueType, np.
./habak -mf ~/.fonts/fajny_font.ttf
Moesz te wskaza po prostu katalog z fontami, wwczas habak wybierze sobie
jaki losowy font z tego katalogu.
Jeli uyjesz gdzie habaka tekstowego -ht ale nie zdefiniujesz wczeniej
samodzielnie fontu, to program sprbuje zaadowa losowy font z katalogu
~/.fonts - ale jeli nie masz tam adnych fontw, to si wyoy. Dlatego
pamitaj, jeli chcesz wypisywa teksty to najpierw okrel jaki font.
Modyfikator -mh
Ten modyfikator z kolei ustawia podan wysoko fontu (w pikselach). Np.
./habak -mh 50 -mf ~/.fonts/fajny_font.ttf
wybierze font "fajny_font.ttf" wysokoci 50 pikseli
Jeli nie uyjesz -mh, to uyta zostanie domylna wielko, bodaje 30 pikseli.
ZAPAMITAJ: program przechowuje domylnie list "waciwoci" ktre dotycz
habakw. Waciwoci te moesz zmienia za pomoc modyfikatorw. Habak
w momencie wywoania "wemie" sobie aktualne ustawienia. Do dyspozycji masz
nastpujce modyfikatory:
-mC Modyfikator centrowania. Habaki bd centrowane na ekranie. Wycza
dziaanie ostatnio uytego modyfikatora -mp. Domylnie wczony.
-mp Modyfikator pozycjonowania. Podajesz mu wsprzdne X,Y dla habaka.
Wycza dziaanie ostatnio uytego modyfikatora -mC. Domylnie wyczony
na korzy "-mC"
-mS Modyfikator skalowania z zachowaniem proporcji. Domylnie nieaktywny.
-ms Modyfikator skalowania ktre deformuje proporcje. Domylnie nieaktywny.
-mc Modyfikator koloru R,G,B,A. Standardowo ustawiony na lekko
przezroczyst, brudn biel.
-mf Modyfikator fontu. Podaj mu namiary na jaki plik .ttf. Domylnie
ustawiony na katalog $HOME/.fonts.
-mh Modyfikator wysokoci fontu. Podaj mu podan wysoko fontu w pikselach.
Domylnie ustawiony na 30 pikseli.
*** PRZYKADY *** PRZYKADY *** PRZYKADY *** PRZYKADY *** PRZYKADY ***
Wic zabrne a tutaj. Dobrze :) Oto gar przykadw:
./habak -mf ~/.fonts/deltafont.ttf -mh 15 -mp 0,-0 -mc 240,240,240,200 \
-ht "User $USER on day `date +%Y-%m-%d`"
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 -mC -hi /usr/local/share/backgrounds/lens \
-mf ~/.fonts/deltafont.ttf -mh 15 -mp 0,-0 -mc 240,240,240,200 \
-ht "User $USER on day `date +%Y-%m-%d`"
Teraz na to najpierw zostanie naoony wycentrowany, losowo wybrany obrazek
z katalogu /usr/local/share/backgrounds/lens, a dopiero na niego
wyrenderowany ten tekst. Ale mona to jeszcze bardziej skomplikowa:
./habak -mC -hi /usr/local/share/backgrounds/lens \
-mp 5,-0 -mc 240,240,240,100 -mf ~/.fonts/deltafont.ttf -mh 15 \
-ht "User $USER on day `date +%Y-%m-%d`" \
-mp 0,-5 -mc 240,240,240,255 -ht
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. Zwr uwag, e wykorzystuj tutaj dziedziczenie
opcji - ustawiam tylko raz font i jego wielko, gdy mam wygenerowa drugi
raz ten sam tekst to zmieniam ju tylko jego pooenie i kolor, a -ht
wywouj ju bez argumentu - wic bierze on sobie argument podany
w poprzednim wywoaniu -ht
A na koniec zupenie dowalmy:
./habak -mC -hi ~/gfx/new/ \
-hI int \
-mf ~/.fonts/deltafont.ttf -mh 50 -mC -ht\
-mh 15 -mp 5,-0 -mc 240,240,240,100 \
-ht "User $USER on day `date +%Y-%m-%d`" \
-mp 0,-5 -mc 240,240,240,255 -ht
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). No i dodatkowo pomidzy gwn tapet a przeplotem
wstawiam duym fontem "tekst domylny".
A moe prosty przykad z nakadaniem logo?
./habak -mC -hi ~/utena_4_1024.jpg \
-mp 0,0 -hi ~/logo.png \
-mp 0,-0 -hi \
-mp -0,0 -hi \
-mp -0,-0 -hi \
-mp -15,-15 -hi \
-mp -30,-30 -hi
Najpierw adowane jest wycentrowane to utena_4_1024.jpg. Potem w rogu 0,0
umieszczane jest to moje logo.png. Potem to samo jest robione dla kadego
z naronikw, ale ju sobie uatwiam robot podajc "-hi" bez argumentw. Na
kocu w rogu -0,-0 logo jest jeszcze dwa razy nakadane, ale
z przesuniciemi pitnastu pikseli na osiach X,Y. Wida dobrze, jak
nakadaj si na siebie stopnie przezroczystoci.
Przykad ten mona odrobink uproci, opuszczajc pewne opcje:
./habak ~/utena_4_1024.jpg \
-mp 0,0 ~/logo.png \
-mp 0,-0 -hi \
-mp -0,0 -hi \
-mp -0,-0 -hi \
-mp -15,-15 -hi \
-mp -30,-30 -hi
Opuciem -mC -hi sprzed gwnego obrazka, bo centrowanie jest i tak
domylne a z kontekstu i tak wynika, e chodzi o obraz do zaadowania, wic
Habak sobie poradzi. Tak samo usunem -hi sprzed ~/logo.png.
|