From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stephen J. Turnbull" Newsgroups: gmane.emacs.devel Subject: Re: Emacs User Friendliness Question/Hope Date: Sun, 18 Jul 2010 21:36:21 +0900 Message-ID: <87pqylynju.fsf@uwakimon.sk.tsukuba.ac.jp> References: <1279277325.2135.114.camel@logrus.localdomain> <1279290657.2135.131.camel@logrus.localdomain> <4C410A4C.3070508@gmail.com> <87k4ou26yc.fsf@catnip.gol.com> <87mxtq7ql8.fsf@telefonica.net> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1279457761 30357 80.91.229.12 (18 Jul 2010 12:56:01 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 18 Jul 2010 12:56:01 +0000 (UTC) Cc: emacs-devel@gnu.org To: =?iso-8859-1?Q?=D3scar?= Fuentes Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jul 18 14:55:59 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OaTPN-0000HV-Tw for ged-emacs-devel@m.gmane.org; Sun, 18 Jul 2010 14:55:54 +0200 Original-Received: from localhost ([127.0.0.1]:47979 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OaTPN-0001bj-Fg for ged-emacs-devel@m.gmane.org; Sun, 18 Jul 2010 08:55:53 -0400 Original-Received: from [140.186.70.92] (port=55684 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OaTPG-0001a8-Uy for emacs-devel@gnu.org; Sun, 18 Jul 2010 08:55:47 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OaTPF-0000iE-GU for emacs-devel@gnu.org; Sun, 18 Jul 2010 08:55:46 -0400 Original-Received: from mtps02.sk.tsukuba.ac.jp ([130.158.97.224]:50888) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OaTPF-0000hB-1O for emacs-devel@gnu.org; Sun, 18 Jul 2010 08:55:45 -0400 Original-Received: from uwakimon.sk.tsukuba.ac.jp (uwakimon.sk.tsukuba.ac.jp [130.158.99.156]) by mtps02.sk.tsukuba.ac.jp (Postfix) with ESMTP id 5B28B820F; Sun, 18 Jul 2010 21:34:42 +0900 (JST) Original-Received: by uwakimon.sk.tsukuba.ac.jp (Postfix, from userid 1000) id 343B01A26B9; Sun, 18 Jul 2010 21:36:21 +0900 (JST) In-Reply-To: <87mxtq7ql8.fsf@telefonica.net> X-Mailer: VM 8.0.12-devo-585 under 21.5 (beta29) "garbanzo" ed3b274cc037 XEmacs Lucid (x86_64-unknown-linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:127550 Archived-At: =D3scar Fuentes writes: > I possible solution for this problem is to use `actions'. An action > is a generic concept like `fordward-line', or `undo', or `save', or > `yank' (`paste', if you prefer.) `universal-argument', > `execute-extended-command' and `C-x' (whatever is officially called > on Emacs jargon) would be actions as well. >=20 > Currently a mode defines its keymap relating keys to functions. > > An action-aware mode relates actions to functions. I hate to tell you this, but since the vast majority of Emacs keys are bound to *named commands*, we already have one layer of configurable actions available to the LISP programmer. Now you're suggesting another. This isn't going to help. (Not to mention that in Emacsen on X there are already a bunch of other, hidden layers that you can work with if you want.) You see, the problem is not that commands aren't flexible enough. It's that keymaps aren't, and can't be. Consider the CUA problem. People talk a lot about the C-x map and how CUA interferes with that. But that's actually trivial! C-x is actually bound to a keymap, and so you can just move the whole thing elsewhere. It's more annoying, but almost algorithmic, to move all the mnemonic movement commands elsewhere. And almost all editing modes bind very few of the Ctrl+ or Meta+ chords, instead using a sparse keymap with fundamental as the parent. So why do the long-timers think of this as cleaning the Augean Stables? Because there are scores of modes, and they differ widely on on what the variant keys are, and what they do. > This can be extended to menus and buttons on the toolbar, so a button > that implements an action is useful for all modes that support that > action. There simply aren't enough keys and toolbar real estate. (Menus are a different kettle of fish.) To give you an idea, /usr/include/X11/DECkeysym.h defines 1 action, /usr/include/X11/HPkeysym.h defines 67 actions (perhaps 40 of these are OSF actions designed to work exactly as you describe), and /usr/include/X11/keysymdefs.h 289 actions. As the Motif/OSF folks found, you are still going to have conflicts across applications, and adding one more layer of indirection to the hardware->keycode->keysym-> Emacs event->Emacs keysym->command keyboard handler stack just doesn't help with that. (Which is what Miles said, of course. I'm just more long-winded, as usual.) Anyway, you or anybody else are welcome to try despite my misgivings. But I'm convinced; I never liked sweeping slinging horse manure and rotten hay, and I'm not going to start here.