unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Gregory Heytings <gregory@heytings.org>
To: "Philip K." <philipk@posteo.net>
Cc: emacs-devel@gnu.org
Subject: Re: PROPOSAL: Repurpose one key and reserve it for third-party packages
Date: Wed, 10 Feb 2021 11:07:18 +0000	[thread overview]
Message-ID: <3966473cc1ab9f104724@heytings.org> (raw)
In-Reply-To: <87tuqk6d9d.fsf@posteo.net>


>>> Configuring a package, that provides a command as it's interface, 
>>> should be done by binding it to a key reserved for users. Just like 
>>> how configuring a minor mode is done by adding it to a hook or a major 
>>> mode by adding it to auto-mode-alist.
>>
>> What most users do is that they install third-party packages through 
>> their distro package manager, or through Elpa or Melpa, and they just 
>> expect / would like it to work.  That's what would happen when you 
>> install extension packages in most (if not all) other software 
>> (editors, browsers, ...): you don't have to manually fiddle with 
>> configuration files to make them work.
>
> If I install ffmpeg via apt on a Debian system, I expect it to work, in 
> the sense that I can invoke the command from the terminal whenever I 
> want to use it.  I don't think the analogy works for browsers, since 
> add-ons are usually filters or added to right-click menus.
>

The point is that those "filters" or "right-click menus" are activated, 
you can use them right away, you don't have to manually edit, say, the 
~/.config/chromium/init.js file beforehand.  If you had to do that, you 
would likely think it's a badly designed browser.  All Emacs users are not 
programmers like you and me.

>
> What might be interesting would be something like the gnu-elpa 
> package[0], or something that goes in the other direction, where a 
> package can recommend a keybinding, hook, etc. and "automatically" 
> configure itself if the user agrees.
>

If there is no keymap reserved for package keybindings, packages simply 
cannot do that.  The point of the proposal is only to make that possible.

>
> The problem I see is that key-bindings are usually user configuration, 
> and e.g. Magit *works* without them. I can do M-x magit-status, right 
> after installing it. No extra configuration necessary. But if I want to 
> have it easier, it's easy to add.
>

For you and me, yes.  For Emacs users in general, no.

>
> I think Ivy is a good example where this should *not* be the case, 
> because it changes the user-interface that can be confusing.
>

When you install a package whose purpose is to change the user interface, 
you expect it will change the user interface, don't you?  When you install 
an ad-blocker in your browser, you expect it will block ads, don't you?

>
> Packaging doesn't do configuration, and we shouldn't encourage this 
> misunderstanding.
>

