Emacs setup assistants
eliz at gnu.org
Thu May 20 14:31:19 EDT 2004
> From: David Kastrup <dak at gnu.org>
> Date: 20 May 2004 19:00:41 +0200
> If we could replace things like
> "To do this, press M-x customize-variable RET
> preview-default-option-list RET and make sure that [...]" with
> "press here to customize this behavior", then people would not be
> forced to jump between customization buffers and manual forth and
I support this goal.
> > > Isolated customization strings don't do that.
> > I didn't say isolated strings.
> You said, this is nothing that could not be done with variable
> documentation/customize documentation. This stuff is
> variable-specific. You have no idea in what sequence the user might
> try customizing variables. Therefore, you are working with isolated
> strings. They are not arranged by topic, but by variables.
> That's isolated, without context.
I think we might be miscommunicating. The text I had in mind was
normal text that we see even today in the Customize buffer. For
example, here is the text we see at the beginning of that buffer:
This is a customization buffer for group Emacs.
`Raised' buttons show active fields; type RET or click mouse-1
on an active field to invoke its action. Editing an option value
changes the text in the buffer; invoke the State button and
choose the Set operation to set the option value.
Invoke Help for more information.
We could have similar text fragments that guide the user thru the
> > Writing a 10-sentence explanation for a specific aspect of something
> > doesn't require something as elaborate as Texinfo.
> And where do you put this explanation?
Between the widgets that customize options.
> How does the user get the idea to access it in the first place?
The idea is that the user reads the text in the buffer top to bottom.
Each time there's a small fragment of text followed by an option that
the user may wish to customize; the text explains how to go about
selecting the value for that option.
> > The, IMHO, challenge is to organize those pieces of information in a
> > way that in every specific case we only display the text that
> > explains what the user currently cares about.
> But the name of a variable is the worst user interface for a user to
> tell the system what he cares about being informed
Indeed. That's why I didn't think about organizing by variable names,
like Customize does today. What we need is some way of creating a
buffer where options are layed out in a certain order defined by the
author of the assistant, and are interspersed with short fragments of
It would probably make sense to use some kind of outline mode in such
a buffer, whereby the user first sees only an outline of the
customization process (like one line per step); clicking on that line
would then reveal the details of that step. Other buttons or links
could lead to advanced customization options and in-depth descriptions
for those who want that.
There are several features designed along similar lines floating
around; 2 examples off the top of my head are the Troubleshooting site
for HP printers (sorry, no URL), and that obnoxious paper clip from MS
Office that pops up its stupid advice every now and then.
In short, I'm talking about specialized interactive tutorial, and it
seemed to me that Customize, if appropriately enhanced and augmented,
could do the job. But even if not, I don't see why an infrastructure
for such a feature could not have some other Lispy foundation, rather
than a Texinfo foundation.
I hope I made my intent more clear now.
More information about the XEmacs-Beta