A zone program displaying the infamous nyan cat animation. Best viewed in a graphical Emacs instance with SVG support.
M-x zone-nyan-preview for a preview (yes, zone doesn't have a
preview command for checking out its programs). If you're sure you
want zone to only use this zone program, add
[zone-nyan]) to your init file and use either
M-x zone for
instant gratification or
M-x zone-when-idle after loading
zone.el for a screensaver.
Graphical instances use SVG rendering and textual instances ANSI color
escapes on a 256 color palette. You can alternatively make the GUI
render text by customizing
zone-nyan-gui-type and the terminal
render ASCII art by customizing
There's also sound support. Customize
to the CLI music player of your choice and
to a list of additional arguments. Assuming you're using
and have downloaded the original music, insert the following in
your init file:
(setq zone-nyan-bg-music-program "mplayer" zone-nyan-bg-music-args `("-loop" "0" ,(expand-file-name "~/Downloads/original.mp3")))
If you find bugs, have suggestions or any other problems, feel free to
report an issue on the issue tracker or hit me up on IRC, I'm always on
#emacs. Patches are welcome, too, just fork, work on a separate
branch and open a pull request with it.
Q: Why is there an initial delay?
A: Emacs has an image cache. The first 12 frames are unique, the subsequent ones are served from the image cache (until a resize change happens). You shouldn't see this though unless you're on a slow computer or are not using the byte-compiled file.
Q: Will there be a widescreen version?
A: I've actually tried out doing such a thing by placing nyan cat centered, filling the entire background with indigo and extending the rainbow all the way to the left. I couldn't figure out a good way to generate the stars though that would both look good and loop, so I've dropped support for that version. Please contact me if you've got an idea how to do better.
Q: I've found an error, but all Emacs says is that you were zoning out when writing zone-nyan...
A: I don't know why, but zone bypasses regular Emacs error handling
and displays an useless message instead. Use
M-: (zone-nyan-image 0) and paste
the resulting Backtrace on Gist. In the
unlikely case that this doesn't yield a backtrace, switch to a buffer
you don't mind losing and use
M-: (zone-nyan) in it. Then open a
new bug report with a link to the backtrace plus further information
on your Emacs build, operating system, origin and version of