* A new filter-based customization interface
@ 2024-12-09 3:37 Moakt Temporary Email
2024-12-10 19:56 ` Philip Kaludercic
2024-12-24 4:51 ` Richard Stallman
0 siblings, 2 replies; 6+ messages in thread
From: Moakt Temporary Email @ 2024-12-09 3:37 UTC (permalink / raw)
To: emacs-devel
Hi everyone,
I am proposing a new beginner-friendly customization interface, which would make emacs more attractive for newcomers, be it actual developers, future developers to be, and even non-developers (writers, students, professors, teachers, etc.), and any lambda person having interest in using emacs.
I added a screenshot of what such an interface might look like (which is better than words).
https://justpaste.it/fdau4.
The main idea of this customization interface is to help users quickly and easily customize emacs for the actual task(s) they need, by providing familiar filters so they can quickly select and access the relevant customizations.
For example, they can select “irc”, “ide”, “agenda”, “completion”, “version control”, “c++”, etc, to filter the customizations relevant to use emacs as an IRC client, IDE, etc.
Today this not possible, and would require new users days and weeks to configure emacs, which would discourage and thus discard lot of them from using emacs.
Do you think this is something achievable in emacs ?
Do you think the actual customization interface can be enhanced to include these changes ? Or should it be a new separate interface ?
I have added all the details about this idea here:
https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00174.html
(It is too long to read, that is why I am sending this separate message).
Thank you
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: A new filter-based customization interface
2024-12-09 3:37 A new filter-based customization interface Moakt Temporary Email
@ 2024-12-10 19:56 ` Philip Kaludercic
2024-12-12 4:48 ` Richard Stallman
2024-12-24 4:51 ` Richard Stallman
1 sibling, 1 reply; 6+ messages in thread
From: Philip Kaludercic @ 2024-12-10 19:56 UTC (permalink / raw)
To: Moakt Temporary Email; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 593 bytes --]
Moakt Temporary Email <emacs-devel-proposal@drmail.in> writes:
> Hi everyone,
>
> I am proposing a new beginner-friendly customization interface, which
> would make emacs more attractive for newcomers, be it actual
> developers, future developers to be, and even non-developers (writers,
> students, professors, teachers, etc.), and any lambda person having
> interest in using emacs.
>
> I added a screenshot of what such an interface might look like (which is better than words).
> https://justpaste.it/fdau4.
As this site is rather slow, here is the same image attached to this
message:
[-- Attachment #2: bde00610157f1ad327d8d066d5bc1744.png --]
[-- Type: image/png, Size: 334041 bytes --]
[-- Attachment #3: Type: text/plain, Size: 1701 bytes --]
> The main idea of this customization interface is to help users quickly
> and easily customize emacs for the actual task(s) they need, by
> providing familiar filters so they can quickly select and access the
> relevant customizations.
>
> For example, they can select “irc”, “ide”, “agenda”, “completion”,
> “version control”, “c++”, etc, to filter the customizations relevant
> to use emacs as an IRC client, IDE, etc.
My question is how this is worse or better than having some kind of
attributes added to user options and then having a
`customise-group'-like command that presents all suggested "irc", "ide",
"agenda", ... options.
But generally speaking, it seems that beginners are not interested in
being overburdened with all the things they can decide on (even if this
is categorised), but rather to have as many thing as possible to DTRT OOTB.
> Today this not possible, and would require new users days and weeks to configure emacs, which would discourage and thus discard lot of them from using emacs.
>
> Do you think this is something achievable in emacs ?
> Do you think the actual customization interface can be enhanced to include these changes ? Or should it be a new separate interface ?
I tend to feel that it would be better to have a separate UI with fewer
choices (beginners are probably not /that/ interested in the differences
between saving something for this session or permanently, I'd think?).
> I have added all the details about this idea here:
> https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00174.html
> (It is too long to read, that is why I am sending this separate message).
>
> Thank you
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: A new filter-based customization interface
2024-12-10 19:56 ` Philip Kaludercic
@ 2024-12-12 4:48 ` Richard Stallman
0 siblings, 0 replies; 6+ messages in thread
From: Richard Stallman @ 2024-12-12 4:48 UTC (permalink / raw)
To: Philip Kaludercic; +Cc: emacs-devel-proposal, emacs-devel
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
I looked at the image you sent. I supposed it is supposed to be
self-explanatory, but as often happens for graphical interfaces, I
can't tell the meaning of what I see.
In order for a graphica interface to be natural and self-evident,
it should to be clear just by looking what each visual item means.
Is it an alternative you can select?
Is it a heading which describes the role of whatever follows?
Is it a command you can click on to control the interface?
These things are not clear to me.
Here are some of the visuak aspects for which the meaning is not clear to me.
* There is a bunch of lines at the top which start with
Filter by
1. categoryL
interfaceL modeline tookbar,..
general: startup quit backup...
What do tese names mean? Are they related to custom group names?
Some of them sare names of custom groups, but some are not.
What does each of these names mean?
* Is that an exhaustive list of all "categories"?
* If so, are you supposed to click on one to select it?
* Or are some categories someho selexted now, and this is a list of the
ones that are selected right now?
* How does the fact that a category is selected
affect what happens in the rest of this display?
The next thing it says is
Sort by: package
What does that mean? Is "package" one of several psople choices? If
so, what are the other possible choices and how do you specify another choice?
Then it says
Selected Customizations:
What does that expression "selected customizations" mean? What
determines which customizations are selected? How do you control
which ones are selected? And what do you achieve by controlling that?
How does this relate to M-x customize...?
It looks like the names of these things do NOT match names of user options.
Each item and value seem to be followed by some sort of classification,
but what do they mean? They do not seem to be custom groups.
Where are they defined? For instance, two say :modeline:, What does
that indicate?
What does [X] mean? Does it mean "this is enabled"?
If so, what indicates "this is not enabled"?
--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: A new filter-based customization interface
2024-12-09 3:37 A new filter-based customization interface Moakt Temporary Email
2024-12-10 19:56 ` Philip Kaludercic
@ 2024-12-24 4:51 ` Richard Stallman
2024-12-24 21:10 ` Björn Bidar
1 sibling, 1 reply; 6+ messages in thread
From: Richard Stallman @ 2024-12-24 4:51 UTC (permalink / raw)
To: Moakt Temporary Email; +Cc: emacs-devel
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
> I added a screenshot of what such an interface might look like (which
> is better than words). https://justpaste.it/fdau4.
That site seems to depend on nonfree Javascript code. Those of us who
block nonfree Javascript. or block Javascript entirely, cannot see
whatever you meant to show us.
Even worse, there are people on the lis who do not block nonfree
Javascript in their browsers. By referring to that site, you are
promoting the use of nonfree software! And, in the process,
legitimizing the use and distrbution of nonfree software -- which is
the direct opposite of the goal of GNU.
Would you please describe or present your idea in a way that we can
understand without running nonfree software? Then we could all think
about adding it to Emacs.
Emacs already has a general configuration interface, which you can
access using M-x configure. It at least tries to do what you have in
mind. Your approach, if implemented without nonfree software,
might be better in some ways.
Would you like to familiarize yourself with M-x configure and related
commands, see what it does and what it doesn't do, and describe
your idea in terms of how it differs from what we already have?
Do the differences concern manner of display, or the semantics
of the customization methods?
M-x configure displays through Emacs buffers and Emacs redisplay
because that is the facility that is always avaiable (in Emacs).
Using some other basis could look nicer, but would be a lot more work
to implement and to maintain in various situations.
However, different semantics might not have such an obstacle.
--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: A new filter-based customization interface
2024-12-24 4:51 ` Richard Stallman
@ 2024-12-24 21:10 ` Björn Bidar
0 siblings, 0 replies; 6+ messages in thread
From: Björn Bidar @ 2024-12-24 21:10 UTC (permalink / raw)
To: Richard Stallman; +Cc: Moakt Temporary Email, emacs-devel
Richard Stallman <rms@gnu.org> writes:
> [[[ To any NSA and FBI agents reading my email: please consider ]]]
> [[[ whether defending the US Constitution against all enemies, ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
> > I added a screenshot of what such an interface might look like (which
> > is better than words). https://justpaste.it/fdau4.
>
> That site seems to depend on nonfree Javascript code. Those of us who
> block nonfree Javascript. or block Javascript entirely, cannot see
> whatever you meant to show us.
The website works entirely without JavaScript.
But there you go:
https://jpcdn.it/img/bde00610157f1ad327d8d066d5bc1744.png
> Even worse, there are people on the lis who do not block nonfree
> Javascript in their browsers. By referring to that site, you are
> promoting the use of nonfree software! And, in the process,
> legitimizing the use and distrbution of nonfree software -- which is
> the direct opposite of the goal of GNU.
People promote non-free software all the on this list e.g. with
@gmail in their addresses or talk about non-free operating systems.
There's even a package solely to support non-free software in Elpa.
> Would you please describe or present your idea in a way that we can
> understand without running nonfree software? Then we could all think
> about adding it to Emacs.
Emails allow for attachments.
> Emacs already has a general configuration interface, which you can
> access using M-x configure. It at least tries to do what you have in
> mind. Your approach, if implemented without nonfree software,
> might be better in some ways.
> Would you like to familiarize yourself with M-x configure and related
> commands, see what it does and what it doesn't do, and describe
> your idea in terms of how it differs from what we already have?
>
> Do the differences concern manner of display, or the semantics
> of the customization methods?
The configure interface looks at times very old. I.e. in context of the
search it is very hard to see what the results actually are yes it does
show categories and settings items but it doesn't not show where they
are from e.g. as in which catergory a item is from or what tags it could
have.
I'm aware that Custom doesn't track tags but it is expected that most
system do use them or at least understand them for searching.
> M-x configure displays through Emacs buffers and Emacs redisplay
> because that is the facility that is always avaiable (in Emacs).
> Using some other basis could look nicer, but would be a lot more work
> to implement and to maintain in various situations.
The problem isn't eye-candy, functionality is the problem, e.g. in
discoverability. Improvements would help mostly beginner level users but
also long term users could benefit.
It does not help either that Emacs is not responding while searching.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: A new filter-based customization interface
@ 2024-12-16 22:02 Moakt Temporary Email
0 siblings, 0 replies; 6+ messages in thread
From: Moakt Temporary Email @ 2024-12-16 22:02 UTC (permalink / raw)
To: emacs-devel
Hi Richard,
> I looked at the image you sent. I supposed it is supposed to be
> self-explanatory, but as often happens for graphical interfaces, I
> can't tell the meaning of what I see.
>
>
> In order for a graphica interface to be natural and self-evident,
> it should to be clear just by looking what each visual item means.
> Is it an alternative you can select?
> Is it a heading which describes the role of whatever follows?
> Is it a command you can click on to control the interface?
> These things are not clear to me.
>
> Here are some of the visuak aspects for which the meaning is not clear to me.
>
> * There is a bunch of lines at the top which start with
> Filter by
> 1. categoryL
> interfaceL modeline tookbar,..
> general: startup quit backup...
>
> What do tese names mean? Are they related to custom group names?
> Some of them sare names of custom groups, but some are not.
> What does each of these names mean?
Each name is a filter that user can select to filter on the corresponding user options. I tried to classify them using the most beginner-friendly terms, just to show the main idea I want yo communicate.
When the user sees such an interface, he will also have a quick idea of what he can do with emacs, he can also immediately start discovering/trying different options.
> * Is that an exhaustive list of all "categories"?
I added only some, just to show the main idea.
I can also think about other non-”by category” filters, for example:
1. by state: [customized] [non-customized (default)]
2. by version: .. [27] [28] [29] [to be removed in future versions (deprecated)]
> * If so, are you supposed to click on one to select it?
> * Or are some categories someho selexted now, and this is a list of the
> ones that are selected right now?
Yes, user can select a single filter, or combine (AND) multiple filters.
For example user can select “completion”+”auto-save”.
Each time the user select an additional filter, the list of filters should decrease, leaving only the ones that are meaningful to additionally select.
And maybe also making other sub-filters (sub-categories) appear to help further narrowing the list of customizations (under “Selected Customizations:”).
For example “auto-completion” filter can appear if “completion” filter is selected.
With this, user can precisely find what he is exactly looking for, with few easy and understandable clicks, even with a huge number of options.
> * How does the fact that a category is selected
> affect what happens in the rest of this display?
Each time the user select an additional filter, the list of customizations under “Selected Customizations:” will also decrease. The purpose is to quickly find the customizations relevant to a given task/behavior.
> The next thing it says is
>
> Sort by: package
>
> What does that mean? Is "package" one of several psople choices? If
> so, what are the other possible choices and how do you specify another choice?
This should sort the list of customizations (under “Selected Customizations:”) by certain criteria. One example is “package”, another can be to list the already customized (non-default) first, etc.
I added it only to keep it in mind when implementing the interface, in case it turned out to be useful to the user later on. But I can’t see it is real added value for the moment.
> Then it says
>
> Selected Customizations:
>
> What does that expression "selected customizations" mean? What
> determines which customizations are selected? How do you control
> which ones are selected? And what do you achieve by controlling that?
The list under "Selected Customizations", are the customizations user selected by applying one or more filter(s) from the above.
Their is no filter selected in this image, but we can image that when user selects the “modeline” filter for example, we can either:
- replace it in-place by a “modeline[X]”.
- or remove it, and add a “modeline” or “modeline[X]” to a separate list of “selected filters” for example.
- or keep it in place, but change its appearance (color, etc…)
- etc.
With this, user can know what filters he already selected, and can unselected them one by one by clicking on them again.
Maybe it can also be implemented it differently.
> How does this relate to M-x customize...?
> It looks like the names of these things do NOT match names of user options.
>
> Each item and value seem to be followed by some sort of classification,
> but what do they mean? They do not seem to be custom groups.
> Where are they defined? For instance, two say :modeline:, What does
> that indicate?
Each item is a customization/option to show to the user.
The value is only a single choice (I added it for demonstration), but it can be replaced by its corresponding UI element (checkbox, dropdown menu, ...)
The classifications to the right are not part of the interface. I may have hidden them. I used them to “tag”/relate each entry to its corresponding filters/categories. These classifications are also not exhaustive (only some for demonstration).
All the options that are related to the modeline, would be tagged as “modeline”, and will be selected/filtered when user select the “modeline” filter.
Some classifications might (not) match with the actual custom groups, I tried to list them from another POV. they can be modified/adapted as needed.
This interface will require each option to have multiple groups/tags.
And maybe the user could be given the possibility to add his own tags (to each option, and to the interface), so he can categories, and quickly access his favorite options.
> What does [X] mean? Does it mean "this is enabled"?
Yes, it represents a “checked” checkbox.
> If so, what indicates "this is not enabled"?
An “unchecked” checkbox would be represented by [ ].
But this is not how it might look like in the final interface, it is only for demonstration.
I also explained everything in details in this message https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00174.html.
I also proposed a quick “Get Started” introduction to emacs (frame, window, modeline, command, etc.), so user can directly use this interface.
This introduction can be added to emacs independently from the interface, because it already enhances user first experience with emacs, I post it under a different thread https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00064.html.
Thank you
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-12-24 21:10 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-09 3:37 A new filter-based customization interface Moakt Temporary Email
2024-12-10 19:56 ` Philip Kaludercic
2024-12-12 4:48 ` Richard Stallman
2024-12-24 4:51 ` Richard Stallman
2024-12-24 21:10 ` Björn Bidar
-- strict thread matches above, loose matches on Subject: below --
2024-12-16 22:02 Moakt Temporary Email
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.