From: Pierre Rouleau <prouleau001@gmail.com>
To: help-gnu-emacs@gnu.org
Subject: Re: Does code exist to check if a key sequence is valid for Emacs running in terminal mode?
Date: Sat, 13 Jul 2024 09:45:54 -0400 [thread overview]
Message-ID: <CALTqLibqnAJYjMdmErZP4yHRmQ=hog3L7V_V0CSGuLUeRSd0+w@mail.gmail.com> (raw)
In-Reply-To: <87msmmi39t.fsf@dataswamp.org>
On Fri, Jul 12, 2024 at 11:23 PM Emanuel Berg <incal@dataswamp.org> wrote:
> Pierre Rouleau wrote:
>
> > The real reason I want to do that is to prevent reporting
> > key binding clashes in code that tries to use the same key
> > binding for 2 different global key bindings when that key
> > binding is not even possible because Emacs will not be able
> > to react to it.
>
> Can't you just branch on `display-graphic-p'? It is nil here
> but t in a GUI Emacs instance so should work.
>
> Another way is to just set some variable when you start it:
>
> $ HERE="some-system" emacs
>
> then branch on (getenv "HERE").
>
> Sounds easier?
>
Well, perhaps I did not explain the problem properly.
Code is probably easier to provide the context.
Here's the code, published here:
https://github.com/pierre-rouleau/pel/blob/master/pel-spell-iedit.el#L63
(defun pel-spell-iedit-check-conflict ()
"Check for key binding conflict between flyspell and iedit.
Warn user if necessary."
(when (and (boundp 'iedit-toggle-key-default)
(boundp 'flyspell-auto-correct-binding)
(string= (key-description iedit-toggle-key-default)
(key-description flyspell-auto-correct-binding)))
(display-warning
'pel-keys
(format "Both iedit and flyspell bind functions to \"%s\"!\n\
To use this key, change the key selected in one of the following \n\
user options:\n\
- `iedit-toggle-key-default'
- `flyspell-auto-correct-binding'
Then save your changes."
(key-description flyspell-auto-correct-binding)))))
The above code checks if the user that has configured
the system to use both iedit and flyspell and use their
default key binding that clashes. Their code has the following:
(defcustom iedit-toggle-key-default (kbd "C-;")
"If no-nil, the key is inserted into global-map,
isearch-mode-map, esc-map and help-map."
:type 'vector
:group 'iedit)
(defcustom flyspell-auto-correct-binding
[(control ?\;)]
"The key binding for flyspell auto correction."
:type 'key-sequence)
The warning is printed on Emacs running in terminal mode
even though when running under a macOS Terminal.app the C-;
cannot be used.
So, I would like to be able to *check* if the key bindings
reported as clashing can be used in the environment
(and yes I use the functions you mentioned) and if they
can't, I would change the message.
This code is part of my PEL project at:
https://github.com/pierre-rouleau/pel#readme
I wrote this Emacs Lisp project as a way to control my
Emacs startup, help me learn Emacs and help some friends
transition to Emacs.
I use it on a relatively large number of computers, OSes and Emacs versions
depending on what's available in the environment provided by my customers.
Sorry for the long description, but I hope it provides a better overview
of the context.
--
/Pierre
next prev parent reply other threads:[~2024-07-13 13:45 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-12 12:14 Does code exist to check if a key sequence is valid for Emacs running in terminal mode? Pierre Rouleau
2024-07-12 12:53 ` Robert Pluim
2024-07-12 13:07 ` tomas
2024-07-12 14:55 ` Eli Zaretskii
2024-07-12 15:06 ` Pierre Rouleau
2024-07-12 14:48 ` Pierre Rouleau
2024-07-12 14:58 ` Robert Pluim
2024-07-12 13:10 ` Yuri Khan
2024-07-12 13:51 ` tomas
2024-07-12 14:35 ` Pierre Rouleau
2024-07-12 14:41 ` Pierre Rouleau
2024-07-12 14:57 ` Yuri Khan
2024-07-12 15:05 ` Pierre Rouleau
2024-07-12 19:30 ` tomas
2024-07-13 14:12 ` Pierre Rouleau
2024-07-13 20:06 ` tomas
2024-07-12 23:44 ` Emanuel Berg
2024-07-13 13:45 ` Pierre Rouleau [this message]
2024-07-12 14:45 ` Robert Pluim
2024-07-12 14:57 ` Pierre Rouleau
2024-07-17 2:44 ` Stefan Monnier via Users list for the GNU Emacs text editor
2024-07-19 13:31 ` Pierre Rouleau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CALTqLibqnAJYjMdmErZP4yHRmQ=hog3L7V_V0CSGuLUeRSd0+w@mail.gmail.com' \
--to=prouleau001@gmail.com \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.