Version 0.4.0 of package Devil has just been released in NonGNU ELPA. You can now find it in M-x list-packages RET.
Devil describes itself as: ======================================== Minor mode for translating key sequences ======================================== More at https://elpa.nongnu.org/nongnu/devil.html ## Summary: 1 Devil Mode ════════════ [file:https://melpa.org/packages/devil-badge.svg] [file:https://stable.melpa.org/packages/devil-badge.svg] [file:https://elpa.nongnu.org/nongnu/devil.svg] [file:https://img.shields.io/badge/mastodon-%40susam-%2355f.svg] ## Recent NEWS: Changelog ═════════ Version 0.4.0 (2023-05-27) ────────────────────────── Added ╌╌╌╌╌ • Add customisable variable `devil-all-keys-repeatable' that makes all Devil key sequences repeatable when set to `t'. • Add `, s' to the default list of repeatable keys. • Add `, d' to the default list of repeatable keys. • Add `, m m ^' to the default list of repeatable keys. • Translate `m m' to `m' to support typing key sequences like `C-c m'. • Translate `m z' to `M-' to support typing key sequences like `C-c M-m' and `C-M-m'. Changed ╌╌╌╌╌╌╌ • When a Devil key sequence translates to an Emacs key sequence with both the control key and an uppercase letter, the uppercase letter is further translated to its shifted form, e.g., `C-M-V' is translated to `C-M-S-v'. Fixed ╌╌╌╌╌ • Fix key translation when the Devil key is a key vector, e.g., `(kbd "<left>")' • Fix key translation of key sequences involving function keys, e.g., `, <tab>', `, <backspace>', etc. For example, earlier `, <tab>' translated to `C-TAB' and caused "undefined" error even if there was a command bound to `C-<tab>'. With this fix, `, <tab>' is now translated to `C-<tab>' and invokes the command bound to it, if any. Version 0.3.0 (2023-05-11) ────────────────────────── Added ╌╌╌╌╌ • Add customisation group `devil'. Changed ╌╌╌╌╌╌╌ • Move tests out to a separate file. Fixed ╌╌╌╌╌ • Fix spacing in documentation strings. • Remove `devil-version' and `devil-show-version'. Version 0.2.0 (2023-05-09) ────────────────────────── Added ╌╌╌╌╌ • Add `, k' to the default list of repeatable keys. • Add `, /' to the default list of repeatable keys. • Add `, m m y' to the default list of repeatable keys. • Add command `devil-show-version' to display Devil version. Changed ╌╌╌╌╌╌╌ • Automatically detect the activation key and accumulate it in order to support `devil-mode-map' with multiple activation keys. Fixed ╌╌╌╌╌ • Remove a stray `message' call. • Make the function `dev--tests' non-interactive. • Translation issue that caused invalid Emacs key sequences on mapping `-'. For example, mapping `-' to `C-x' and typing `- C-f' produced `C-x CC-xf'. This has been fixed so that `- C-f' is now translated to `C-x C-f'. Version 0.1.0 (2023-05-07) ────────────────────────── Added ╌╌╌╌╌ • Devil global and local minor modes. • Default Devil key set to the comma (`,'). • Special key `, ,' to type a literal comma. • Special key `, SPC' to type a comma followed by a space. • Special key `, RET' to type a comma followed by return. • Translation rules that translate `,' and `, z' to `C-'. • Translation rules that translate `m' and `, m m' to `M-'. • Translation rule that translates `, ,' to `,'. • Repeatable key sequences for `, p', `, n', `, f', `, b', `, m m f', `, m m b', and `, m x o'. • Key binding for `isearch-mode-map' to support Devil key sequences in incremental search. • Key binding for `universal-argument-map' to support repeating the universal argument with `u'.