Some users, like you and me, don't want Emacs packages to automatically 
configure themselves, that's fine and will always be possible.  Other 
users, like me when I install a GIMP plugin, want that GIMP plugin to be 
automatically configured.  I would be very confused if I had to manually 
edit the ~/.config/GIMP/X.YZ/gimprc and/or ~/.config/GIMP/X.YZ/pluginrc 
before using a plugin.



      reply	other threads:[~2021-02-10 11:07 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-07 22:05 PROPOSAL: Repurpose one key and reserve it for third-party packages Gregory Heytings
2021-02-08  0:13 ` Ergus
2021-02-08  2:57 ` Jorge Javier Araya Navarro
2021-02-08  3:46 ` Richard Stallman
2021-02-08  7:20   ` Stefan Kangas
2021-02-08 14:58     ` Lars Ingebrigtsen
2021-02-08 21:00       ` Gregory Heytings
2021-02-08 21:33       ` Stefan Monnier
2021-02-09  8:13         ` Lars Ingebrigtsen
2021-02-09 16:54           ` Sean Whitton
2021-02-09 17:13             ` Lars Ingebrigtsen
2021-02-09 17:43             ` Eli Zaretskii
2021-02-09 21:21               ` Sean Whitton
2021-02-10 21:43                 ` Bindings for setting faces (was: PROPOSAL: Repurpose one key and reserve it for third-party packages) Kévin Le Gouguec
2021-02-09 18:37             ` PROPOSAL: Repurpose one key and reserve it for third-party packages Stefan Monnier
2021-02-08 22:45       ` Stefan Kangas
2021-02-08 15:45     ` Thibaut Verron
2021-02-08 23:01       ` Stefan Kangas
2021-02-09  3:20         ` [External] : " Drew Adams
2021-02-09  9:13         ` Simen Heggestøyl
2021-02-09  9:30         ` Juri Linkov
2021-02-09 13:01           ` Gregory Heytings
2021-02-08 21:00     ` Gregory Heytings
2021-02-09  6:03     ` Richard Stallman
2021-02-08 12:36   ` Alan Mackenzie
2021-02-08 21:00   ` Gregory Heytings
2021-02-08  4:52 ` Robin Tarsiger
2021-02-08  8:41   ` Thibaut Verron
2021-02-08 17:07     ` Robin Tarsiger
2021-02-11 12:59     ` Arthur Miller
2021-02-08 21:00   ` Gregory Heytings
2021-02-09  7:42     ` Yuri Khan
2021-02-09  8:23       ` Gregory Heytings
2021-02-08 23:14   ` Stefan Monnier
2021-02-09  8:23     ` Gregory Heytings
2021-02-08 12:42 ` Augusto Stoffel
2021-02-08 21:00   ` Gregory Heytings
2021-02-08 14:54 ` Dmitry Gutov
2021-02-08 21:00   ` Gregory Heytings
2021-02-08 17:59 ` Sean Whitton
2021-02-08 22:40   ` Eric Abrahamsen
2021-02-09 16:45     ` Sean Whitton
2021-02-10  5:28       ` Richard Stallman
2021-02-10  9:29         ` Thibaut Verron
2021-02-11 13:37           ` Richard Stallman
2021-02-11 13:52             ` Thibaut Verron
2021-02-10 10:42         ` Alfred M. Szmidt
2021-02-10 11:35           ` Thibaut Verron
2021-02-10 12:59             ` Alfred M. Szmidt
2021-02-10 13:09             ` vc-magit mode (was: Re: PROPOSAL: Repurpose one key and reserve it for third-party packages) Alfred M. Szmidt
2021-02-10 13:25               ` Thibaut Verron
2021-02-10 13:34               ` vc-magit mode Dmitry Gutov
2021-02-10 15:33               ` vc-magit mode (was: Re: PROPOSAL: Repurpose one key and reserve it for third-party packages) Eli Zaretskii
2021-02-10 16:47                 ` Alfred M. Szmidt
2021-02-10 17:22                   ` Eli Zaretskii
2021-02-11 13:37           ` PROPOSAL: Repurpose one key and reserve it for third-party packages Richard Stallman
2021-02-11 14:38             ` Stefan Kangas
2021-02-11 15:13               ` Robert Pluim
2021-02-11 16:08                 ` Stefan Monnier
2021-02-12  8:21                   ` Alfred M. Szmidt
2021-02-12  8:36                     ` Robert Pluim
2021-02-12 15:11                       ` Alfred M. Szmidt
2021-02-13  3:26                       ` Richard Stallman
2021-02-10 11:07         ` Gregory Heytings
2021-02-10 13:00           ` Alfred M. Szmidt
2021-02-10 13:59             ` Gregory Heytings
2021-02-10 14:10               ` Alfred M. Szmidt
2021-02-10 14:51                 ` Gregory Heytings
2021-02-10 15:12                   ` Alfred M. Szmidt
2021-02-10 15:23                     ` Gregory Heytings
2021-02-10 16:35               ` [External] : " Drew Adams
2021-02-10 16:35             ` Drew Adams
2021-02-10 17:05               ` Stefan Monnier
2021-02-11 13:37           ` Richard Stallman
2021-02-11 13:55             ` Gregory Heytings
2021-02-12  9:40       ` Jean Louis
2021-02-08 20:32 ` Ulrich Mueller
2021-02-08 21:00   ` Gregory Heytings
2021-02-08 21:37     ` Ulrich Mueller
2021-02-08 22:00       ` Gregory Heytings
2021-02-09 16:57       ` Sean Whitton
2021-02-09 17:19         ` Gregory Heytings
2021-02-09 17:59           ` Ulrich Mueller
2021-02-09 18:24             ` Gregory Heytings
2021-02-09 18:19           ` Thibaut Verron
2021-02-09 19:16             ` Gregory Heytings
2021-02-09 19:28               ` Thibaut Verron
2021-02-09 20:15                 ` Gregory Heytings
2021-02-09 19:47               ` Stefan Monnier
2021-02-09 22:19             ` Gregory Heytings
2021-02-09 21:34           ` Sean Whitton
     [not found] ` <8735y56naf.fsf@posteo.net>
     [not found]   ` <8ed9b43502ae9a36b057@heytings.org>
2021-02-09 23:18     ` Philip K.
2021-02-10 11:07       ` Gregory Heytings [this message]

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=3966473cc1ab9f104724@heytings.org \
    --to=gregory@heytings.org \
    --cc=emacs-devel@gnu.org \
    --cc=philipk@posteo.net \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).