File: README

package info (click to toggle)
habak 0.2.5-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny
  • size: 160 kB
  • ctags: 110
  • sloc: ansic: 726; makefile: 67
file content (329 lines) | stat: -rw-r--r-- 13,656 bytes parent folder | download
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.