Video summary

A New Beginning With GNU Emacs - Configuring Emacs 01

Main summary

Key takeaways

Technology

Tech/product goals of the video

  • The creator wants to build a plain “vanilla” GNU Emacs setup that feels closer to Doom Emacs.
  • They start a multi-part series (“Configuring Emacs 01”).
  • Main approach: write the Emacs configuration as an Org-mode document (config.org) and tangle/load it into Emacs via Org Babel.

Step-by-step setup described (tutorial/guide content)

1) Install Emacs + start from a clean config

  • Install GNU Emacs via your OS package manager (examples:
    • pacman on Arch
    • apt on Debian/Ubuntu)
  • Ensure config directories don’t already exist:
    • Remove ~/.emacs.d
    • Remove XDG config location (mentioned as ~/.config/emacs), then create a fresh one

2) Create init.el that loads config.org (Org Babel)

  • Create ~/.config/emacs/init.el with an Org Babel setup that:
    • Treats config.org as the source config
    • Loads/transforms it into usable Emacs configuration behavior (similar to auto-generating config.el)

3) Create config.org as the configuration “source of truth”

  • Includes org metadata for export (title/author/description).
  • Sets org options like:
    • Startup visibility (e.g., “show everything” / unfolding headings)
    • Table of contents depth
  • Builds the config in sections/headers, starting with important programs to load first.

Core tooling choices (package management + keybinding stack)

4) Use Elpaca as the package manager (instead of package.el)

  • Install/configure Elpaca by copying its GitHub example snippet into config.org inside an Emacs Lisp source block.
  • Add an early-init setting to disable the built-in Emacs package manager:
    • Set package-enable-at-startup to nil (so package.el doesn’t conflict)

5) Enable Elpaca’s use-package integration

  • Add Elpaca support for use-package so packages can be declared via macros.

6) Install and configure Evil mode (Vim-like modal editing)

  • Install Evil via a use-package example.
  • Configure Evil to start automatically at Emacs launch.
  • Settings highlighted:
    • Split preferences:
      • Vertical splits open to the right
      • Horizontal splits open to the bottom
  • Also install:
    • evil-collection (expands Evil beyond basic editing)
    • evil-tutor (a Vim-tutor-like learning aid)

7) Install general.el for keybindings

  • Install general.el via use-package.
  • Use general-evil-setup so keybindings integrate with Evil’s modal states.
  • Define a leader key using Evil-compatible maps:
    • Leader prefix: Space (spc)
  • Example leader bindings (with which-key descriptions):
    • Buffer actions:
      • SPC b b → switch buffer
      • SPC b n → next buffer
      • SPC b p → previous buffer
      • SPC b k → kill buffer

GUI/UX improvements made in the config

8) Fix fonts (custom faces + frame defaults)

  • Adds a fonts section configuring:
    • Default font face: JetBrains Mono; height 110; medium weight
    • Variable-pitch font: Ubuntu
    • Fixed-pitch font: JetBrains Mono
    • Italic styling for comments and keywords
  • Updates default-frame-alist so appearance is consistent in Emacs client windows.
  • Sets line spacing via Q-default line spacing (0.12).
  • Notes that default Emacs fonts looked “terrible/small,” and this section improves readability.

9) Remove extra GUI chrome + enable line numbers

  • Disables:
    • menu-bar-mode (set to -1)
    • toolbar-mode (set to -1)
    • scroll-bar-mode (set to -1)
  • Enables:
    • Global line numbers (global-display-line-numbers-mode)
    • Wrapped/truncated line behavior via global-visual-line-mode (set to true)

Productivity/UI integration

10) Install which-key

  • Install via use-package which-key.
  • Configuration highlights:
    • Display position: bottom
    • Padding, columns, and separator style (right arrow)
  • Demonstration: keybinding hints appear when pressing leader sequences (e.g., SPC b... and C-x...).

11) Improve Org-mode writing experience: TOC + bullets

  • Installs/configures:
    • toc-org
      • Dynamic table of contents
      • Added via add-hook org-mode-hook toc-org-enable
    • org-bullets
      • Bullet-based headings instead of heavy asterisks
      • Enabled via org-indent-mode and org-bullets-mode on org-mode-hook
  • Demonstrates:
    • A special org block label like SPACE :toc: to generate the TOC
    • TOC updates automatically as headings change
    • Clicking TOC entries jumps to sections

Project organization / where the code is saved

  • The creator saves the result to a GitLab repo and keeps a versioned directory per video.
  • Example repository naming:
    • 01-alpaca-evil-general
  • Repo includes:
    • config.org
    • init.el
    • early-init.el

Main speakers/sources (end)

  • Main speaker/source: The video creator (solo narrator) discussing GNU Emacs/Doom Emacs and demonstrating the configuration live.
  • Primary external sources referenced:
    • GitHub documentation/snippets for:
      • Elpaca
      • use-package integration
      • general.el
      • toc-org / org-bullets

Rate this summary

Your feedback will help improve summaries.

Improve this summary

Reprocess with a stronger model when the summary feels incomplete or inaccurate.

Pro

Translate summary in another language

Pro

Ask questions to this video

Chat for follow-up questions, clarifications, and source-backed answers.

Coming soon

Share this summary

Original video