Dual-framework Emacs configuration for testing and validation
A comprehensive testing ground where Spacemacs and Doom Emacs coexist, sharing unified modules to validate the latest community innovations before distilling them into production-ready starter kits.
From Laboratory to Production
emacs-laboratory (experiment) → doomemacs-config (refined)
Add everything → Test thoroughly → Distill to essentials
This repository serves as:
- Testing ground: Validate features from both Spacemacs and DoomEmacs
- Knowledge hub: Integrate latest Emacs community trends
- Unified platform: Shared lisp modules for consistent experience
- AI-ready workspace: Claude Code integration via CLAUDE.md
dotemacs/
├── dotdoomemacs/ # Doom Emacs configuration
│ ├── init.el # Module declarations
│ ├── config.el # Core configuration
│ └── packages.el # Package management
├── dotspacemacs/ # Spacemacs configuration
│ ├── init.el # ~5,100 lines configuration
│ └── spacemacs-keys.el # Spacemacs-specific keybindings
├── lisp/ # Shared modules (~29,697 lines)
│ ├── denote-*.el # Denote system (2,161 lines)
│ ├── org-*.el # Org-mode (3,599 lines)
│ ├── keys.el # Unified keybindings (2,193 lines)
│ └── uniconfig.el # Universal config (1,624 lines)
└── snippets/ # Shared YASnippet templates
| Component | Lines | Purpose |
|---|---|---|
| Spacemacs | 5,104 | Full Spacemacs configuration |
| DoomEmacs | Modular | Doom-style modular config |
| Shared Lisp | 29,697 | Framework-agnostic modules |
| Total | 37 files | Comprehensive testing environment |
- Denote: File-naming system with silo and sequence support
- Org-roam: Knowledge graph integration
- Org-journal: Daily journaling workflow
- Org-contacts: Contact management
- Languages: Python, Nix, JavaScript/TypeScript, Zig, Janet, Elisp
- Tools: Magit, LSP/Eglot, Tree-sitter, Direnv, Docker
- AI/LLM: GPTel integration, Claude Code support
- Org-mode: Advanced features (babel, capture, agenda)
- Hugo: Static site generation
- Pandoc: Multi-format export
- LaTeX: Academic writing with cdlatex
- Evil: Vim keybindings everywhere
- Completion: Corfu + Orderless + Vertico
- Navigation: Treemacs, Neotree, window-select
- Themes: Custom theme system with Modus themes
- Emacs 30.2+ (tested on Ubuntu 24.04, NixOS 25.05)
- Git
- Either Spacemacs or Doom Emacs installed
For Doom Emacs:
# Clone repository
git clone https://github.com/junghan0611/dotemacs.git ~/dotemacs
# Set DOOMDIR to dotdoomemacs
export DOOMDIR="~/dotemacs/dotdoomemacs"
# Sync Doom
~/.emacs.d/bin/doom syncFor Spacemacs:
# Clone repository
git clone https://github.com/junghan0611/dotemacs.git ~/dotemacs
# Symlink or set user-init-file
ln -s ~/dotemacs/dotspacemacs/init.el ~/.spacemacs.d/init.elDoom Emacs:
DOOMDIR=~/dotemacs/dotdoomemacs emacsSpacemacs:
emacs --load ~/dotemacs/dotspacemacs/init.elBoth frameworks load from lisp/:
denote-config.el,denote-funcs.el- Denote systemorg-config.el,org-funcs.el- Org-mode enhancementskeys.el- Unified keybindingsuniconfig.el- Framework-agnostic settings
- Experiment: Add new packages/features to either framework
- Validate: Test in daily workflow
- Refine: Move working features to shared lisp modules
- Distill: Extract essentials to doomemacs-config
emacs-laboratory (full config)
↓ validation
↓ refinement
doomemacs-config (starter template)
- nixos-config - Declarative NixOS environment
- doomemacs-config - Minimal Doom Emacs starter
- zotero-config - Bibliographic workflow
See project-specific docs:
- CLAUDE.md - AI agent configuration
- README.org - Original notes (work in progress)
Tested on:
- Ubuntu 24.04 LTS
- NixOS 25.05
- Emacs 30.2
Integration:
- i3wm workflow
- Denote + Org-mode knowledge management
- Digital Garden: notes.junghanacs.com
This is a personal testing environment, but:
- Issues welcome for questions about configuration patterns
- Fork and adapt for your own dual-framework setup
- Share findings from community trend validation
MIT License
Author: @junghan0611 Philosophy: Collaboration over automation Created: 2025-10-11 Purpose: 도구의 철학을 세우다 (Establishing the philosophy of tools)