git clone https://depp.brause.cc/zone-nyan.git
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
M-x zone-when-idle after loading
zone.el for a
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
the CLI music player of your choice and
zone-nyan-bg-music-args to a
list of additional arguments. Assuming you're using
have downloaded the original music, insert the following in your
(setq zone-nyan-bg-music-program "mplayer" zone-nyan-bg-music-args `("-loop" "0" ,(expand-file-name "~/Downloads/original.mp3")))
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 zone-nyan.