XPenguins(1)
β¨ xpenguins(1) β General Commands Manual β¨
okay bestie, welcome to the xpenguins(1) page from the General Commands Manual. this is the whole vibe, no gatekeeping, and yes we're keeping every single flag. π§π
π NAME π
xpenguins β cute little penguins that walk along the tops of your windows. periodt. π§β¨
πΈ SYNOPSIS πΈ
xpenguins [-option ...]
π¦ DESCRIPTION π¦
XPenguins is a program for animating cute cartoons/animals in your root window. By default it will be penguins β they drop in from the top of the screen, walk along the tops of your windows, up the side of your windows, levitate, skateboard, and do other similarly exciting things. Be careful when you move windows as the little guys squash easily. π
XPenguins is now themeable, so it is easy to select something else to animate instead of penguins, or even (with a little artistic talent) define your own; see the THEMES section below. π
β¨ OPTIONS β¨
okay so real quick, bestie: in all the following cases a double dash can be replaced by a single dash. π
-a,--no-angelsβ Do not show any cherubim flying up to heaven when a toon gets squashed. π-b,--no-bloodβ Do not show any gory death sequences. π-c dir,--config-dir dirβ Look for config files and themes in this directory. The default is usually/usr/share/xpenguins. π-d display,--display displayβ Send the toons to the specified X display. In the absence of this option, the display specified by theDISPLAYenvironment variable is used. π₯οΈ-h,--helpβ Print out a message describing the available options. π«Ά--defaultsβ Skip reading from~/.xpenguinrc. π«--nomenuβ Do not show menu. π--nodoublebufferβ Do not use double buffering. ποΈ--hidemenuβ Iconify menu at startup. ποΈ-i,--theme-infoβ Print out the auxiliary information about a theme and exit. Use the-toption to select the theme to describe. π--random-themeβ Start with a random theme. π²-l,--list-themesβ List the available themes, one on each line, and exit. π-m delay,--delay delayβ Set the delay between each frame in milliseconds. The default is defined by the theme. β±οΈ-n number,--penguins numberβ The number of toons to start, up to a maximum of512. The default is defined by the theme. π’-p,--ignorepopupsβ Toons fall through `popup' windows (those with the save-under attribute set), such as tooltips. Note that this also includes the KDE panel. πͺ-r,--rectwinβ Toons regard all windows as rectangular. This option results in faster calculation of window positions, but if you use one of those fancy new window managers with shaped windows then your toons might sometimes look like they're walking on thin air. π-s,--squishβ Enable the penguins to be squished using any of the mouse buttons. Note that this disables any existing function of the mouse buttons on the root window. π±οΈ--lift numberβ Lift penguins windownumberpixels, e.g. to keep above a panel. β¬οΈ-t theme,--theme themeβ Use the named theme. The default isPenguins. If the theme has spaces in its name then you can use underscores instead, or alternatively just put the name in double quotes. This option can be called multiple times to run several themes simultaneously. π-q,--quietβ Suppress the exit message when an interrupt is received. π€«-v,--versionβ Print out the current version number and quit. π--allβ Load all available themes and run them simultaneously. π--id windowβ Send toons to the window with this ID, instead of the root window or whichever window is appropriate for the current desktop environment. Note that the ID of X clients reported byxwininfois rarely that of the foremost visible window that should be used here. πͺ--nice loadaverage1 loadaverage2β Start killing toons when the 1-min averaged system load exceedsloadaverage1; when it exceedsloadaverage2kill them all. The toons will reappear when the load average comes down. The load is checked every5seconds by looking in/proc/loadavg, so this option only works under unices that implement this particular pseudo file (probably just Linux). When there are no toons on the screen, XPenguins uses only a minuscule amount of CPU time - it just wakes up every5seconds to recheck the load. π»--changelogβ Show ChangeLog. π--selfrepβ Put source in the form of a gzipped tar file on stdout. π¦
π THEMES π
okay bestie, this is the fun part β where the penguins actually come from. β¨
The system themes live in /usr/share/xpenguins/themes, and you can add to them or straight-up override them with your own in $HOME/.xpenguins/themes. Every theme gets its own little subdirectory, and for it to be valid it absolutely must contain a file called config. The theme's name is just the directory name, but β and this is the petty part β because so many install scripts choke on directory names with spaces in them, every space in a theme name shows up as an underscore in the directory name instead. And like, if a directory name does contain spaces? xpenguins cannot access it. periodt. π
Besides the config file, the theme directory holds the toon images that make up the theme, all as xpm image files. You should also have an about file with info on who created the theme, what license it's under, and various other things. This one is mainly for xpenguins_applet, the GNOME applet that lets you pick different themes at the click of a button. π«Ά
π the config file, explained (kinda)
The config file format is pretty straightforward. You can either read this rather terse description, or you can go peek at the config file for the default Penguins theme β usually installed at /usr/share/xpenguins/themes/Penguins/config β which is reasonably well commented. Your choice, bestie. π
First, some terminology, because words matter. Say you've got a Farmyard theme with cows and sheep. The cows and the sheep are types of toon, while all the various things they get up to (walking, mooing, and so on) are called activities. Each activity has its own xpm image file, and the frames of the animation are laid out horizontally in it. Some activities (notably walking) use different images depending on which direction the toon is moving in β in that case, the frames for the two directions are laid out one above the other in the image. π
Just like in shell scripts, comments start with the # character and hide the rest of the line. The format is entirely free, except there's an arbitrary limit of 512 characters on the length of a line. Spaces, tabs and newlines all count equally as white space. Data goes in as a sequence of key/value pairs, all separated by white space. Neither the keys nor the values are case sensitive β except when the value is a filename. πΈ
The following keys are understood:
delaydelay β sets the recommended delay between frames, in milliseconds.toontoon β begins defining a new toon called toon. If there's only one type of toon in the theme, you can just omit this key.numbernumber β sets the default number of toons of the current type to start.defineactivity β begins defining an activity for the current toon. The activities currently understood arewalker,faller,tumbler,climber,floater,runner,explosion,squashed,zapped,splatted,angel,exitandaction?, where?is a number between 0 and 6. Once you've seen the program in action you should be able to guess which is which, iykyk. A valid theme must contain at least walkers and fallers. On top of that, you may define a default activity (withdefine default) β any properties (such as width and speed) set there are then adopted by the activities defined from then on, if they don't themselves explicitly define those properties.
After an activity has been declared with define, these properties may be assigned:
pixmapxpmfile β the file containing the image data for the activity. Heads up: you may not set a default pixmap. π«widthwidth β the width of each frame of the animation, in pixels.heightheight β the height of each frame of the animation, in pixels.framesframes β the number of frames in the animation.directionsdirections β the number of directions for the activity (can be1or2).speedspeed β the initial speed of the toon when engaged in this activity, in pixels per frame.accelerationacceleration β the rate at which the speed increases, in pixels per frame squared. This property is not utilised by all activities.terminal_velocityterminal_velocity β the maximum speed in pixels per frame. Again, not utilised by all activities.looploop β only understood by the actions; indicates how many times to repeat the action. If negative, then the probability of stopping the action every time the action is complete is-1/loop.
π©Έ a few notes about the activities
If you're designing a new theme, feel free to make the splatted, squashed, zapped and exit animations as gory and bloody as you like, but please keep the explosion activity nice and tame β that way, those of a nervous disposition can employ the --no-blood option, which replaces all these violent deaths with a tasteful explosion that wouldn't offend your grandmother. ππ
xpm image files are a factor of two smaller if you can limit the number of colours in the image such that only one character needs to be used to represent each colour β and bonus, this also makes XPenguins start up much more rapidly. Rarely are more than 64 colours required. β¨
π and now, the about file
So that's about it for the config file. Now for the about file β it's very simple. Again, comments are initialised by a #. An entry consists of a key at the start of a line, followed by the corresponding value, which is read up to the next newline. The following keys are understood, although none of them are compulsory:
artistβ used to list the artist(s) who created the original images.maintainerβ the person who compiled the images into an XPenguins theme. It's useful if an email address can also be provided.dateβ the date when the theme was last modified. My preferred format is day of the month, name of the month in english, full year. For example:24 April 2001.iconβ the name of an image file that can be used as an icon for the theme; XPM and PNG are suitable formats.licenseβ the name of the license under which the theme is distributed (e.g.GPL).copyrightβ the year and holder of the copyright.commentβ any other essential information, such as the theme's web site, as brief as possible.
Please test anyaboutfiles you create by looking at how the information is displayed by thexpenguins_appletprogram. π§
π AUTHOR
Robin Hogan <R.J.Hogan@reading.ac.uk>.
π CREDITS
Inspiration provided by Rick Jansen <rick@sara.nl> in the form of the classic xsnow. Most penguin images were taken from Pingus, a free lemmings clone that can be found at <http://pingus.seul.org/>; these images were designed by Joel Fauche <joel.fauche@wanadoo.fr> and Craig Timpany <timpany@es.co.nz>. Additional images in version 2 by Rob Gietema <tycoon@planetdescent.com> and Robin Hogan.
β NOTES
XPenguins can load an X server and/or network (although the CPU time used is small), and if a large number of penguins are spawned then they may begin to flicker, depending on the speed of the X server. π«
The xpenguins homepage is located at:
- version
< 3.0:http://xpenguins.seul.org/ - version
>= 3.0:https://www.ratrabbit.nl/ratrabbit/software/xpenguinsandhttps://sourceforge.net/projects/xpenguins/
π BUGS
- If there are icons drawn on the root window then the toons will erase them when they walk over them, although an expose event will be sent to the window every second to redraw them. π
- Since version 3.0, xpenguins uses, if possible, a transparent, click-through window to draw it's toons. The
--squishflag does not function in this mode. - The behaviour of the menu is not well defined when the same theme name is used more than once.
π FILES
- User defined themes:
$HOME/.xpenguins/themes/* - System themes:
/usr/share/xpenguins/themes/* - Remember used flags:
$HOME/.xpenguinsrc /proc/loadavg
π¦ SEE ALSO
xsnow(6), xroach(1), xwininfo(1), pingus(6)
okay bestie that's the whole page π this was XPenguins 3.2.4, dated January 2026, living its life as XPenguins(1) in the manual pages. go forth and theme responsibly, no cap. π§β¨π
π¦ where this page comes from
- fedora 43: xpenguins 3.2.4-1.fc43 Β· GPL-2.0-or-later
- fedora 44: xpenguins 3.2.4-1.fc44 Β· GPL-2.0-or-later
- ubuntu resolute: xpenguins 3.2.4-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms