Configuration for emacs
  • Emacs Lisp 100%
Find a file
2026-07-16 17:23:19 +02:00
.gitignore feat: add some more elfeed plugins, move feeds to separate org file. 2026-07-16 08:39:27 +02:00
early-init.el feat: working Emacs config with mu4e, evil, org, msmtp+oama OAuth2 2026-07-15 17:32:38 +02:00
elfeed.org feat: add some more elfeed plugins, move feeds to separate org file. 2026-07-16 08:39:27 +02:00
init.el feat: add some more basic features. 2026-07-16 17:23:19 +02:00
LICENSE feat: added licene and readme. 2026-07-15 17:42:48 +02:00
README.md feat: added licene and readme. 2026-07-15 17:42:48 +02:00

Emacs Configuration

Personal Emacs setup on CachyOS (Arch Linux), built for a Neovim veteran transitioning to Emacs.

Overview

  • Package manager: Elpaca
  • Theme: Nord
  • Modeline: Doom Modeline
  • Completion: Vertico + Orderless + Marginalia + Consult
  • Editor emulation: Evil mode (full Vim emulation)

Key Packages

Editing & Navigation

Package Description
evil + evil-collection Vim modal editing everywhere
evil-surround Vim-surround (cs"', ds", ysw")
evil-commentary Vim-commentary (gcc, gc + motion)
evil-snipe Vim-sneak (2-char jump)
evil-easymotion Vim-easymotion
evil-org Evil bindings in Org mode
undo-fu + undo-fu-session Vim-style undo/redo with persistence
vundo Visual undo tree
Package Description
vertico Vertical minibuffer completion
orderless Fuzzy matching style
marginalia Annotations in minibuffer
consult Search and navigation commands
embark + embark-consult Context actions
corfu + cape Code completion popup
which-key Keybinding discovery

Development

Package Description
eglot LSP client (built-in)
flymake Diagnostics (built-in)
nix-ts-mode Nix language support
treesit-auto Tree-sitter grammar management
apheleia Format on save
magit Git client
envrc direnv integration

Org Mode

Package Description
org Notes, agenda, tasks
org-roam Zettelkasten note management
org-journal Daily journaling
org-modern Modern Org formatting
org-super-agenda Enhanced agenda view

Email

Component Description
mu4e Email client
mbsync (isync) IMAP sync with OAuth2 (XOAUTH2)
msmtp SMTP sending with OAuth2 via oama
oama OAuth2 token manager for Gmail

UI & Quality of Life

Package Description
doom-modeline Modeline
dashboard Startup screen
dirvish Modern dired
popper Buffer popup management
helpful Enhanced help buffers
rainbow-delimiters Colored parens
olivetti Distraction-free writing
pdf-tools PDF viewer
eat Terminal emulator

Email Setup

Receiving and sending both use OAuth2 via oama — no app passwords or hardcoded credentials.

  • IMAP (receiving): mbsync + oama access + cyrus-sasl-xoauth2
  • SMTP (sending): msmtp + oama access (XOAUTH2, implicit TLS on port 465)