From: Pierre Rouleau <prouleau001@gmail.com>
To: Yuri Khan <yuri.v.khan@gmail.com>
Cc: help-gnu-emacs <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: Fri, 12 Jul 2024 10:41:00 -0400 [thread overview]
Message-ID: <CALTqLiZv=LDMZ5SZBU41dfQVu69=qodxTqgJhOJ0gLQE2Tt-zA@mail.gmail.com> (raw)
In-Reply-To: <CALTqLiZDUwseu9izJHAfxLompbsEWWz-WA9fgeBixDN9DJss3w@mail.gmail.com>
On Fri, Jul 12, 2024 at 10:35 AM Pierre Rouleau <prouleau001@gmail.com>
wrote:
>
>
> On Fri, Jul 12, 2024 at 9:11 AM Yuri Khan <yuri.v.khan@gmail.com> wrote:
>
>> On Fri, 12 Jul 2024 at 19:15, Pierre Rouleau <prouleau001@gmail.com>
>> wrote:
>>
>> > Does Emacs already have a predicate function that can be used to check
>> if
>> > the specified key sequence is valid for Emacs running in terminal mode?
>> >
>> > For example, "C-;" is not accessible on Emacs running in terminal mode
>> > because this is not an ASCII control character. It's available for Emacs
>> > running in graphical environment, but not in terminal mode.
>>
>> This is probably not solvable because an advanced terminal can
>> implement a protocol extension that represents arbitrary keys as
>> escape sequences that can then be turned into Emacs key events using
>> input-decode-map.
>>
>> You are correct, it depends on the terminal being used.
> I was thinking of writing a function that would call describe-key
> but setup the scope to output into a temporary buffer that it
> would discard and catch error if the key described is not a
> valid one.
>
> It would therefore like to distinguish the 3 potential cases:
> - the key sequence is bound
> - the key sequence is not defined.
> Like "C-| is undefined" when tried in Emacs running in graphical mode.
> - the key sequence is not defined, but reported via an error.
> Like "C-;" when tried under Emacs running in terminal mode
> inside a terminal that does not remap the C-; to some other escape
> sequence.
>
> That sounds feasible. No?
>
>
The code can determine if Emacs is running a GUI mode or in a terminal
mode.
In GUI mode it would assume that everything is possible.
In terminal mode the issue is being able to distinguish
whether the key sequence can be bound or not.
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.
--
/Pierre
next prev parent reply other threads:[~2024-07-12 14:41 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 [this message]
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
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CALTqLiZv=LDMZ5SZBU41dfQVu69=qodxTqgJhOJ0gLQE2Tt-zA@mail.gmail.com' \
--to=prouleau001@gmail.com \
--cc=help-gnu-emacs@gnu.org \
--cc=yuri.v.khan@gmail.com \
/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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).