Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/TeMPOraL/nyan-mode

Nyan Cat for Emacs! Nyanyanyanyanyanyanyanyanyan!
https://github.com/TeMPOraL/nyan-mode

cat emacs emacs-lisp emacs-mode modeline nyan

Last synced: 15 days ago
JSON representation

Nyan Cat for Emacs! Nyanyanyanyanyanyanyanyanyan!

Awesome Lists containing this project

README

        

* Nyan Mode - Turn your Emacs into Nyanmacs! :)

[[https://github.com/TeMPOraL/nyan-mode][file:https://badge.fury.io/gh/TeMPOraL%2Fnyan-mode.svg]]
[[http://www.nyan.cat/][file:https://img.shields.io/badge/nyan-nyan-ff00ff.svg]]
[[https://stable.melpa.org/#/nyan-mode][file:https://stable.melpa.org/packages/nyan-mode-badge.svg]]
[[https://melpa.org/#/nyan-mode][file:https://melpa.org/packages/nyan-mode-badge.svg]]
[[https://doi.org/10.5281/zenodo.164185][file:https://zenodo.org/badge/DOI/10.5281/zenodo.164185.svg]]

*WARNING, MIND DUMBING CONTENT INSIDE.*

#+BEGIN_QUOTE
"Nyan-mode. It's things like this that make me proud to be an emacs user." - [[http://twitter.com/#!/mitchellh/status/104931263479156736][mitchellh]]
#+END_QUOTE

#+BEGIN_QUOTE
"Everything that's wrong (or right) with Emacs." - [[https://youtu.be/NBArWrn6FnY?t=756][wasamasa]]
#+END_QUOTE

Nyanmacs is expanding!! [[http://jacek.zlydach.pl/blog/2011-08-25-introducing-nyan-mode-el-turn-your-emacs-into-nyanmacs.html][Read the story so far]]! :).

[[file:screenshot.png]]

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, [[http://web.archive.org/web/20120131133230/http://friendfeed.com/amitp/b4097da0/nyan-mode-turn-your-emacs-into-nyanmacs][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:
#+begin_src emacs-lisp
(setq mode-line-format
(list
'(:eval (list (nyan-create)))
))
#+end_src

** 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 image-library-alist =.

+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 [[https://launchpad.net/~lennart-borgman][Lennart Borgman]]. See [[https://github.com/emacsmirror/sml-modeline/blob/master/sml-modeline.el][source]].
=sml-modeline= is also available on Melpa ([[https://melpa.org/#/sml-modeline][file:https://melpa.org/packages/sml-modeline-badge.svg]]).

For animated Nyan Cat, I used [[http://web.archive.org/web/20181010013323im_/http://i1037.photobucket.com/albums/a453/DryBowser455/NyanCatSprite.png][frames]] [[https://web.archive.org/web/20130116191051/http://media.photobucket.com/image/nyan%20cat%20sprites/DryBowser455/th_NyanCatSprite.png?t=1304659408][by DryBowser455]].

** Other editors
For many years only the [[https://www.gnu.org/software/emacs/][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 [[https://github.com/nefo-mi/nyan-modoki.vim][nyan-modoki.vim]] (text-only, it seems)
- Vim - edvb54's [[https://github.com/edvb54/catium.vim][catium.vim]] (also text, apparently)
- Sublime Text - wiggin15's [[https://github.com/wiggin15/SublimeNyan][SublimeNyan]]
- Atom - dz's [[https://github.com/dz/atom-nyancat][atom-nyancat]]
- qutebrowser - [[https://gitlab.com/jgkamat/qutenyan][qutenyan]]

If you've seen others in the wild, please submit.

** Related

Check out Aaron Miller's [[https://github.com/aaron-em/weatherline-mode.el][weatherline.el]], partially inspired by Nyan Mode.

Also check out [[https://depp.brause.cc/zone-nyan/][zone-nyan]] by Vasilij Schneidermann ([[https://github.com/wasamasa][wasamasa]]) if you want the Nyan
Cat to visit your Emacs when you step away from the keyboard!

Nyanyanyanyanyanyanya! ♬ ♫ ♪ ♩