(defpost Introducing nyan-mode.el – turn your Emacs into Nyanmacs!

“Sometimes I wonder about human psychology. If, in any other context, I saw a rainbow cat indicator addon, I would simply ignore it without a second thought. Now, I see one for my emacs mode line of all places, and suddenly I’m thinking “Awesome! I must install this.”” – pyrocrasty

Last weekend I’ve released a simple minor-mode for Emacs – Nyan Mode. It shows you your buffer position in the modeline with the help of Nyan Cat. It supports animations and wavy patterns.

Nyan nyan nyan!

Because it’s a first real minor-mode I’ve ever written, the whole structure is basicly a rip-off strongly inspired by sml-modeline. I had to figure out how to display images in Emacs though – it took some time, lots of Google’ing and a little bit of reading source files. I learned quite a bit about formatting text programatically in Emacs – I’ll probably turn this knowledge into a blog post of its own.

I’ve initially released Nyan Mode on Hacker News and Reddit. It received some, mostly positive, attention. News about it spread quickly on Twitter. Nyanmacs was also mentioned on Smashing Labs PL.

So far it seems that it made many Emacs users laught a bit, but some of them found it useful as well. Since weekend nyan-mode.el was forked 6 times and received one pull request with upgraded images. Also, Amit Patel shared some tips on how to make nyan-mode work with custom modeline.

Some screenshots and comments from happy users:




“This has actually managed to settle the texteditor/ide wars here at work. The consensus is now emacs > vim > rubymine. Thanks!!!” – nimms

“Emacs continues to be relevant into 2011” – ewbourget

“Nyan-mode. It’s things like this that make me proud to be an emacs user.” – mitchellh

“Why emacs is better than vi” – prg

“Nyan buffer position indicator is almost enough to make me consider using emacs. Almost.” – aloria

“IN YOUR FACE, VI!” – ieure

I wasn’t expecting to find this mode useful – I did it just for teh lulz. However, it turned out to be quite a nice indicator of buffer position, and thus I’m keeping it permanently enabled in my Emacs.
I’m considering writing a more generalized minor-mode, that would allow users to install different graphics sets. There are lots of Nyan Cat conversions out there (e.g. the national ones) ;), and also some people might want to have a normal scrollbar.

So, now that we have Nyan Cat for Emacs… Vi/Vim users, what’s your answer? ;).

(tags , , , , , , , , , , , )

10 Responses to “Introducing nyan-mode.el – turn your Emacs into Nyanmacs!”

  1. I __LOVE__ Nyan-mode. Thank you.

    BEST MODE EVAR. Cute, Awesome, and useful.

  2. Zolomon says:

    Coding with Nyan Cat as my sidekick, doesn’t get better than this!

  3. Zolomon says:

    (Which color-theme is used in this image?

  4. Nick says:

    The linked page is dead!

    403 Forbidden

    The page you are looking for is forbidden.
    Read guru advice below or visit rootnode.

  5. @Jonathan Arkell: I’m glad you like it :).

    @Zolomon: I have no idea :(.

    @Nick: Thanks for pointing it out! Rootnode had some major hardware malfunction recently and all my nginx configs are gone, I need to sit down and restore them at some point, hopefully soon :).

  6. @Nick: Fixed, thanks again!

  7. “Have nothing in your house that you do not know to be useful, or believe to be beautiful.” — William Morris

    This quote applies to nyan-mode, I think.

  8. Just found this through http://steckerhalter.co.vu/steckemacs.html and some googling. Instant-install, so to say 🙂 Still relevant in 2014.

  9. Oh, and funny thing is, in Hungarian, cat is “macska”, sometimes abbreviated as “macs”. This takes NyanMacs to new levels 🙂

  10. Dmitri says:

    Works like a charm, runs like a charm. Can not detect any increased processor/RAM use on full animation mode. Should be part of default distribution: the Rogerian therapy for a new millenium!

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

SexpCode: You can use SexpCode tags.

) ;end of defpost