all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* 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-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.