A modern, literate Emacs configuration using org-mode
and straight.el
for package management. This configuration emphasizes Python development, org-mode productivity, and a clean, efficient interface.
- Literate Configuration: Written in org-mode, the configuration self-documents and tangles to
init.el
- Modern Package Management: Uses
straight.el
withuse-package
for reproducible package installation - Development Tools:
- Python development environment with LSP support via
pylsp
- Tree-sitter integration for better syntax handling
- Git integration with Magit and git-gutter
- YAML mode for configuration files
- Python development environment with LSP support via
- Enhanced Interface:
- Doom themes and modeline for a modern look
- Ivy/Counsel for completion
- Which-key for command discovery
- Helpful for better help buffers
- Org-mode Configuration:
- Custom capture templates for various content types
- Structured task management with custom TODO states
- Calendar integration with org-agenda
- Beautiful typography with mixed-pitch mode
- MacOS Support:
- Custom key bindings for MacOS compatibility
- High DPI display optimizations
- MacOS-specific font configuration
- Back up your existing
.emacs.d
if you have one:mv ~/.emacs.d ~/.emacs.d.backup
- Clone this repository:
git clone https://github.com/rmorison/.dotfiles.git ~/.dotfiles
- Create symbolic links:
mkdir -p ~/.emacs.d ln -s ~/.dotfiles/.emacs.d/Emacs.org ~/.emacs.d/ ln -s ~/.dotfiles/.emacs.d/init.el ~/.emacs.d/ ln -s ~/.dotfiles/org ~/org
- Start Emacs -
straight.el
will automatically install all packages. The configuration will automatically tangleEmacs.org
toinit.el
whenever you save changes toEmacs.org
.
- Install required packages via Homebrew:
brew install svn brew tap homebrew/cask-fonts brew install --cask font-fira-code font-fira-mono brew install --cask font-cantarell brew install coreutils
- Configure keyboard modifiers in System Settings:
- Caps Lock Key → Control
- Control Key → Option
- Option Key → Command
- Command Key → Command
The configuration includes MacOS-specific overrides that:
- Adjust font sizes for Retina/high DPI displays
- Map modifier keys for a more ergonomic experience
- Use GNU ls (gls) for dired mode compatibility
. ├── .emacs.d/ │ ├── Emacs.org # Main configuration file (auto-tangles to init.el) │ └── init.el # Generated configuration └── org/ ├── templates/ # Org capture templates └── *.org # Org files for tasks, notes, etc.
- Emacs 29+ (for native tree-sitter support)
- Python 3.12+ (for Python development features)
- Git
- Fira Code and Cantarell fonts
- Node.js (for Mermaid diagrams)
- pyenv or similar for Python virtual environment management
- nerd-fonts for icons
The configuration is primarily controlled through Emacs.org
. This file is organized into logical sections with detailed comments explaining each configuration choice. When you save changes to ~/.dotfiles/.emacs.d/Emacs.org
, it will automatically tangle to init.el
. You’ll need to restart Emacs or evaluate the changed sections to apply the updates.
Feel free to submit issues and pull requests. This configuration is primarily personal, but improvements and bug fixes are welcome.
MIT - See LICENSE file for details
This configuration was greatly influenced by the Emacs From Scratch series by David Wilson (System Crafters), which provides an excellent foundation for modern Emacs configuration.