* Devil Mode

[[https://melpa.org/#/devil][file:https://melpa.org/packages/devil-badge.svg]]
[[https://stable.melpa.org/#/devil][file:https://stable.melpa.org/packages/devil-badge.svg]]
[[https://elpa.nongnu.org/nongnu/devil.html][file:https://elpa.nongnu.org/nongnu/devil.svg]]
[[https://mastodon.social/@susam][file:https://img.shields.io/badge/mastodon-%40susam-%2355f.svg]]

Devil mode trades your comma key in exchange for a modifier-free
editing experience in Emacs.  Yes, the comma key!  The key you would
normally wield for punctuation in nearly every corner of text.  Yes,
this is twisted!  It would not be called the Devil otherwise, would
it?  If it were any more rational, we might call it something divine,
like, uh, the God mode?  But alas, there is nothing divine to be found
here.  Welcome, instead, to the realm of the Devil!  You will be
granted the occasional use of the comma key for punctuation, but only
if you can charm the Devil.  But beware, for in this sinister domain,
you must relinquish your comma key and embrace an editing experience
that whispers wicked secrets into your fingertips!

** Introduction
:PROPERTIES:
:CUSTOM_ID: introduction
:END:

Devil is available in MELPA as well as NonGNU ELPA.  If you are using
Emacs 28.1 or a more recent version of Emacs, you can get the latest
stable version of Devil by typing =M-x package-install RET devil RET=.
Otherwise, you need to add MELPA or NonGNU ELPA to your list of
package archives and then install MELPA.  More details on the
installation procedure is provided in the [[https://susam.github.io/devil/][manual]].

By default, Devil mode rebinds the comma key to activate Devil.  Once
activated, Devil reads a so-called Devil key sequence from you.  As
you type your Devil key sequence, Devil translates the key sequence to
a regular Emacs key sequence.  If any command is bound to the
translated Emacs key sequence, Devil runs that command and then
deactivates itself.

By default, each comma in the Devil key sequence is translated to
"C-".  For example, if you type ", x , f", Devil translates it to "C-x
C-f".  Similarly ", m" is translated to "M-".  If you type ", m x",
Devil translates it to "M-x".  Further ", m m" is translated to
"C-M-".  If you type ", m m f" Devil translates it to "C-M-f".  There
are several other translations available in the default translation
rules that let you enjoy working with Emacs while avoiding modifier
keys.  Further, the Devil activation key, translation rules, etc. are
customisable.  Thus if you do not like the default choices made in
this package, you can customise it easily to suit your preferences.

Read the [[https://susam.github.io/devil/][manual]] to learn how to install, use, and customise Devil.

** Channels
:PROPERTIES:
:CUSTOM_ID: channels
:END:

The author of this project hangs out at the following places online:

- Website: [[https://susam.net][susam.net]]
- Mastodon: [[https://mastodon.social/@susam][@susam@mastodon.social]]
- GitHub: [[https://github.com/susam][@susam]]

You are welcome to subscribe to, follow, or join one or more of the
above channels to receive updates from the author or ask questions
about this project.

** Support
:PROPERTIES:
:CUSTOM_ID: support
:END:

To report bugs, suggest improvements, or ask questions, [[https://github.com/susam/devil/issues][create issues]].

** Contributing
:PROPERTIES:
:CUSTOM_ID: contributing
:END:

See [[https://github.com/susam/devil/blob/main/CONTRIBUTING.org][CONTRIBUTING.org]] for contribution guidelines.

** Thanks
:PROPERTIES:
:CUSTOM_ID: thanks
:END:

Thanks to:

- [[https://github.com/riscy][Chris Rayner]] for initial code review.
- [[https://github.com/phikal][Philip Kaludercic]] for initial code review and patches.
- [[https://github.com/morganwillcock][Morgan Willcock]] for initial feedback and code reviews.

** Reactions
:PROPERTIES:
:CUSTOM_ID: reactions
:END:

Some amusing reactions to this project collected from various corners
of the world wide web:

#+begin_quote
Every bit of this horrifies me, and I can't believe you've done it.
Outstanding.  Well done!  -- [[https://news.ycombinator.com/item?id=35953341][@kstrauser]]
#+end_quote

#+begin_quote
This is insane.  I am going to try it immediately.  -- [[https://news.ycombinator.com/item?id=35855621][@jrockway]]
#+end_quote

#+begin_quote
Will defiantly check this out.  -- [[https://old.reddit.com/r/emacs/comments/13aj99j/devil_mode_a_twisted_key_sequence_translator_for/jj94y35/][@strings]]
#+end_quote

#+begin_quote
Defiantly!  -- [[https://old.reddit.com/r/emacs/comments/13aj99j/devil_mode_a_twisted_key_sequence_translator_for/jj98owf/][@oantolin]]
#+end_quote

#+begin_quote
😈  -- [[https://old.reddit.com/r/emacs/comments/13aj99j/devil_mode_a_twisted_key_sequence_translator_for/jj72ive/][@SequentialDesign]]
#+end_quote

** More
:PROPERTIES:
:CUSTOM_ID: more
:END:

See [[https://github.com/susam/emacs4cl][Emacs4CL]], a DIY quick-starter kit to set up Emacs for Common Lisp
programming.

See [[https://github.com/susam/emfy][Emfy]], a DIY quick-starter kit to set up Emacs for general purpose
editing and programming.
