From: Jean Louis <bugs@gnu.support>
To: Gregory Heytings <gregory@heytings.org>
Cc: Eli Zaretskii <eliz@gnu.org>, larsi@gnus.org, emacs-devel@gnu.org
Subject: Re: Suggested experimental test
Date: Wed, 24 Mar 2021 09:10:30 +0300 [thread overview]
Message-ID: <YFrX1sPrEADiE9Rg@protected.localdomain> (raw)
In-Reply-To: <22aaf0fadd0894af49d9@heytings.org>
* Gregory Heytings <gregory@heytings.org> [2021-03-23 17:19]:
> Just type emacs -Q, M-x list-packages RET, RET. The package you now see
> ('ace-window') asks you to fiddle with your init file by adding a
> 'global-set-key' to it. The second package in the list ('ack') does the
> same. And so forth. That's not a problem for you and me, it is a problem
> for newcomers, and these 'global-set-key's should be done automatically,
> during the installation process.
I really do not believe it is a problem for newcomers, but if you do,
I would like to see how you get that data.
Newcomers in almost any editor will be able to:
- move cursors with arrows
- insert chars with letters
- delete chars with backspace or DEL
- open and save files
That is it. More than that newcomers do not need. Almost every editor
will provide arrows as key bindings to move, saving and opening
files.
As soon as newcomer starts installing `ace-window' it is not
"newcomer" any more. :-)
> Do you know any other software that asks you to change a
> configuration file manually to use an extension package?
Actually it is not software that asks user, but README or source
code. Software provides functions which user may use with M-x and for
convenience such can be placed in the menu or on key bindings.
We already discussed that software could ask user about the proposed
key bindings and that it would be good so as it forwards artificial
intelligence in Emacs which now excels itself only in the "Emacs
Psychotherapist" part.
Your point is valid and useful. When asking which other software asks
you to change a configuration file manually, well, other software
usually do not install functions that become convenient when placed on
a key. So we do not speak just of extensions, we speak of how to make
commands from extensions more convenient. They however work without
key bindings. Key bindings is convenience for commands.
Let us consider example of Gimp as other software, not being editor
and having extensions. GIMP works with GTK, and GTK allows changing
key bindings for every menu function on the fly. Isn't that handy?
Again, to allow such change for any function on the fly, one has to
configure it in: /home/data1/protected/.gtkrc-2.0.mine to be:
gtk-can-change-accels = 1
Then user can go to favorite function such as "Blur" and press key on
the menu item such as C-9 to assign Blur to C-9 on the fly.
From there on I see your proposal that users should be spared of
customizing key bindings very positive for progress of Emacs.
I do not know if Emacs GTK version allows GTK to change key bindings
by pressing a key on the menu, but it should in my opinion, follow the
example of GTK and GIMP above, and various other GTK based software,
at least in GTK version of Emacs. Maybe it does, I have never tried.
To improve Emacs in general, I would propose that:
- Package authors should be nudged by instructions from the manual to
make menu for the package by default, and that users can be asked
upon installation if they wish to have menu turned on -- and how to
turn it on later if they did not decide to turn it on. Menus could
be sub-menu of new Extensions menu, as that way the menu line would
not be full of various packages' menus.
- Once user is in any menu, user could then press a key and assign key
bindings. If user attempts to assign default key binding, Emacs
would ask user twice about that decision. Otherwise any empty key
bindings could be assigned to menu.
- Package key binding assignment function. Instead or in addition to
the menu system above that would allow simple customization by using
mouse, Emacs could have a built in general function that summarizes
all interactive commands from a package and asks user how to assign
key bindings. This solves the problem on individual basis for each
user separately, and does not ask package authors to do anything
special.
Package key binding assignment function
=======================================
It would work as following:
- when package P is loaded, Emacs would create automatically new
interactive function named P-assign-keys
- function `P-assign-keys' would encompass all interactive functions
from package P
- it would ask user:
- For the function P-function-1 "This function erases screen as
example" -- would you like to assign key bindings?
When user attempts to assign default key bindings, user would be
asked twice if sure.
When user attempts to assign already assigned, but not default key
binding, function would say it is already assigned and again ask
user twice
If key is not bound, it would just get assigned.
- package authors could propose some default key bindings in a list
that would be used by general key binding assignment function
That way all keys can be assigned interactively with user having
control how to do it. Package authors would not need to do anything
special. If they do propose some key bindings, they could provide a
list, and that list could be used by the general key bindings
assignment function. When `P-assign-keys' is invoked, it would display
some key bindings that package author recommended as default. Authors
could also exclude some functions from `P-assign-keys' processing
unless user press C-u to assign key bindings to all.
That would eliminate users to make key bindings, but it would also not
impose on users any new key bindings without users' control.
Upon installation of a package, user could be asked if one wishes to
assign key bindings immediately.
> As the author of Magit wrote when he added the "C-x g" global binding:
>
> "Some [...] beginners will initially have a low threshold for things not
> working out of the box and I don't want to (continue to) scare them off by
> immediately forcing them to learn how to add key bindings and what that even
> means. There's a lot of talk about making Emacs friendlier for beginners
> and this is a small step in that direction." [1]
>
> [1] https://github.com/magit/magit/pull/4237#issuecomment-723495053
Sorry, the above paragraph is to me contradictory, as who uses Magit
cannot be a beginner, and I telling people how to change key bindings
results with programmers who contribute to Emacs or make their own
packages. Let us not shoot in our own foot by sparing people to learn
something new.
Jean
next prev parent reply other threads:[~2021-03-24 6:10 UTC|newest]
Thread overview: 171+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-20 9:03 Suggested experimental test Gregory Heytings
2021-03-20 11:14 ` Jean Louis
2021-03-20 11:27 ` Eli Zaretskii
2021-03-20 11:34 ` Gregory Heytings
2021-03-20 12:37 ` Proposal to remove C-o binding [was: Suggested experimental test] Alan Mackenzie
2021-03-21 6:53 ` Suggested experimental test Lars Ingebrigtsen
2021-03-21 8:35 ` Alfred M. Szmidt
2021-03-21 13:20 ` Gregory Heytings
2021-03-21 18:16 ` Alfred M. Szmidt
2021-03-21 22:16 ` Gregory Heytings
2021-03-21 22:54 ` Alfred M. Szmidt
2021-03-21 23:05 ` Gregory Heytings
2021-03-21 23:13 ` Alfred M. Szmidt
2021-03-21 23:46 ` Gregory Heytings
2021-03-22 0:40 ` Alfred M. Szmidt
2021-03-22 10:05 ` Gregory Heytings
2021-03-22 18:14 ` Alfred M. Szmidt
2021-03-22 19:06 ` Gregory Heytings
2021-03-22 19:56 ` [External] : " Drew Adams
2021-03-22 21:03 ` Alfred M. Szmidt
2021-03-22 21:26 ` Drew Adams
2021-03-23 8:06 ` Alfred M. Szmidt
2021-03-22 21:08 ` Alfred M. Szmidt
2021-03-22 11:21 ` Jean Louis
2021-03-22 11:07 ` Jean Louis
2021-03-22 3:33 ` Eli Zaretskii
2021-03-22 10:05 ` Gregory Heytings
2021-03-22 11:37 ` Philip Kaludercic
2021-03-22 12:20 ` Gregory Heytings
2021-03-22 17:38 ` Eli Zaretskii
2021-03-22 17:48 ` Gregory Heytings
2021-03-22 18:11 ` Eli Zaretskii
2021-03-22 18:15 ` Alfred M. Szmidt
2021-03-22 18:14 ` Alfred M. Szmidt
2021-03-22 8:59 ` Rudolf Schlatte
2021-03-22 10:05 ` Gregory Heytings
2021-03-22 10:49 ` Jean Louis
2021-03-21 10:48 ` Gregory Heytings
2021-03-21 10:58 ` Sv: " arthur miller
2021-03-21 13:20 ` Gregory Heytings
2021-03-21 18:16 ` Sv: " Alfred M. Szmidt
2021-03-22 5:11 ` Richard Stallman
2021-03-22 10:24 ` Sv: " Jean Louis
2021-03-22 10:14 ` Jean Louis
2021-03-22 12:06 ` Lars Ingebrigtsen
2021-03-22 12:23 ` Gregory Heytings
2021-03-22 16:15 ` Jean Louis
2021-03-22 16:14 ` Jean Louis
2021-03-22 17:08 ` Gregory Heytings
2021-03-22 17:46 ` Alan Mackenzie
2021-03-22 17:59 ` Gregory Heytings
2021-03-22 18:23 ` Alfred M. Szmidt
2021-03-23 6:09 ` Richard Stallman
2021-03-22 18:03 ` Jean Louis
2021-03-22 17:20 ` Robin Tarsiger
2021-03-22 17:40 ` Eli Zaretskii
2021-03-22 17:55 ` Gregory Heytings
2021-03-22 18:13 ` Eli Zaretskii
2021-03-22 20:22 ` Gregory Heytings
2021-03-23 8:06 ` Eli Zaretskii
2021-03-23 14:15 ` Gregory Heytings
2021-03-23 14:37 ` Eli Zaretskii
2021-03-23 16:51 ` Gregory Heytings
2021-03-23 17:13 ` Eli Zaretskii
2021-03-23 18:08 ` Alfred M. Szmidt
2021-03-23 21:06 ` Gregory Heytings
2021-03-23 21:43 ` Alfred M. Szmidt
2021-03-23 21:57 ` Gregory Heytings
2021-03-23 22:08 ` Alfred M. Szmidt
2021-03-23 22:14 ` Gregory Heytings
2021-03-23 22:42 ` Alfred M. Szmidt
2021-03-23 23:05 ` Gregory Heytings
2021-03-24 5:15 ` Richard Stallman
2021-03-24 5:16 ` Richard Stallman
2021-03-24 6:39 ` Jean Louis
2021-03-24 6:32 ` Jean Louis
2021-03-24 6:10 ` Jean Louis [this message]
2021-03-22 18:17 ` Lars Ingebrigtsen
2021-03-22 18:50 ` Eli Zaretskii
2021-03-22 19:09 ` Lars Ingebrigtsen
2021-03-22 19:55 ` Lars Ingebrigtsen
2021-03-22 22:02 ` Stefan Kangas
2021-03-22 22:33 ` [External] : " Drew Adams
2021-03-22 23:28 ` Stefan Kangas
2021-03-22 22:44 ` Dmitry Gutov
2021-03-22 23:22 ` Stefan Kangas
2021-03-23 5:22 ` Jean Louis
2021-03-23 7:43 ` Eli Zaretskii
2021-03-23 12:28 ` Philip Kaludercic
2021-03-23 12:41 ` Eli Zaretskii
2021-03-23 13:09 ` Dmitry Gutov
2021-03-23 13:27 ` Philip Kaludercic
2021-03-23 14:00 ` Dmitry Gutov
2021-03-23 13:54 ` Eli Zaretskii
2021-03-23 17:04 ` Dmitry Gutov
2021-03-23 21:06 ` chad
2021-03-24 5:07 ` Jean Louis
2021-03-25 5:09 ` Richard Stallman
2021-03-23 6:12 ` Yuri Khan
2021-03-24 23:41 ` Dmitry Gutov
2021-03-25 6:12 ` Yuri Khan
2021-03-25 13:20 ` Dmitry Gutov
2021-03-25 14:30 ` Basil L. Contovounesios
2021-03-25 17:09 ` Dmitry Gutov
2021-03-25 18:59 ` Yuri Khan
2021-03-25 19:30 ` Yuri Khan
2021-03-25 21:11 ` Stefan Monnier
2021-03-25 23:54 ` Dmitry Gutov
2021-03-26 10:34 ` Stefan Kangas
2021-03-26 23:13 ` Dmitry Gutov
2021-03-26 23:34 ` Dmitry Gutov
2021-03-27 0:02 ` Stefan Monnier
2021-03-28 13:59 ` Dmitry Gutov
2021-03-22 20:22 ` Gregory Heytings
2021-03-22 20:36 ` Lars Ingebrigtsen
2021-03-22 21:03 ` Alfred M. Szmidt
2021-03-22 20:56 ` Thierry Volpiatto
2021-03-22 18:11 ` [EXTERNAL] " Stephan Mueller
2021-03-22 18:34 ` Lars Ingebrigtsen
2021-03-22 18:56 ` Eli Zaretskii
2021-03-22 19:13 ` Lars Ingebrigtsen
2021-03-22 19:19 ` Eli Zaretskii
2021-03-22 19:25 ` Lars Ingebrigtsen
2021-03-22 19:49 ` Stefan Monnier
2021-03-22 19:52 ` Lars Ingebrigtsen
2021-03-22 20:54 ` Stefan Monnier
2021-03-22 21:04 ` Lars Ingebrigtsen
2021-03-23 7:18 ` Eli Zaretskii
2021-03-22 19:21 ` chad
2021-03-22 19:26 ` Eli Zaretskii
2021-03-22 19:51 ` Stefan Monnier
2021-03-22 20:04 ` Eli Zaretskii
2021-03-22 20:11 ` Lars Ingebrigtsen
2021-03-22 20:16 ` Lars Ingebrigtsen
2021-03-23 7:04 ` Eli Zaretskii
2021-03-22 20:49 ` Stefan Monnier
2021-03-22 21:02 ` [External] : " Drew Adams
2021-03-23 7:09 ` Eli Zaretskii
2021-03-22 19:28 ` Lars Ingebrigtsen
2021-03-22 19:56 ` [External] : " Drew Adams
2021-03-22 20:56 ` Stefan Monnier
2021-03-22 21:19 ` Drew Adams
2021-03-22 20:22 ` Gregory Heytings
2021-03-23 8:09 ` Eli Zaretskii
2021-03-23 14:15 ` Gregory Heytings
2021-03-23 14:31 ` Eli Zaretskii
2021-03-23 17:21 ` Bob Rogers
2021-03-24 5:42 ` Jean Louis
2021-03-23 20:55 ` chad
2021-03-25 17:04 ` [EXTERNAL] " Stephan Mueller
2021-03-22 19:37 ` Stefan Monnier
2021-03-22 19:42 ` Dmitry Gutov
2021-03-22 20:33 ` Jose A. Ortega Ruiz
2021-03-22 18:42 ` Sean Whitton
-- strict thread matches above, loose matches on Subject: below --
2021-03-23 21:51 Paul W. Rankin via Emacs development discussions.
2021-03-24 8:34 ` Lars Ingebrigtsen
2021-03-24 8:51 ` tomas
2021-03-24 9:16 ` Paul W. Rankin via Emacs development discussions.
2021-03-24 9:22 ` tomas
2021-03-24 10:37 ` Eli Zaretskii
2021-03-24 11:13 ` tomas
2021-03-24 11:51 ` Jean Louis
2021-03-24 11:55 ` tomas
2021-03-25 5:14 ` Richard Stallman
2021-03-24 17:04 ` Eli Zaretskii
2021-03-24 17:19 ` tomas
2021-03-24 17:30 ` Dmitry Gutov
2021-03-24 20:08 ` tomas
2021-03-25 5:14 ` Richard Stallman
2021-03-25 5:48 ` Paul W. Rankin via Emacs development discussions.
2021-03-25 7:46 ` Eli Zaretskii
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=YFrX1sPrEADiE9Rg@protected.localdomain \
--to=bugs@gnu.support \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=gregory@heytings.org \
--cc=larsi@gnus.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.