Discoverable Emacs configuration for beginners based on Object->Action
This idea hit me while reading Fifteen ways to use embark when I realized how much easier having access to embark-act
could make things for beginners.
This idea was furthered when reading the reddit thread about Discoverablity 2: Use context-menu-mode (since 28.1)….
Then other updates from Nicolas Rougier of Elegant Emacs that aims to clean up the emacs theme and UI had a couple posts that I thought of as being useful for this beginner configuration:
- svg-tag-mode (v 0.3.1) is now on ELPA
- Org notebook (alternative design & code)
- NΛNO agenda is on ELPA
- NΛNO theme is on ELPA
All of these ideas together make me envision an emacs configuration whose:
- UI is based on all of the great NΛNO stuff that should be friendly if not enticing to newcomers
- User is encouraged to use right click for context-specific help as much as possible
- User is encouraged to use
C-.
(embark-act) as much as possible - Encouraged to use the help, but given an omni-search of
C-h f
,C-h v
Then the very active Emacs discoverability reddit post about emacs configurations aimed at beginners turning off the toolbar which aids in discoverability. Is it context specific? Either way, a plan would be to keep it by default but give it a redesign in the spirit of the NΛNO theme (Note: Is Nicolas Rougier working on this or perhaps interested?).
Then the typical additions, but stripped down to not have overwhelming information:
- which-key, perhaps bindings recommended ordered by “most used in community”
- strip down embark actions, categorize them, or otherwise add hierarchy to prevent overwhelm
And other ideas:
- keyfreq configured by default, and some nice tutorial/wrapper to encourage them to improve their bindings/process
- alert.el for all notifications by default (Note: will this require users installing a notification library?)
- pdf-tools added by default along with maybe a wrapper mode that guides users to easily taking notes/annotating
- Encourage use of org-roam dailies to casually start developing their knowledge?
- no-littering package by default
- dired copy to other window by default, maybe an interactive tutorial for dired and suggest it could replace quick terminal sessions?
Other important questions:
- How can you bridge the gap between beginner and motivating starting to more deeply understand/customize emacs in a way that helps the user accomplish their goals (maybe Literature: Emacs: from catching up to getting ahead - r/emacs could help here?) Or when I get to it A quick powerful customization to org-pomodoro for people who ignore notifications - Getting Ahead With Emacs
Prior work to review:
- Wakib, an easy to use Emacs starter kit (This has a focus on keybindings, but I wonder if that’s ultimately a negative? Perhaps start with CUA for accessibility then try to sell the value of
C-c C-c
style bindings because emacs has more contexts to need keybindings?) - Note, from some beginners feedback Wakib bindings aside from the typical you expect like
C-c
being copy, are just as complex as default emacs keybindings plus the overhead of being different
Maybe useful:
- https://www.reddit.com/r/emacs/comments/nnogg4/what%5Fcan%5Femacs%5Fgive%5Fme%5Fin%5F2021%5Fa%5Fresponse%5Fto%5Fthe/
- System Crafters emacs from scratch may help bridge the gap between beginner/motivating deeper understanding, but videos can be long from a beginner perspective
Maybe useful thoughts/ideas:
The bottom line is that emacs is a not an editor, it’s a platform that you can use throughout your entire life. And if your life depends heavily on computers - whether you’re a writer or an entrepreneur or an accountant or a government researcher or anything else these days - emacs is a worthwhile investment because it’ll pay off in the long term. - source
This gets at the heart of the matter in the desire to grow users from having a good and accessible first experience and how that conflicts with making emacs something that continues to be valuable for them. What emacs is best at, and in answering Why pick emacs over vscode?, is extensibility and the low-cost relatively of doing so.
The problem is to attract new users emacs should do something much better than other tools, and there is one thing emacs does much better: extensibility.
But in order to master extensibility, new users have to face the alienness of emacs compared to other tools.
Most users wants things like out of the box autocompletion and stuff, so they can use the new tool instantly before starting to learn its deeper layers.
And emacs is not very good at this, new users have to start tinkering to set up autocompletion and stuff, while other tools, like vscode, download and setup things automatically and seamlessly.
I was impressed by vscode when I tried it, seeing how polished the experience is. I still use emacs, of course, but vscode can be a model of how the new user experience should be. - source
misc
Maybe we should add:
Loaded user-init-file: home/user.emacs
To the welcome page.