version 1, including all changes.
.
Rev |
Author |
# |
Line |
1 |
perry |
1 |
XPenguins |
|
|
2 |
!!!XPenguins |
|
|
3 |
NAME |
|
|
4 |
SYNOPSIS |
|
|
5 |
DESCRIPTION |
|
|
6 |
OPTIONS |
|
|
7 |
THEMES |
|
|
8 |
AUTHOR |
|
|
9 |
CREDITS |
|
|
10 |
NOTES |
|
|
11 |
BUGS |
|
|
12 |
FILES |
|
|
13 |
SEE ALSO |
|
|
14 |
---- |
|
|
15 |
!!NAME |
|
|
16 |
|
|
|
17 |
|
|
|
18 |
xpenguins - cute little penguins that walk along the tops of your windows |
|
|
19 |
!!SYNOPSIS |
|
|
20 |
|
|
|
21 |
|
|
|
22 |
__xpenguins__ [[-option ...] |
|
|
23 |
!!DESCRIPTION |
|
|
24 |
|
|
|
25 |
|
|
|
26 |
''XPenguins'' is a program for animating cute |
|
|
27 |
cartoons/animals in your root window. By default it will be |
|
|
28 |
penguins - they drop in from the top of the screen, walk |
|
|
29 |
along the tops of your windows, up the side of your windows, |
|
|
30 |
levitate, skateboard, and do other similarly exciting |
|
|
31 |
things. Be careful when you move windows as the little guys |
|
|
32 |
squash easily. If you send the program an interupt signal |
|
|
33 |
(such as by hitting Ctrl-C) they will burst. |
|
|
34 |
''XPenguins'' is now themeable, so it is easy to select |
|
|
35 |
something else to animate instead of penguins, or even (with |
|
|
36 |
a little artistic talent) define your own; see the |
|
|
37 |
__THEMES__ section below. |
|
|
38 |
!!OPTIONS |
|
|
39 |
|
|
|
40 |
|
|
|
41 |
In all the following cases a double dash can be replaced by |
|
|
42 |
a single dash. |
|
|
43 |
|
|
|
44 |
|
|
|
45 |
__-a, --no-angels__ |
|
|
46 |
|
|
|
47 |
|
|
|
48 |
Do not show any cherubim flying up to heaven when a toon |
|
|
49 |
gets squashed. |
|
|
50 |
|
|
|
51 |
|
|
|
52 |
__-b, --no-blood__ |
|
|
53 |
|
|
|
54 |
|
|
|
55 |
Do not show any gory death sequences. |
|
|
56 |
|
|
|
57 |
|
|
|
58 |
__-c__ ''dir''__, --config-dir__ |
|
|
59 |
''dir'' |
|
|
60 |
|
|
|
61 |
|
|
|
62 |
Look for config files and themes in this directory. The |
|
|
63 |
default is usually ''/usr/share/xpenguins''. |
|
|
64 |
|
|
|
65 |
|
|
|
66 |
__-d__ ''display''__, --display__ |
|
|
67 |
''display'' |
|
|
68 |
|
|
|
69 |
|
|
|
70 |
Send the toons to the specified X display. In the absence of |
|
|
71 |
this option, the display specified by the __DISPLAY__ |
|
|
72 |
environment variable is used. |
|
|
73 |
|
|
|
74 |
|
|
|
75 |
__-h, --help__ |
|
|
76 |
|
|
|
77 |
|
|
|
78 |
Print out a message describing the available |
|
|
79 |
options. |
|
|
80 |
|
|
|
81 |
|
|
|
82 |
__-i, --theme-info__ |
|
|
83 |
|
|
|
84 |
|
|
|
85 |
Print out the auxiliary information about a theme and exit. |
|
|
86 |
Use the __-t__ option to select the theme to |
|
|
87 |
describe. |
|
|
88 |
|
|
|
89 |
|
|
|
90 |
__-l, --list-themes__ |
|
|
91 |
|
|
|
92 |
|
|
|
93 |
List the available themes, one on each line, and |
|
|
94 |
exit. |
|
|
95 |
|
|
|
96 |
|
|
|
97 |
__-m__ ''delay''__, --delay__ |
|
|
98 |
''delay'' |
|
|
99 |
|
|
|
100 |
|
|
|
101 |
Set the delay between each frame in milliseconds. The |
|
|
102 |
default is defined by the theme. |
|
|
103 |
|
|
|
104 |
|
|
|
105 |
__-n__ ''number''__, --penguins__ |
|
|
106 |
''number'' |
|
|
107 |
|
|
|
108 |
|
|
|
109 |
The number of toons to start, up to a maximum of 256. The |
|
|
110 |
default is defined by the theme. |
|
|
111 |
|
|
|
112 |
|
|
|
113 |
__-p, --ignorepopups__ |
|
|
114 |
|
|
|
115 |
|
|
|
116 |
Toons fall through `popup' windows (those with the |
|
|
117 |
save-under attribute set), such as tooltips. Note that this |
|
|
118 |
also includes the KDE panel. |
|
|
119 |
|
|
|
120 |
|
|
|
121 |
__-r, --rectwin__ |
|
|
122 |
|
|
|
123 |
|
|
|
124 |
Toons regard all windows as rectangular. This option results |
|
|
125 |
in faster calculation of window positions, but if you use |
|
|
126 |
one of those fancy new window managers with shaped windows |
|
|
127 |
then your toons might sometimes look like they're walking on |
|
|
128 |
thin air. |
|
|
129 |
|
|
|
130 |
|
|
|
131 |
__-s, --squish__ |
|
|
132 |
|
|
|
133 |
|
|
|
134 |
Enable the penguins to be squished using any of the mouse |
|
|
135 |
buttons. Note that this disables any existing function of |
|
|
136 |
the mouse buttons on the root window. |
|
|
137 |
|
|
|
138 |
|
|
|
139 |
__-t__ ''theme''__, --theme__ |
|
|
140 |
''theme'' |
|
|
141 |
|
|
|
142 |
|
|
|
143 |
Use the named theme. The default is __Penguins__. If the |
|
|
144 |
theme has spaces in its name then you can use underscores |
|
|
145 |
instead, or alternatively just put the name in double |
|
|
146 |
quotes. This option can be called multiple times to run |
|
|
147 |
several themes simultaneously. |
|
|
148 |
|
|
|
149 |
|
|
|
150 |
__-q, --quiet__ |
|
|
151 |
|
|
|
152 |
|
|
|
153 |
Suppress the exit message when an interupt is |
|
|
154 |
received. |
|
|
155 |
|
|
|
156 |
|
|
|
157 |
__-v, --version__ |
|
|
158 |
|
|
|
159 |
|
|
|
160 |
Print out the current version number and quit. |
|
|
161 |
|
|
|
162 |
|
|
|
163 |
__--all__ |
|
|
164 |
|
|
|
165 |
|
|
|
166 |
Load all available themes and run them |
|
|
167 |
simultaneously. |
|
|
168 |
|
|
|
169 |
|
|
|
170 |
__--id__ ''window'' |
|
|
171 |
|
|
|
172 |
|
|
|
173 |
Send toons to the window with this ID, instead of the root |
|
|
174 |
window or whichever window is appropriate for the current |
|
|
175 |
desktop environment. Note that the ID of X clients reported |
|
|
176 |
by ''xwininfo'' is rarely that of the foremost visible |
|
|
177 |
window that should be used here. |
|
|
178 |
|
|
|
179 |
|
|
|
180 |
__--nice__ ''loadaverage1 loadaverage2'' |
|
|
181 |
|
|
|
182 |
|
|
|
183 |
Start killing toons when the 1-min averaged system load |
|
|
184 |
exceeds ''loadaverage1''; when it exceeds |
|
|
185 |
''loadaverage2'' kill them all. The toons will reappear |
|
|
186 |
when the load average comes down. The load is checked every |
|
|
187 |
5 seconds by looking in ''/proc/loadavg'', so this option |
|
|
188 |
only works under unices that implement this particular |
|
|
189 |
pseudo file (probably just Linux). When there are no toons |
|
|
190 |
on the screen, ''XPenguins'' uses only a miniscule amount |
|
|
191 |
of CPU time - it just wakes up every 5 seconds to recheck |
|
|
192 |
the load. |
|
|
193 |
!!THEMES |
|
|
194 |
|
|
|
195 |
|
|
|
196 |
The system themes are usually kept in |
|
|
197 |
''/usr/share/xpenguins/themes'', and these can be |
|
|
198 |
augmented or overridden by the user's themes in |
|
|
199 |
''$HOME/.xpenguins/themes''. Each theme has its own |
|
|
200 |
subdirectory which to be valid must contain a file called |
|
|
201 |
''config''. The name of the theme is taken from the |
|
|
202 |
directory name, although because many install scripts choke |
|
|
203 |
on directory names containing spaces, all spaces in a theme |
|
|
204 |
name are represented in the directory name by underscores. |
|
|
205 |
Any directory name containing spaces is inaccessible by |
|
|
206 |
''xpenguins''. |
|
|
207 |
|
|
|
208 |
|
|
|
209 |
In addition to the ''config'' file, the theme directory |
|
|
210 |
contains the toon images that make up the theme in the form |
|
|
211 |
of ''xpm image files''. Additionally, there should be an |
|
|
212 |
''about'' file which gives information on the creator of |
|
|
213 |
the theme, the license under which it is distributed and |
|
|
214 |
various other things. This file is principally for use by |
|
|
215 |
''xpenguins_applet'', an applet for ''GNOME'' that |
|
|
216 |
allows different themes to be selected at the click of a |
|
|
217 |
button. |
|
|
218 |
|
|
|
219 |
|
|
|
220 |
The ''config'' file has a reasonably straightforward |
|
|
221 |
format. You can either read this rather terse description of |
|
|
222 |
it or you can have a look at the config file for the default |
|
|
223 |
__Penguins__ theme, which is usually installed at |
|
|
224 |
''/usr/share/xpenguins/themes/Penguins/config'', and is |
|
|
225 |
reasonably well commented. We'll first establish some simple |
|
|
226 |
terminology. Say you have a Farmyard theme with cows and |
|
|
227 |
sheep. The cows and sheep are types of __toon__, while |
|
|
228 |
the various things they get up to (walking, mooing and so |
|
|
229 |
on) are termed __activities__. Each __activity__ has |
|
|
230 |
its own ''xpm image file'', in which the __frames__ of |
|
|
231 |
the animation are laid out horizontally. Some activities |
|
|
232 |
(notably walking) use different images depending on the |
|
|
233 |
__direction__ the toon is moving in. In this case the |
|
|
234 |
frames for the two directions are laid out one above the |
|
|
235 |
other in the image. |
|
|
236 |
|
|
|
237 |
|
|
|
238 |
As in shell scripts, comments are initiated with the |
|
|
239 |
__#__ character and hide the remainder of the line. The |
|
|
240 |
format is entirely free except that there is an arbitrary |
|
|
241 |
limit on the length of a line of 512 characters. Spaces, |
|
|
242 |
tabs and newlines all count equally as white space. Data is |
|
|
243 |
entered as a sequence of __key value__ pairs, all |
|
|
244 |
separated by white space. Neither the __keys__ nor the |
|
|
245 |
__values__ are case sensitive, except where the |
|
|
246 |
__value__ is a filename. The following __keys__ are |
|
|
247 |
understood: |
|
|
248 |
|
|
|
249 |
|
|
|
250 |
__delay__ ''delay'' |
|
|
251 |
|
|
|
252 |
|
|
|
253 |
Set the recommended delay between frames in |
|
|
254 |
milliseconds. |
|
|
255 |
|
|
|
256 |
|
|
|
257 |
__toon__ ''toon'' |
|
|
258 |
|
|
|
259 |
|
|
|
260 |
Begin defining a new toon called ''toon''. If only one |
|
|
261 |
type of toon is present in the theme then this key may be |
|
|
262 |
omitted. |
|
|
263 |
|
|
|
264 |
|
|
|
265 |
__number__ ''number'' |
|
|
266 |
|
|
|
267 |
|
|
|
268 |
Set the default number of toons of the current type to |
|
|
269 |
start. |
|
|
270 |
|
|
|
271 |
|
|
|
272 |
__define__ ''activity'' |
|
|
273 |
|
|
|
274 |
|
|
|
275 |
Begin defining an ''activity'' for the current toon. The |
|
|
276 |
currently understood activities are __walker__, |
|
|
277 |
__faller__, __tumbler__, __climber__, |
|
|
278 |
__floater__, __runner__, __explosion__, |
|
|
279 |
__squashed__, __zapped__, __splatted__, |
|
|
280 |
__angel__, __exit__ and __action?__, where __?__ |
|
|
281 |
is a number between __0__ and __6__. Once you've seen |
|
|
282 |
the program in action you should be able to guess which is |
|
|
283 |
which. A valid theme must contain at least __walkers__ |
|
|
284 |
and __fallers__. Additionally, you may define a default |
|
|
285 |
activity (with __define default__); any properties (such |
|
|
286 |
as __width__ and __speed__) set here are then adopted |
|
|
287 |
by the activities defined from then on, if they do not |
|
|
288 |
themselves explicitly define those properties. After an |
|
|
289 |
activity has been declared with __define__, the following |
|
|
290 |
properties may be assigned: |
|
|
291 |
|
|
|
292 |
|
|
|
293 |
__pixmap__ ''xpmfile'' |
|
|
294 |
|
|
|
295 |
|
|
|
296 |
The file containing the image data for the activity. Note |
|
|
297 |
that you may not set a __default__ pixmap. |
|
|
298 |
|
|
|
299 |
|
|
|
300 |
__width__ ''width'' |
|
|
301 |
|
|
|
302 |
|
|
|
303 |
The width of each frame of the animation in |
|
|
304 |
pixels. |
|
|
305 |
|
|
|
306 |
|
|
|
307 |
__height__ ''height'' |
|
|
308 |
|
|
|
309 |
|
|
|
310 |
The height of each frame of the animation in |
|
|
311 |
pixels. |
|
|
312 |
|
|
|
313 |
|
|
|
314 |
__frames__ ''frames'' |
|
|
315 |
|
|
|
316 |
|
|
|
317 |
The number of frames in the animation. |
|
|
318 |
|
|
|
319 |
|
|
|
320 |
__directions__ ''directions'' |
|
|
321 |
|
|
|
322 |
|
|
|
323 |
The number of directions for the activity (can be 1 or |
|
|
324 |
2). |
|
|
325 |
|
|
|
326 |
|
|
|
327 |
__speed__ ''speed'' |
|
|
328 |
|
|
|
329 |
|
|
|
330 |
The initial speed of the toon when engaged in this activity, |
|
|
331 |
in pixels per frame. |
|
|
332 |
|
|
|
333 |
|
|
|
334 |
__acceleration__ ''acceleration'' |
|
|
335 |
|
|
|
336 |
|
|
|
337 |
The rate at which the speed increases, in pixels per frame |
|
|
338 |
squared. This property is not utilised by all |
|
|
339 |
activities. |
|
|
340 |
|
|
|
341 |
|
|
|
342 |
__terminal_velocity__ |
|
|
343 |
''terminal_velocity'' |
|
|
344 |
|
|
|
345 |
|
|
|
346 |
The maximum speed in pixels per frame, again not utilised by |
|
|
347 |
all activities. |
|
|
348 |
|
|
|
349 |
|
|
|
350 |
__loop__ ''loop'' |
|
|
351 |
|
|
|
352 |
|
|
|
353 |
Only understood by the __actions__; indicates how many |
|
|
354 |
times to repeat the action. If negative, then the probility |
|
|
355 |
of stopping the action every time the action is complete is |
|
|
356 |
-1/''loop''. |
|
|
357 |
|
|
|
358 |
|
|
|
359 |
Some notes regarding the various activities. If you design a |
|
|
360 |
new theme, feel free to make the __splatted__, |
|
|
361 |
__squashed__, __zapped__ and __exit__ animations as |
|
|
362 |
gory and bloody as you like, but please keep the |
|
|
363 |
__explosion__ activity nice and tame; that way those of a |
|
|
364 |
nervous disposition can employ the __--no-blood__ option |
|
|
365 |
which replaces all these violent deaths with a tasteful |
|
|
366 |
explosion that wouldn't offend your grandmother. Xpm images |
|
|
367 |
files are a factor of two smaller if you can limit the |
|
|
368 |
number of colours in the image such that only one character |
|
|
369 |
need be used to represent each colour; this also makes |
|
|
370 |
''XPenguins'' start up much more rapidly. Rarely are more |
|
|
371 |
than 64 colours required. |
|
|
372 |
|
|
|
373 |
|
|
|
374 |
So that's about it for the ''config'' file, now for the |
|
|
375 |
''about'' file. This is very simple. Again comments are |
|
|
376 |
initialised by a __#__. An entry consists of a __key__ |
|
|
377 |
at the start of a line, followed by the corresponding |
|
|
378 |
__value__ which is read up to the next newline. The |
|
|
379 |
following __keys__ are understood, although none are |
|
|
380 |
compulsory. |
|
|
381 |
|
|
|
382 |
|
|
|
383 |
__artist__ |
|
|
384 |
|
|
|
385 |
|
|
|
386 |
Used to list the artist(s) who created the original |
|
|
387 |
images. |
|
|
388 |
|
|
|
389 |
|
|
|
390 |
__maintainer__ |
|
|
391 |
|
|
|
392 |
|
|
|
393 |
The person who compiled the images into an ''XPenguins'' |
|
|
394 |
theme. It is useful if an email address can also be |
|
|
395 |
provided. |
|
|
396 |
|
|
|
397 |
|
|
|
398 |
__date__ |
|
|
399 |
|
|
|
400 |
|
|
|
401 |
The date when the theme was last modified. My preferred |
|
|
402 |
format is ''day of the month'', ''name of the month in |
|
|
403 |
english'', ''full year''. For example: 24 April |
|
|
404 |
2001. |
|
|
405 |
|
|
|
406 |
|
|
|
407 |
__icon__ |
|
|
408 |
|
|
|
409 |
|
|
|
410 |
The name of an image file that can be used as an icon for |
|
|
411 |
the theme; XPM and PNG are suitable formats. |
|
|
412 |
|
|
|
413 |
|
|
|
414 |
__license__ |
|
|
415 |
|
|
|
416 |
|
|
|
417 |
The name of the license under which the theme is distributed |
|
|
418 |
(e.g. GPL). |
|
|
419 |
|
|
|
420 |
|
|
|
421 |
__copyright__ |
|
|
422 |
|
|
|
423 |
|
|
|
424 |
The year and holder of the copyright. |
|
|
425 |
|
|
|
426 |
|
|
|
427 |
__comment__ |
|
|
428 |
|
|
|
429 |
|
|
|
430 |
Any other essential information, such as the theme's web |
|
|
431 |
site, as brief as possible. |
|
|
432 |
|
|
|
433 |
|
|
|
434 |
Please test any ''about'' files you create by looking at |
|
|
435 |
how the information is displayed by the |
|
|
436 |
''xpenguins_applet'' program. |
|
|
437 |
!!AUTHOR |
|
|
438 |
|
|
|
439 |
|
|
|
440 |
Robin Hogan |
|
|
441 |
!!CREDITS |
|
|
442 |
|
|
|
443 |
|
|
|
444 |
Inspiration provided by Rick Jansen |
|
|
445 |
xsnow''. Most penguin images |
|
|
446 |
were taken from ''Pingus'', a free lemmings clone that |
|
|
447 |
can be found at |
|
|
448 |
'' |
|
|
449 |
!!NOTES |
|
|
450 |
|
|
|
451 |
|
|
|
452 |
''XPenguins'' can load an X server and/or network |
|
|
453 |
(although the CPU time used is small), and if a large number |
|
|
454 |
of penguins are spawned then they may begin to flicker, |
|
|
455 |
depending on the speed of the X server. |
|
|
456 |
|
|
|
457 |
|
|
|
458 |
The ''xpenguins'' homepage is located at: |
|
|
459 |
|
|
|
460 |
|
|
|
461 |
http://xpenguins.seul.org/ |
|
|
462 |
!!BUGS |
|
|
463 |
|
|
|
464 |
|
|
|
465 |
A new feature since version 2.1 is the ability to draw to |
|
|
466 |
windows other than the root window in situations where the |
|
|
467 |
window manager or desktop environment places a large window |
|
|
468 |
over the root window that would otherwise obscure the toons. |
|
|
469 |
Currently ''XPenguins'' can draw to the KDE Desktop (KDE |
|
|
470 |
2.0 and 2.1), Enlightenment desktops greater than 0 (E16), |
|
|
471 |
the Nautilus desktop and the virtual root window of certain |
|
|
472 |
window managers like amiwm. Of course, simpler window |
|
|
473 |
managers that don't mess around like this will still work |
|
|
474 |
(sawfish, blackbox and countless others). It cannot work |
|
|
475 |
with CDE and probably never will. Future versions of KDE, |
|
|
476 |
Enlightenment and Nautilus may not work; the classic symptom |
|
|
477 |
of this is that ''XPenguins'' sits there as if it's doing |
|
|
478 |
something, but no toons are visible. If this happens, try |
|
|
479 |
running the program with one of the simpler window manager |
|
|
480 |
listed above, or visit the ''XPenguins'' web site and |
|
|
481 |
download the latest version. If there are icons drawn on the |
|
|
482 |
root window then the toons will erase them when they walk |
|
|
483 |
over them, although an expose event will be sent to the |
|
|
484 |
window every 100 frames to redraw them. |
|
|
485 |
!!FILES |
|
|
486 |
|
|
|
487 |
|
|
|
488 |
$HOME/.xpenguins/themes/* |
|
|
489 |
/usr/share/xpenguins/themes/* |
|
|
490 |
/proc/loadavg |
|
|
491 |
!!SEE ALSO |
|
|
492 |
|
|
|
493 |
|
|
|
494 |
xsnow(1), xroach(1), xwininfo(1) pingus(6) |
|
|
495 |
---- |