January 21, 2014

A Collection of Secret Linux Humor

Who says Linux nerds can't be funny? Enjoy this collection of amusing man pages and prank programs.

fig-1

Oneko the Cute Cursor-Chasing Kitty

oneko launches a tiny kitty cat that chases your mouse cursor. oneko has a number of options: -towindow makes the kitty climb to the top of the active window. -name [name] gives the kitty a name, like Spot. Then you can launch a second kitty to chase Spot:

$ oneko -name Spot
$ oneko -toname Spot

Other options include -tora for tiger stripes, -dog-sakura to run Sakura Kinomoto instead of a cat, and -tomoyo for Tomoyo Daidouji. Whoever they are.

xmoontool - Moon For The Sun / Werewolf Early Warning System

XMoontool is a fun antique program that still runs on modern Linux systems. The original moontool was written by John Walker (founder of Autodesk and co-author of AutoCAD) in 1987 for the SunView windowing system for SunOS. Then Ron Hitchens did some work on it, and in "September 1993- reported to Motif (as God intended) by Cary Sandvig", which meant it could run on X11. This history is in the source code, in xmontool.c.

The current version, 3.0.3, dates back to 2006, and its age shows in jaggedy fonts and non-standard installation directories. It's a source build so you will need a build environment (the build-essential package on Debian/Ubuntu/etc.) You'll also need libXt-dev and libnova-dev. Run make and make install from the source directory, and both the executable and man page install into /usr/X11R6/ directory. What /usr/X11R6/ directory, you ask? The one that the xmoontool installer will create for itself, because that was reserved for X Window System, Version 11 Release 6 which is so obsolete it's mummy dust.

Ron Hitchens wrote the man page which contains gems like the title, and these wise words of advice:

"...it displays a graphical representation of what the moon would look like right now if you were to go outside and look at it. (Go on, try it, the fresh air may do you some good)...For those who are lycanthropically inclined, the open window tells you when the next full moon will occur. This may or may not be something you'll want to know."

fig-2-xmoontool

xmoontools shows its age in its jaggedy fonts and tiny low-res moon image. Mr. Hitchens was kind enough to share some tips for anyone who wants to update and modernize it. When you examine the source files you won't find any moon pictures because the icon images are bitmaps that were written out as ASCII numbers, and then compiled into the C source code.

"The imagery was not intended to be re-scalable, it was designed specifically for the 64x64 icon size. If I remember correctly, the code basically calculates where the shadow should fall on the image, then copies pixels one-by-one from the moon image, setting the ones in shadow to black (or dark blue for color) in the copy. If one were to make a more modern version, you'd probably build a mask and layer that over the image instead (in those days, we had exactly on bit per pixel on screen). It should be fairly easy to scale the calculations to compute the shadow for any sized image.

"If you really want to modernize it, I'd suggest starting with a more modern UI toolkit and new, higher resolution moon images. Once all the X Windows or SunWindows code is separated out, the remainder basically boils down to deciding how much of the moon to show. There are many ways to do that. The code in moontool/xmoontool is quite primitive because in those days we didn't have a lot of pixels or memory to work with, or many useful image manipulation libraries, so we had to fondle the bits ourselves."

If you decide to try this, please let us know the results in the comments.

Silly Man Pages

While we're on the subject of humorous man pages, try the funny-manpages and asr-manpages packages. asr-manpages were collected from the old Usenet group alt.sysadmin.recovery. Which still exists, by the way, on Usenet and Google Groups. You'll probably think that a lot of these are just plain dumb, but hopefully you'll find some chuckles, and maybe get inspired to write your own silly man page. funny-manpages contains these joke man pages:

man 1fun date
man 1fun echo
man 1fun gong
man 1fun grope
man 1fun party
man 1fun rescrog
man 1fun rtfm
man 1fun rm
man 1fun tm
man 1fun xkill
man 1fun baby
man 1fun celibacy
man 1fun flog
man 1fun uubp
man 1fun condom
man 1fun flame
man 1fun xlart
man 6fun sex
man 3fun strfry
man 1fun egrope
man 1fun fgrope

asr-manpages has these:

man 8fun guru
man 8fun nuke
man 8fun bosskill
man 8fun knife
man 8fun pmsd
man 8fun ctluser
man 8fun luser
man 2fun people
man 1fun lart
man 1fun c
man 1fun slave
man 1fun sysadmin
man 1fun think
man 1fun whack
man 3fun chastise
man 8fun axe
man 8fun chainsaw
man 8fun cutter

fig-3-software-failure-2

None of these are real commands; they're just joke man pages, which is why they're set apart with the special section names. What, you say, you didn't know that man pages have section names? Indeed they do, because all the man pages on your Linux system are part of a single giant manual. There are eleven sections, and it is good to know this because many commands have multiple man pages in the different sections, so you need to specify the section to get the one you want. More rarely they're two different commands, like man 1 apt and man 8 apt. Read man 1 man to learn all about finding, reading, and formatting man pages, and man 7 man to learn how to write a man page.

BSOD Screensaver

The BSOD screensaver, which is part of Xscreensaver, still makes me do a doubletake even when I know it's running. It displays kernel panic and scary warning messages from all kinds of operating systems: Windows, Linux, Atari, Mac, Apple, Solaris, and many more (figure 3). It's very configurable and lets you choose the operating systems, duration of each screen, and various color effects.

xjokes Messes With Your Screen

xjokes is a harmless collection of pranks that flash on your screen and then disappear. xjokes includes four commands: yasiti, blackhole, mori1, and mori2mori1 and mori2 are especially alarming, because they cover your screen with images of a girl winking at you (figure 4).

blackhole briefly blanks the screen, and yasiti looks like a little four-toothed spinning blade in the center of the screen. If you're not into pranks you could use these as reminders to get up and take a break by creating cron jobs to run them at scheduled intervals, like this example that runs mori2 every hour during work hours on weekdays:

$ crontab -e
# m h    dom mon dow   command
  0 8-17 *   *   1-5   /usr/games/mori2

If you want to get creative you can hack the source code and use your own images. The source code is simple, so you can easily find all references to the image files and change them to your own image. Then recompile and see how it looks.

fig-4-xjokes-2

Click Here!