emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New Context Menu


From: Ergus
Subject: Re: New Context Menu
Date: Tue, 24 Aug 2021 22:48:27 +0200

On Wed, Aug 25, 2021 at 02:41:56AM +0700, Yuri Khan wrote:
On Tue, 24 Aug 2021 at 23:06, Ergus <spacibba@aol.com> wrote:

It is not wrong actually. Because keys like [menu] require an
alternative for those that don't have such a key. That's why in some
emulators they are the same sequence than some other complex
combinations like S-<f6> or C-S-<f6>; or some keys not present in our
keyboards anymore (like <f15>) but can be emulated with combinations.

The alternative for people who don’t have Menu is Shift+F10. Has been
since Windows 95 and is adopted by GTK applications. And wxWidgets
applications. And maybe other X toolkits as well.

Shift+F6 is “go to previous pane” in Windows guidelines. Leave that
for people who want an easier key than C-- C-x o.

Shift+F6 is unbound by default. Any way I can live with that but rxvt
will sacrifice an extra binding.

What I’m opposed to is doing things in an application to cover for a
design flaw in a single terminal emulator.

I don't care a design flaw while there is some design. Having [menu]
bound in gui and see the same key as [print] in xterm is just
inconsistent and a waste of a valuable key.

>* Push for terminfo to include a string capability that indicates the
>sequence sent by the Menu key. Push for the terminfo database to
>include that capability for major terminal emulators.
>
I already discussed this with the xterm developer, but the current
translation is direct and does not rely on tricks in the emulator
side. Xterm actually can distinguish between them, but I can't force
every emacs user to use xterm because it is very limited in many
aspects.

How is it direct?
xev

The evdev keycode <MENU> is 135. CSI 2 9 ~ is the
VT220 sequence for F16; in evdev, <FK16> is 194.

(F16 also somewhat explains rxvt’s Shift+F6, by pretending Shift+F<n>
is F<10+n>. Still wrong, because there are 12 function keys! Also
because one can build a keyboard that has both F16 and Menu, as USB
HID Tables assign different codes to these.)

Actually the recommended terminal emulator to work with emacs is
xterm. It is the most compatible and actually was a topic of a previous
discussion/question I did long time ago.

The most compatible with what? VT220? Not relevant nowadays.

The most compatible with everything in emacs out of the box; tmux; fancy
combinations and so on. Emacs gave me too many problems with bindings
when I tried to use it in other terminal emulators. (and the list is
veeery long)

PC keyboard that most everybody has on their desk? No.

Totally disagree here.

xterm allows to distinguish between S-<f6> and the [menu] sequence, they
are different. But urxvt and many others don't; so that will imply that
in urxvt, the context menu will take at least 3 keys when bound to
[S-f10]. Because binding to [menu] will also take [S-f6]. That's what I
want to avoid. Also because S-<f10> is already taken.

To avoid having Menu take Shift+F6, get rxvt to use different
sequences for Menu and Shift+F6.

rxvt has many other worst compatibility issues than this and requires a
lot of customization to work decently with emacs... so your explication
of Shift+F<n> clarifies a lot.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]