#+ELEVENTY_COLLECTIONS: _posts
#+ELEVENTY_BASE_DIR: ~/sync/static-blog/
#+ELEVENTY_BASE_URL: https://sachachua.com
#+TITLE: Post drafts
* YE29: Sacha, Prot, and Philip Kaludercic Talk Emacs: Newcomer Experience :emacs:community:YayEmacs:stream:
CLOSED: [2026-05-22 Fri 10:12]
:PROPERTIES:
:EXPORT_DATE: 2026-05-17T09:21:07-0400
:EXPORT_ELEVENTY_PERMALINK: /blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/
:EXPORT_ELEVENTY_FILE_NAME: blog/2026/05/may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience/
:THUMBNAIL: ~/recordings/2026-05-02-13-22-27 philip.png
:YOUTUBE_URL: https://youtube.com/live/UqfZZRl_eNw
:CUSTOM_ID: may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience
:Effort:   1:00
:EXPORT_MASTODON: https://social.sachachua.com/@sacha/statuses/01KRVXD8X86JQA5078S5HED6QM
:EXPORT_MODIFIED: 2026-05-18T20:36:05-0400
:END:
:LOGBOOK:
- State "DONE"       from "STARTED"    [2026-05-22 Fri 10:12]
CLOCK: [2026-05-14 Thu 09:45]--[2026-05-14 Thu 09:45] =>  0:00
CLOCK: [2026-05-14 Thu 09:45]--[2026-05-14 Thu 09:45] =>  0:00
:END:

#+begin_update
[2026-05-18]: Updated transcript
#+end_update

