From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Ergus Newsgroups: gmane.emacs.devel Subject: Re: PROPOSAL: Repurpose one key and reserve it for third-party packages Date: Mon, 8 Feb 2021 01:13:31 +0100 Message-ID: <20210208001331.le6dwphf53qforse@Ergus> References: <7ef75c33936136eb3a20@heytings.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9315"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Gregory Heytings Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Feb 08 01:15:07 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l8uCm-0002JI-Uh for ged-emacs-devel@m.gmane-mx.org; Mon, 08 Feb 2021 01:15:05 +0100 Original-Received: from localhost ([::1]:54536 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l8uCl-0001Ns-TP for ged-emacs-devel@m.gmane-mx.org; Sun, 07 Feb 2021 19:15:03 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37188) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l8uBh-0000ZV-BP for emacs-devel@gnu.org; Sun, 07 Feb 2021 19:13:57 -0500 Original-Received: from sonic314-14.consmr.mail.bf2.yahoo.com ([74.6.132.124]:40591) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l8uBf-00012e-4B for emacs-devel@gnu.org; Sun, 07 Feb 2021 19:13:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1612743233; bh=cZ7C0D3lR3QdkEkJ8PJya6q4JIDRNaOmchLkEkDaHEM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From:Subject:Reply-To; b=A75udCUXo+Rz0CRrQEa5nODGRVcDtEO1EZ0nkRbayGaXIz8mD7PfGMGzltVpOI2MGvMcOhefoc/R2X4V44WY5jQU+xKI4rCDyPGQ1XgO7O/TFqpPfnLOYjoTGURJP8mQ9Qg5Ol0EAxLZ73z0/NrlZVm1rlTPCLqyzY6WyRyXSEOEaOEJe8rc2ouHIChJjo4Fi3EgyypXeAl4pBxUsiuoGn+98J8PmMPRluPOzSQAC+5Xq+mbuRokCq8DejeWBpRDPuNuqZEQkDGLE0bcfl/e/zQ0EKO/tLMoeaD8qvRZspGxlVYMc9NPjlmlUqqVWfMRlDVviz87j/wR0Be/UjjTOQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1612743233; bh=N6k6loY83QLCwOXkiY4oVGq2bJhEvInfgK+wcujz758=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=kEi+HPyyhiVZ2oZor01TueR1RDOE9Odc1ct95433Icui55uSV8Td43QyRgAhNGxj6SE9apVz0j75jSf/ony+bzUHRoYBkJgl3lFvvyXJYIc71ftEJGtzjdTBs4x0kugYN1744e8rCDISpbkggwo55BQ5R/opo/ygASzkeGN64dUG0Y3/aUCZAyLEJNAzJhs+RGroSFesxdGlWccYOm0l+qHc4jr/TSFimBhY+bjs283xOpkgkMRjkr2dNIa6DGmY1QEJtu8PojuMjXklSE+aVDy8dKn69QWQkmq+SJOLre938F6iOhNRaxP5VIGgef3yDT7Lyb8jonQ3HkPtizHybA== X-YMail-OSG: hGhLYmIVM1kMuTKS_pO0fseLSurTmo7_0TZLbfsFqB7teLMjewz6FR5F_.Lira_ gaYoikUnAqbWZFyAv1kN1LbjWHoT00lIdkJDAeIelMvx50CJ7JTA12Lekb52H4NyD1IHbVZ.ckNS .uhYR.76oMIt9dNVCwunsQAUL6rCoxUfDb7jxWDlB7cz64BvOmZJ34DyOtlhybu.Jf0WPPmtuC4O K4JPafHNRdkUjRAd3Bf9tfkqqt5In26jLR6UDH4PmFIys8KPv8rjLKv4A9qgqVlNdmkIB06WY4Do d8ZgzSChY53NY7XTazg4ZxVEMeDgbJbuXZUCSXLjaFAqXiR2qgcas6S0.VhSmReklSQqLmpGVHZP RMUWsA6EdHOdtMQCoDVfAEVAmcofOYNwXYlBcQgx4RXVATDkqjLRSBiscSjDClbIlxVtnD1upb8x wTnAgw2Mc8aLCvjYldmqqiq2yytV0M6MyzDOY8EuPX_STfzrRLoaUN1gtuTJNN6Rj80mGrLhLM0e Lf2X0SGfhtBIHmyiHjrkolig74oGrdW5K.kqMVn8iKlErJ.a44r5aRc7SNdZ35eHOwn8pb89Z3Yp lsVqoZrVVSimc6IODGWxgDjdbumRMGKGIcGS0sZHDwImpqizNCI2yvh8BTu9DKKUrqoFdD0R8cLr WgIyYgBeOGNbWSoL.fO3pP.9nqG5RUAxu0GHgCHu__LnejwtF4wsJh5qq661Ey9cPWtZFUJu5OHQ XLjIHVr7PPYCOVsFEzM.vCRide6OaTAEDAeTyY68_SNGRswrsla82URDItQ5EymUWf1FvWk9hXx4 qS2bOTP2XKkHiDlJgYUvgr1o0eqycrE1Lj6UNoEodp X-Sonic-MF: Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.bf2.yahoo.com with HTTP; Mon, 8 Feb 2021 00:13:53 +0000 Original-Received: by smtp424.mail.ir2.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 30ee94400fbfe90be33c5595232ca9bc; Mon, 08 Feb 2021 00:13:48 +0000 (UTC) Content-Disposition: inline In-Reply-To: <7ef75c33936136eb3a20@heytings.org> X-Mailer: WebService/1.1.17648 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.aol Apache-HttpAsyncClient/4.1.4 (Java/11.0.8) Received-SPF: pass client-ip=74.6.132.124; envelope-from=spacibba@aol.com; helo=sonic314-14.consmr.mail.bf2.yahoo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:264147 Archived-At: Hi Gregory: IMO We shouldn't try to change C-o if we want an agreement. But all the changes sound reasonable due to the current situation. In other editors C-o is open file... just to say. On Sun, Feb 07, 2021 at 10:05:50PM +0000, Gregory Heytings wrote: > >=Proposal= > >It is proposed to repurpose one key, and to reserve it in the key >binding conventions for third-party packages. The keys that could be >reserved for that purpose are: > >Option 1. C-z, with a single exception: "C-z C-z" would be bound to >"suspend-frame" > >Option 2. C-z and M-z, with two exceptions: "C-z C-z" would be bound >to "suspend-frame", and "M-z M-z" to "zap-to-char" > >Option 3. C-o, with a single exception: "C-o C-o" would be bound to >"open-line" > >Option 4. C-o and M-o, with two exceptions: "C-o C-o" would be bound >to "open-line", and "M-o M-o" to "facemenu-keymap" > >=Rationale= > >The current key binding conventions (see `(elisp) Key Binding >Conventions') reserve keys for users, for major modes and for minor >modes, but not for third-party packages [1]. > >When such packages need to bind a command to a key, they can (1) >either suggest users to bind it to a key reserved for users (for >example, org-mode suggests to globally bind "C-c c" to org-capture), >or (2) bind it to a key currently unused by Emacs (for example, Magit >binds "C-x g" to magit-status in buffers visiting a file in a Git >repository). > >Neither of these solutions are optimal: (1) requires an explicit >configuration by the user, something which might confuse newcomers, >and which other users might not want to do because they already use >the keys reserved for users for other purposes, and (2) might conflict >with the evolution of Emacs when one or more commands are bound to a >yet unused key. > >Reserving one key for third-party packages solves the above problems: >third-party packages can automatically bind a few keys in that >reserved area, without conflicting with keys reserved for users and >without conflicting with future Emacs evolutions. > >=Limit= > >Conflicts are still possible, when two or more packages bind the same >keys. These are, however, conflicts between packages, not between a >package and Emacs, or between a package and users' personal >configurations. > >Such conflicts are also less likely for typical users, who install a >few packages each binding a few keys. > >Finally, such conflicts can be dealt with without confusing users too >much: a package could automatically choose fallback key bindings when >the preferred ones are already used by another package, and/or issue a >warning to the user that they need to bind its commands manually. > >=Note= > >[1] These conventions were written 25 years ago, at a time when there >were far fewer third-party packages, and have not changed >substantially since them. >