Hi Guix.
This one is both subtle and deadly given mussle memory we all
develop with Emacs key bindings.
Tested with both Emacs 27 and 28:
$ guix shell --container --no-cwd --preserve='^TERM$' emacs --
emacs -nw -q -Q
or
$ guix shell --container --no-cwd --preserve='^TERM$' emacs-next
-- emacs -nw -q -Q
Starts terminal Emacs fine. Now Ctrl-g or M-x followed by Ctrl-g
which typically would send `keyboard-quit` and also
abort-recursive-edit. You get kicked out of Emacs and shell ends
up in a weird state, with Ctrl-D being the only way to kill
it. Replicated in xterm and gnome-terminal.
This is specific to --container! The following works just fine:
$ guix shell --preserve='^TERM$' emacs -- emacs -nw -q -Q
For completness I also tried:
$ guix shell --container --no-cwd --preserve='^TERM$' emacs bash
-- bash -c 'emacs -nw -q -Q'
Any idea where and why --container could be breaking things? Note
that `abort-recursive-edit` works perfectly fine. How exactly
--container starts those processes? Could it be running some weird
"shell" version that treats C-g specially somehow? How do I make
it stop?
$ guix describe
Generation 10 Dec 27 2021 15:36:01 (current)
guix 9e9489f
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 9e9489fb11ac73e51abe293235738d70365affa9
Thanks