Nyan Mode - Turn your Emacs into Nyanmacs! :)
WARNING, MIND DUMBING CONTENT INSIDE.
“Nyan-mode. It’s things like this that make me proud to be an emacs user.” - mitchellh
“Everything that’s wrong (or right) with Emacs.” - wasamasa
Nyanmacs is expanding!! Read the story so far! :).
Nyan Mode is an analog indicator of your position in the buffer. The Cat should go from left to right in your mode-line, as you move your point from 0% to 100%.
Features
- NEW! You can scroll the buffer by clicking in the Nyan Cat area!
- NEW! You can customize the minimum window width below which Nyan Mode will be disabled.
- Mind dumbing content included,
- Animation (
M-x nyan-start-animation
,M-x nyan-stop-animation
), - Wavy rainbow (
M-x nyan-toggle-wavy-trail
), - Music, mplayer is needed (
M-x nyan-start-music
,M-x nyan-stop-music
) (thanks, George Leontiev!), - Customizable properties.
Customizations
nyan-animate-nyancat
-t
to have it animated,nil
for a static version.nyan-animation-frame-interval
- number of seconds between animation frames. Accepts fractional values.nyan-bar-length
- length of nyan-mode bar, in 8px-wide units.nyan-cat-face-number
- choose a cat face for the console mode.nyan-wavy-trail
-t
to make the trail wavy; works even better when animation is enabled!nyan-minimum-window-width
- minimum width of the window, below which Nyan Mode will be disabled. This is important because Nyan Mode will otherwise push out more relevant information from the modelilne.
Using Nyan Mode with custom modeline
For those who were asking, or are planning to, Amit Patel shared some tips on how to make nyan-mode work with custom modeline.
He changed his mode-line-format to appear like the following:
(setq mode-line-format
(list
'(:eval (list (nyan-create)))
))
Known issues
It’s my second attempt to write a minor mode in Emacs, so there will definiely be some bugs.
This version uses XPM images, which should be supported by default by most Emacs 23 installations, Windows included. In case it doesn’t work, try switching to master-png branch. This branch, however, may have it’s own issues:
There was a problem with displaying PNG images, which require libpng
to be available for Emacs. The lib is sometimes missing (e.g. some
Windows installation). To make it work on Windows, one needs to
download a proper DLL and put it into emacs bin/ folder. To see which
DLL is needed, do: M-x describe-variable <ret> image-library-alist <ret>
.
Customizing nyan-animate-nyancat is broken; don’t do it.
I think it works now; please report issues if there are problems with it.
Code is messy and in dire need of cleanup.
It’s been reported to happen that nyan mode gets duplicated when you activate it twice during Emacs initialization. I’m investigating this and will hopefully track it down and fix it soon.
Credits
Thanks to everyone contributing patches, bug repots and ideas! The Emacs world is forever in your debt!
Code and idea inspired by sml-modeline
, maintained by Lennart Borgman. See source.
sml-modeline
is also available on Melpa ().
For animated Nyan Cat, I used frames by DryBowser455.
Other editors
For many years only the One True Editor was blessed with the presence of the Nyan Cat. Since its inception, however, daring souls have brought Nyanness to the lands of Lesser Editors.
Here are the examples I’ve tracked down so far:
- Vim - nefo-mi’s nyan-modoki.vim (text-only, it seems)
- Vim - edvb54’s catium.vim (also text, apparently)
- Sublime Text - wiggin15’s SublimeNyan
- Atom - dz’s atom-nyancat
- qutebrowser - qutenyan
If you’ve seen others in the wild, please submit.
Related
Check out Aaron Miller’s weatherline.el, partially inspired by Nyan Mode.
Also check out zone-nyan by Vasilij Schneidermann (wasamasa) if you want the Nyan Cat to visit your Emacs when you step away from the keyboard!
Nyanyanyanyanyanyanya! ♬ ♫ ♪ ♩