Version 0.5.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.5.0 (2023-06-15) ────────────────────────── Added ╌╌╌╌╌ • Function `devil-set-key' to set a new Devil key and update the mode's keymap. • Reinstate variable `devil-version' since it is useful in determining the source version conveniently. It helps during troubleshooting the package when installed from MELPA which sets the package version to a version derived from the current date and time. • Command `devil-describe-key' to describe Devil key sequences. • Command `devil-toggle-logging' to toggle logging. • Special key `, h , k' to execute `devil-describe-key'. • Special key `, h , l' to execute `devil-toggle-logging'. Changed ╌╌╌╌╌╌╌ • Customising `devil-key' also updates the mode's keymap. • When no binding exists for the translated key sequence, convert the key sequence to a fallback key sequence for terminal Emacs according to `local-function-key-map' and execute any command bound to the fallback key sequence. For example, when the Devil key sequence `, x <tab>' is converted to `C-x <tab>', since no command is bound to this key sequence, it is further translated to `C-x TAB' and the command `indent-rigidly' bound to it is executed. • Format control sequence to show the Devil key sequence read by Devil has changed from `%k' to `%r'. • The default special key sequences no longer merely insert literal characters into the buffer. That behaviour was problematic in `isearch-mode' because typing special keys like `, ,' and `, SPC' in `isearch-mode' inserted the literal characters in the buffer as opposed to appending these characters to the search pattern. The default special key sequences now invoke `devil-execute-key' instead which carefully look up the current binding for the current special key and executes it. This produces the correct behaviour of special keys even in `isearch-mode'. Fixed ╌╌╌╌╌ • Fix special key sequence `, <return>' which was broken by the previous release of version 0.4.0. • Fix special key `, ,' in `isearch-mode'. Version 0.4.0 (2023-05-27) ────────────────────────── Added ╌╌╌╌╌ • Customisable variable `devil-all-keys-repeatable' that makes all Devil key sequences repeatable when set to `t'. • Key `, s' to the default list of repeatable keys. • Key `, d' to the default list of repeatable keys. • Key `, 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 ╌╌╌╌╌ • Key `, k' to the default list of repeatable keys. • Key `, /' to the default list of repeatable keys. • Key `, m m y' to the default list of repeatable keys. • 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. … …