[[https://social.sdfeu.org/@pkal/116500474344904460][Philip Kaludercic]] wanted to continue the conversation from [[https://sachachua.com/blog/2026/04/yay-emacs-sacha-and-prot-talk-emacs-newbies-starter-kits/][YE24: Sacha and Prot Talk Emacs - Newbies/Starter Kits]]. He's spent a lot of time thinking about this as one of the main contributors to newcomers-presets.
We talked about newcomers-presets, the idea of a "reset theme" that lets experienced users pin defaults to a specific version of Emacs, upcoming changes, and working with emacs-devel.

video:https://archive.org/download/ye29-prot-and-pkal-emacs-newcomer-experience/ye29-prot-and-pkal-emacs-newcomer-experience.mp4?captions=~/proj/yay-emacs/ye29-prot-and-pkal-emacs-newcomer-experience.vtt

[[https://archive.org/details/ye29-prot-and-pkal-emacs-newcomer-experience][View in the Internet Archive]], [[https://youtube.com/live/UqfZZRl_eNw][watch or comment on YouTube]], [[#ye29-transcript][read the transcript online]], [[file:~/proj/yay-emacs/ye29-prot-and-pkal-emacs-newcomer-experience.vtt][download the transcript]], or [[mailto:sacha@sachachua.com][e-mail me]].

#+begin_export html
<style>
span[data-speaker="Sacha"] .speaker-name { color: var(--modus-rainbow-1); }
span[data-speaker="Prot"] .speaker-name { color: var(--modus-rainbow-2); }
span[data-speaker="Philip"] .speaker-name { color: var(--modus-rainbow-4); }
</style>
#+end_export
#+begin_sticky-toc
#+TOC: headlines 2 local
#+end_sticky-toc

** Related links
:PROPERTIES:
:CUSTOM_ID: may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-related-links
:END:

- [[https://yhetil.org/emacs-devel/87wm0f2rng.fsf@posteo.net/][A proposal for a "beginners" (user-option) theme - Philip Kaludercic]]
- [[https://yhetil.org/emacs-devel/87tsuucbkh.fsf@posteo.net/][Re: some file-related options to consider for newcomers-presets - Philip Kaludercic]]
- [[https://yhetil.org/emacs-devel/CABPi7cHxEoMKwvDkuXGZXaHDpUuqS6ry60JOcdSZbSuYB47LSg@mail.gmail.com/][A newcomer's feedback on newcomer presets - Abdulnafe Toulaimat]]
- [[https://codeberg.org/pkal/ecg/src/branch/master/ecg.lisp][Emacs Configuration Generator]] - old source code

** Chapters
:PROPERTIES:
:CUSTOM_ID: ye29-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-chapters
:END:

[[chapters:~/proj/yay-emacs/ye29-prot-and-pkal-emacs-newcomer-experience.vtt]]

** Transcript
:PROPERTIES:
:CUSTOM_ID: ye29-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-transcript
:END:

#+begin_my_details Expand this to read the transcript :anchor ye29-transcript
[[captions:~/proj/yay-emacs/ye29-prot-and-pkal-emacs-newcomer-experience.vtt]]
#+end_my_details

** Chat
:PROPERTIES:
:CUSTOM_ID: ye29-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-chat
:END:

#+begin_chat
- nick:protesilaos ​Hello folks!
- nick:MichaelVash7886 ​hi
- nick:protesilaos ​We still have a few more minutes. Looking forward to it!
- nick:MichaelVash7886 ​ended up starting on doom and the nice thing is anything I want to try out is either in there or it's a simple tweak away. but it's several layers of abstractions to change certain things
- nick:MichaelVash7886 ​for me to go from using doom to being able to program with a vanilla emacs I know it's going to be a journey to get things like completion, eglot, etc all setup
- nick:MichaelVash7886 ​also looking at moving away from evil to using something like Meow and vanilla emacs binds
- nick:lc2000 ​​Speaking of splash screen, there's still plenty of room, why not inline the GPL, and a small essay. Kidding of course, but what of slaying that sacred cow...?
- nick:lc2000 ​(As it stands, it prioritizes ideology, laywer-mandated stuff from before case law, credits, funding via manual ordering... and if new users don't recoil some things they may actually need/want.)
- nick:takoverflow ​​Hello Prot, Sacha and Philip!
- nick:takoverflow ​Thanks for this discussion
- nick:RandCode ​​greetings, everyone!
- nick:RandCode ​​emacs has a place for chatting in all of irc, matrix, xmpp and telegram room! (also email)
- nick:lc2000 ​​Packages are great at bundling functionalities, but Doom/Spacemacs/etc also fix the multi-package integration "glue", which technically could be packages (see all prior "config modules" attempts...).
- nick:sachactube ​​https://bbb.emacsverse.org/rooms/chat...
- nick:protesilaos ​Come join us :)
- nick:lc2000 ​Probably best to talk of modern de facto "standards" (vs full CUA as then-defined), e.g. if there's a "region" new users expect C-c (or C-c C-c in anger) to work, and idem C-x/etc - easy wins maybe.
- nick:brongulus I do prefer the idosyncracies of with-eval-after-load and actually explicitly binding and creating hooks, rather than relying on use-package is that it tells me explicitly the order in which things would be evaluated. In contrast to use-package where I would have to know about defer and how to properly define the order of loading of different packages.
- nick:Protesilaos @brongulus Fair point! I also like it. The thing with use-package is that you understand it better if you know what it does under the hood.
- nick:brongulus This is where the doom emacs' module approach is very nice for beginners and entices them https://github.com/doomemacs/doomemacs/blob/master/modules/README.org
- nick:brongulus People interested in a certain common set of functionality can get an opinionated starting point in emacs rather than worrying about what to install
- nick:brongulus This is how it looks https://github.com/doomemacs/doomemacs/blob/master/static/init.example.el
- nick:brongulus Thank you for the meeting o.
#+end_chat

** Some types of new users to think about
:PROPERTIES:
:CUSTOM_ID: may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-types-of-new-users-to-think-about
:END:

- Non-programmer interested in using Org Mode for notes and task management
- Researcher interested in publishing, reproducible research, literate programming
- Programmer interested in coding with Emacs
  - Coming from VSCode
  - Coming from Vi
- Programmer still using a different IDE, just interested in Magit
- Long-time Emacs user who hasn't explored Emacs Lisp

** Sketching out their learning journey
:PROPERTIES:
:CUSTOM_ID: may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-part-of-a-learning-journey
:END:

- Install Emacs
- Use Emacs via the menu bar and toolbar
- Get a little overwhelmed
- Use M-x to call commands by name
- Learn how to set up completion
- Use some keyboard shortcuts
- Figure out how to learn and connect
- Customize some options
- ...
- Eureka!
- Define their own keyboard shortcuts
  - Challenge: init file
- ...
- Define their own functions
  - Challenge: Emacs Lisp

** Other notes
:PROPERTIES:
:CUSTOM_ID: may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-other-notes
:END:

Learning how to modify Emacs with Emacs Lisp can help people really
appreciate its power. For example, you need Emacs Lisp to set your own
keyboard shortcuts. You can't set them through the Options menu or the
=M-x customize= interface. One challenge is that the Emacs Lisp
configuration file that is loaded at the start of every Emacs session
might be in one of several places, which means that in order for
newbies to understand how to add something like:

#+begin_src emacs-lisp
(bind-key "C-c r" 'org-capture)
#+end_src

we need to either include a link to something like [[https://www.emacswiki.org/emacs/InitFile][EmacsWiki: Init
File]], or repeat the instructions and the troubleshooting steps in beginner tutorials.

- user-init-file defaults to =.emacs= for new users if none of =~/.emacs=, =~/.emacs.el=, =~/.emacs.d/init.el=, and =~/.config/emacs/init.el= exist.

- After you select newcomer-presets from the splash screen, this is not persisted automatically. "Options > Save Options" doesn't save it either. Because people usually think of themes as cosmetic, they're not likely to find it under "Options > Customize Emacs > Custom Themes; newcomers-presets; Save Theme Settings." The "Options > Save Options" will save the change that newcomers-presets made to the tab bar, thus creating a =~/.emacs=.
- https://doc.emacsen.de/gallery.html - gallery of themes built into Emacs

** Some screenshots of a fresh Emacs
:PROPERTIES:
:CUSTOM_ID: may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-some-screenshots-of-a-fresh-emacs
:END:

#+CAPTION: The splash screen for a new Emacs
[[file:~/recordings/2026-05-12_08-59-17.png][file:~/recordings/2026-05-12_08-59-17.png]]

#+CAPTION: File menu
[[file:~/recordings/2026-05-12_09-01-50.png][file:~/recordings/2026-05-12_09-01-50.png]]

#+CAPTION: Customize menu
[[file:~/recordings/2026-05-12_09-02-43.png][file:~/recordings/2026-05-12_09-02-43.png]]

#+CAPTION: Help menu
[[file:~/recordings/2026-05-12_09-03-37.png][file:~/recordings/2026-05-12_09-03-37.png]]

** Trying pkal's Emacs Configuration Generator
:PROPERTIES:
:CUSTOM_ID: may-14-sacha-prot-and-philip-kaludercic-talk-emacs-newcomer-experience-trying-pkal-s-emacs-configuration-generator
:END:

[[https://codeberg.org/pkal/ecg/src/branch/master/ecg.lisp][Emacs Configuration Generator]] - old source code, site is no longer live

#+begin_src sh :eval no
sbcl --load ecg.lisp --eval "(ecg:start)"
#+end_src

# http://localhost:9095/

#+CAPTION: Web interface
[[file:~/recordings/2026-05-13_21-36-30.png][file:~/recordings/2026-05-13_21-36-30.png]]

#+CAPTION: Theme preview, other options
[[file:~/recordings/2026-05-13_21-37-11.png][file:~/recordings/2026-05-13_21-37-11.png]]

Sample generated configuration:

#+begin_src emacs-lisp :eval no
;;; Personal configuration -*- lexical-binding: t -*-

;; Save the contents of this file under ~/.emacs.d/init.el
;; Do not forget to use Emacs' built-in help system:
;; Use C-h C-h to get an overview of all help commands.  All you
;; need to know about Emacs (what commands exist, what functions do,
;; what variables specify), the help system can provide.

;; Load a custom theme
(load-theme 'modus-operandi t)

;; Use whatever the default monospace font is
(setq font-use-system-font t)

;; Miscellaneous options
(setq-default major-mode
              (lambda () ; guess major mode from file name
                (unless buffer-file-name
                  (let ((buffer-file-name (buffer-name)))
                    (set-auto-mode)))))
(setq confirm-kill-emacs #'yes-or-no-p)
(setq window-resize-pixelwise t)
(setq frame-resize-pixelwise t)
(save-place-mode t)
(savehist-mode t)
(recentf-mode t)
(defalias 'yes-or-no #'y-or-n-p)

;; Store automatic customisation options elsewhere
(setq custom-file (locate-user-emacs-file "custom.el"))
(when (file-exists-p custom-file)
  (load custom-file))
#+end_src

