Configuration for emacs
- Emacs Lisp 100%
| .gitignore | ||
| early-init.el | ||
| elfeed.org | ||
| init.el | ||
| LICENSE | ||
| README.md | ||
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 |
Completion & Search
| 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 |
| 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)