all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Stephen J. Turnbull" <turnbull@sk.tsukuba.ac.jp>
To: "Óscar Fuentes" <ofv@wanadoo.es>
Cc: emacs-devel@gnu.org
Subject: Re: Emacs User Friendliness Question/Hope
Date: Sun, 18 Jul 2010 21:36:21 +0900	[thread overview]
Message-ID: <87pqylynju.fsf@uwakimon.sk.tsukuba.ac.jp> (raw)
In-Reply-To: <87mxtq7ql8.fsf@telefonica.net>

Óscar 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.
 > 
 > 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+<key> or Meta+<key> 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.




  parent reply	other threads:[~2010-07-18 12:36 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-16 10:48 Emacs User Friendliness Question/Hope Jeff Clough
2010-07-16 14:07 ` Uday S Reddy
2010-07-16 14:30   ` Jeff Clough
2010-07-16 14:38     ` Deniz Dogan
2010-07-16 15:26       ` Jeff Clough
2010-07-16 17:01         ` Chad Brown
2010-07-16 22:50       ` Phil Hagelberg
2010-07-17  0:16         ` Fernando C.V.
2010-07-17  1:41         ` Christoph
2010-07-17  2:11           ` Miles Bader
2010-07-17  3:08             ` Óscar Fuentes
2010-07-17  3:34               ` Miles Bader
2010-07-18 12:36               ` Stephen J. Turnbull [this message]
2010-07-18 12:59                 ` Deniz Dogan
2010-07-18 13:20                   ` Geoff Gole
2010-07-18 14:10                     ` Stephen J. Turnbull
2010-07-19 14:37                       ` Geoff Gole

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=87pqylynju.fsf@uwakimon.sk.tsukuba.ac.jp \
    --to=turnbull@sk.tsukuba.ac.jp \
    --cc=emacs-devel@gnu.org \
    --cc=ofv@wanadoo.es \
    /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.