Releases: susam/devil
0.6.0
Devil is an Emacs minor mode that intercepts and translates keystrokes to provide a modifier-free editing experience in a non-modal manner. See https://susam.github.io/devil/ to learn more about it and learn how it works.
This release (v0.6.0) updates the default translation rules to make key sequences involving the M-
modifier easier to type. In some of the discussions in the Libera network's #emacs channel, some users of Devil have noted that with the default translation rules available in v0.5.0 and earlier, it was more difficult to type M-
than it was to type C-M-
. For example, we could simply type , m s
to produce C-M-s
but we needed to type , m m x
to produce M-x
. This was found to be counterintuitive by many because the default translation rules make the shorter key sequence of vanilla Emacs longer to type in Devil. Users who found this problematic often resorted to defining their own translation rules to work around this weirdness.
This release fixes this issue by updating the translation rules to make it easier to type M-
key sequences. In fact, the default rules for M-
and C-M-
translations have been flipped around. Now , m
translates to M-
and , m m
translates to C-M-
. Therefore with the default translation rules, we can now type , m x
to produce M-x
and , m m s
to produce C-M-s
. See section Devil Translation Rules of the manual for an account of the updated default translation rules.
Note that this change does not affect users who define their own custom translation rules. However, this change does affect users who rely on the default translation rules. Although, I hope such users would find the new translation rules convenient and easy to adopt, I understand that not everyone is going to be happy about changes in the default behaviour. If you feel unhappy about this change, see issue #13 to learn how you can customise Devil to use the old translation rules from v0.5.0.
If you face any issue due to this change or any issue with Devil in general, please do not hesitate to create an issue on the issue tracker at https://github.com/susam/devil/issues. A big thanks to the small yet friendly community of Devil users whose feedback has been very helpful in nailing down the details of this release. May Devil cast a spell upon your fingers and whisper wicked secrets into your fingertips!
0.5.0
Devil is an Emacs minor mode that intercepts and translates keystrokes to provide a modifier-free editing experience. For example, with the default configuration one can type , x , f
and Devil translates it to C-x C-f
. Similarly, , m s
is translated to C-M-s
. And so on. The translation rules are very configurable though. See https://susam.github.io/devil/ for the complete manual.
This release (v0.5.0) contains several fixes and improvements around making Devil special keys work reliably in various minor and major modes and especially in isearch-mode
. This should provide a more seamless experience while using Devil special keys like , ,
and , SPC
. Instead of unconditionally inserting a literal comma or a literal comma followed by space into the text buffer, Devil now looks up the current key bindings to find out what ,
and SPC
are supposed to do with the current key bindings and performs that. For example, in isearch-mode
if we now type , ,
it appends a literal comma to the search string (not insert it into the buffer).
This release now introduces the devil-describe-key
command that can be invoked with the special key sequence , h , k
. For example, if we type the Devil key sequence , h , k
followed by , x , f
then Devil is going to bring up the describe-key
output buffer for C-x C-f
which along with the description of the command bound to it, will also show that C-x C-f
was translated from , x , f
. Note that devil-describe-key
is invoked with the special key sequence , h , k
. The Devil key sequence , h k
is free and translates to C-h k
to invoke the vanilla Emacs describe-key
command.
A big thanks to the small but friendly user community of Devil for providing feedback and reporting issues in Devil. Some of the changes introduced in this release resulted directly from such community feedback. Some members of this community were very helpful by providing detailed logs emitted by Devil while reporting issues. To make enabling and disabling logging easier, a new special key , h , l
has been introduced. To see this in action, first type the Devil key sequence , x 4 b
(or the vanilla C-x 4 b
) to open the *Messages*
buffer in another window. Then type , h , l
to enable logging and , h , l
again to disable logging.
A few other minor inconveniences are fixed too in this release. See the section for version 0.5.0 at https://github.com/susam/devil/blob/main/CHANGES.org for the complete changelog for this release.
0.4.0
This release contains several improvements to provide a better Devil experience to those who use Devil in ways not anticipated in the previous releases. It adds a few more repeatable key sequences so that key sequences like C-s
, C-d
, and M-^
can be invoked again merely by repeating the last character of the Devil key sequences , s
, , d
, , m m ^
, respectively. This release also adds a few more default translation rules to make it easier to type key sequences involving the letter m
, e.g., , c m m
translates to C-c m
.
Further, this release contains fixes for some issues that were uncovered by the new users of Devil. For example, key sequences like C-M-s-v
are now supported by Devil. The Devil key sequence , m V
translates to C-M-s-v
automatically without having to define new custom translation rules. A combination of C-
and a function key like C-<tab>
, C-<backspace>
, etc. are now supported too.
See https://github.com/susam/devil/blob/main/CHANGES.org for the complete changelog. Also, take a look at https://susam.github.io/devil/ for a detailed documentation.
0.3.0
This release contains several code improvements that include better formatted documentation strings, separation of tests into a separate file, a separate manual, etc. A big thanks to @phikal for sending the patches for these improvements. See https://github.com/susam/devil/blob/main/CHANGES.org for more details.
0.2.0
The second release of Devil brings a few new features and bug fixes to address a few new requirements that came from community discussions. This includes support for multiple activation keys, a few more repeatable keys, and better support for key translations involving hyphen. See https://github.com/susam/devil/blob/main/CHANGES.org for more details.
0.1.0
This is the first release of Devil, an Emacs minor mode I wrote for myself a few years ago to help me avoid the use of the ctrl key while typing vanilla Emacs key sequences. This is especially helpful on Macbook keyboards which do not have a right ctrl key and as a result forces us to type key combinations like C-w
, C-a
, C-s
, C-x
, etc. using two fingers from the left hand, a pretty bad practice if you care about touch typing. The translation rules that come with this mode liberates us from the need to type the ctrl key altogether.
By default, Devil makes the outrageous choice of replacing the usage of the ctrl key with the comma key (,). It sounds like cause for trouble but this whimsical idea actually works pretty well in practice, at least for me! If you don't like this default choice, you can change the default key to something more reasonable by setting the devil-key
variable. See the README at https://github.com/susam/devil to find out more about Devil and how to customise it.