Subject: 27.2; Anomalous Key Translation

From: Robert Morelli <[email-masked]>
Date: Tue, 10 Aug 2021 17:25:51 -0600

From time to time, A-c, A-x, and perhaps a few other similar keys

sequences, stop working and become self-insert-command.

This seems to happen after running the command

C-x 8 <any key>

where <any key> is any key at all, not just c.

For what it's worth, my iso-transl-char-map and iso-transl-char-map 
variables contain pairs like

("*c" . [162]) ("c" . [162])

I don't use this feature much and I only know this from occasionally 
hitting this sequence by accident.

I am working on a MacBook Pro laptop running Mac OS 10.5.1.In my 
init.el, I have the following:

(global-set-key (kbd "A-c") 'kill-ring-save)
(global-set-key (kbd "A-x") 'kill-region)
(setq mac-command-modifier 'alt) ; cmd key -> alt A-
(setq mac-option-modifier 'meta) ; option/alt key -> meta M-
(setq mac-control-modifier 'control) ; control key -> control C-
(setq mac-function-modifier 'super) ; Fn key -> super s-
(setq mac-right-command-modifier 'hyper) ; right cmd key -> hyper H-

so the key sequence is invoked with the physical Apple command key.

When I run describe-key on, say, A-c, I get:
¢ (translated from A-c) runs the command self-insert-command (found in 
global-map), which is an interactive built-in function in
‘src/cmds.c’.

It is bound to many ordinary text characters.

(self-insert-command N &optional C)

Probably introduced at or before Emacs version 22.1.
...

This behavior is unexpected and unwanted. After the sequence changes, 
re-evaluating

(global-set-key (kbd "A-c") 'kill-ring-save)
produces no error message, but has no effect. I have not been able to
find any way to get the binding to return to normal except by restarting 
Emacs.

In GNU Emacs 27.2 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60 
Version 10.14.6 (Build 18G95))
of 2021-03-27 built on builder10-14.porkrind.org
Windowing system distributor 'Apple', version 10.3.2022
System Description: macOS 11.5.1

Recent messages:
¢ is undefined
<mouse-3> is undefined
Saving file /Users/robertmorelli/MyCloud/Info/Notes/EmacsNotes.tex...
Wrote /Users/robertmorelli/MyCloud/Info/Notes/EmacsNotes.tex
Saving file /Users/robertmorelli/Library/Mobile 
Documents/com~apple~CloudDocs/MyCloud/Info/Notes/MacNotes.tex...
Wrote /Users/robertmorelli/Library/Mobile 
Documents/com~apple~CloudDocs/MyCloud/Info/Notes/MacNotes.tex
Quit
Mark saved where search started
Undo
Auto-saving...

Configured using:
'configure --with-ns '--enable-locallisppath=/Library/Application
Support/Emacs/${version}/site-lisp:/Library/Application
Support/Emacs/site-lisp' --with-modules'

Configured features:
NOTIFY KQUEUE ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES
THREADS JSON PDUMPER GMP

Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
yas-global-mode: t
yas-minor-mode: t
TeX-PDF-mode: t
TeX-source-correlate-mode: t
recentf-mode: t
auto-image-file-mode: t
cua-mode: t
smartparens-global-mode: t
smartparens-mode: t
ivy-mode: t
delete-selection-mode: t
volatile-highlights-mode: t
show-paren-mode: t
global-git-commit-mode: t
magit-auto-revert-mode: t
shell-dirtrack-mode: t
centaur-tabs-mode: t
override-global-mode: t
global-hl-line-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
column-number-mode: t
line-number-mode: t
transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort emacsbug sendmail iso-transl dired-aux flycheck
lsp-diagnostics lsp-headerline lsp-modeline view lsp-zig lsp-steep
lsp-svelte lsp-sqls lsp-yaml lsp-xml lsp-vimscript lsp-vhdl lsp-vetur
lsp-verilog lsp-vala lsp-v lsp-terraform lsp-tex lsp-sorbet
lsp-solargraph lsp-rust lsp-rf lsp-r lsp-purescript lsp-pylsp lsp-pyls
lsp-pwsh lsp-php lsp-perl lsp-ocaml lsp-nix lsp-nim lsp-markdown lsp-lua
lsp-kotlin lsp-json lsp-javascript lsp-haxe lsp-groovy lsp-hack lsp-go
lsp-gdscript lsp-fsharp lsp-fortran lsp-eslint lsp-erlang lsp-elixir
lsp-elm lsp-dockerfile lsp-dhall lsp-d lsp-css lsp-csharp lsp-crystal
lsp-cmake lsp-clojure lsp-clangd lsp-beancount lsp-bash lsp-angular
lsp-ada lsp-actionscript mail-extr org-element avl-tree ol-eww eww
mm-url url-queue ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir gnus-sum
shr svg xml gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail
mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win gnus
nnheader ol-docview doc-view ol-bbdb ol-w3m expand lsp-html ido
lsp-icons lsp-completion lsp-semantic-tokens dom lsp-mode lsp-protocol
spinner smartparens-markdown markdown-mode lv ht f ewoc s inline
cua-gmrk cl novice image-mode exif all-the-icons-dired ibuf-macs ibuffer
ibuffer-loaddefs all-the-icons all-the-icons-faces data-material
data-weathericons data-octicons data-fileicons data-faicons
data-alltheicons autoload tar-mode arc-mode archive-mode lisp-mnt
mm-archive gnutls network-stream url-http url-gw nsm url-cache url-auth
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap cus-theme eieio-custom wid-browse ob-ditaa
ob-plantuml ol-bibtex bibtex org-clock org-colview org-crypt org-habit
org-agenda org-refile smartparens-org org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-footnote org-pcomplete org-list org-faces
org-entities org-version ob-emacs-lisp ol org-loaddefs cal-menu calendar
cal-loaddefs org-src ob-comint ob-core ob-eval org-table org-keys
org-compat org-macs reftex-parse diminish yasnippet use-package-diminish
skeleton sh-script smie executable two-column apropos w32-vars ebnf2ps
ps-print ps-print-loaddefs ps-def lpr dos-vars cus-edit cua-rect rect
misearch multi-isearch vc-mtn vc-hg vc-git vc-bzr vc-src vc-sccs vc-svn
vc-cvs vc-rcs vc vc-dispatcher jka-compr cl-print debug backtrace
eieio-opt speedbar sb-image ezimage dframe find-func help-fns radix-tree
swiper undo-fu perl-mode preview reftex-dcr reftex-auc reftex
reftex-loaddefs reftex-vars flyspell ispell tex-bar tex-buf toolbar-x
noutline outline font-latex latex latex-flymake flymake-proc flymake
warnings tex-ispell tex-style tex texmathp tex-mode compile latexenc
smartparens-javascript js smartparens-c cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ffap
smartparens-python python tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp
magit-bookmark bookmark pp tabbar recentf tree-widget wid-edit
image-file cus-start cua-base cus-load smartparens-latex
smartparens-config smartparens-text smartparens thingatpt ivy delsel
ivy-faces ivy-overlay colir use-package-ensure helm-config etags
fileloop generator xref project volatile-highlights paren
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff diff-mode git-commit log-edit message rmc
puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg epg-config
gnus-util rmail rmail-loaddefs text-property-search time-date mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
pcvs-util add-log magit-core magit-autorevert autorevert filenotify
magit-margin magit-transient magit-process with-editor shell pcomplete
comint server ansi-color magit-mode transient format-spec magit-git
magit-section magit-utils crm dash edmacro kmacro centaur-tabs
centaur-tabs-interactive centaur-tabs-functions centaur-tabs-elements
powerline advice powerline-separators ring powerline-themes color
cl-extra help-mode use-package-bind-key bind-key easy-mmode
use-package-core hl-line rx finder-inf pcase tex-site info package
easymenu browse-url url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json subr-x map
url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode elisp-mode lisp-mode prog-mode register page
tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse
jit-lock font-lock syntax facemenu font-core term/tty-colors frame
minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite charscript charprop case-table epa-hook jka-cmpr-hook help
simple abbrev obarray cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
threads kqueue cocoa ns multi-tty make-network-process emacs)

Memory information:
((conses 16 2351319 333869)
(symbols 48 65476 3)
(strings 32 377047 31037)
(string-bytes 1 11836684)
(vectors 16 136367)
(vector-slots 8 2621775 243634)
(floats 8 3363 2071)
(intervals 56 250127 7555)
(buffers 1000 315))