A modern, modular Emacs configuration focused on performance, developer experience, and Elixir development.
- 🚀 Fast startup with optimized
early-init.el - 📦 Elpaca package manager - Modern alternative to package.el
- ⌨️ Meow modal editing with Dvorak layout optimization
- 🧠 AI-powered development with GitHub Copilot and Claude Code IDE
- 🔍 Modern completion with Corfu + Cape + Vertico + Marginalia
- 🛠️ LSP support via Eglot with performance boosters
- 💎 Elixir-focused with ExUnit testing integration
- 🎨 Beautiful themes with Doom themes and Nerd icons
- 📱 Integrated terminal with Vterm and Fish shell
- Emacs 28+ with native compilation support
- Git for package management
- Nerd Font - Specifically "Sarasa Mono J Nerd Font" and "Sarasa UI J Nerd Font"
- Fish shell (optional, for terminal integration)
Clone directly to your .emacs.d directory:
# Backup existing config if you have one
mv ~/.emacs.d ~/.emacs.d.backup
# Clone this configuration
git clone --recursive https://github.com/rockneurotiko/emacs.d.git ~/.emacs.dOr clone to a different location and symlink:
git clone --recursive https://github.com/rockneurotiko/emacs.d.git ~/path/to/emacs.d
ln -s ~/path/to/emacs.d ~/.emacs.dOn first launch, Emacs will:
- Bootstrap the Elpaca package manager
- Install all required packages automatically
- Set up fonts and themes
This process may take a few minutes on the first run.
init.el- Main configuration entry pointearly-init.el- Performance optimizations and early setupsettings/- Modular configuration files:meow-settings.el- Modal editing setupeglot-settings.el- LSP configurationorg-settings.el- Org-mode setuptreesit-settings.el- Tree-sitter configuration
This configuration uses Meow modal editing with a Dvorak-optimized layout. Key highlights:
SPC f- Find fileSPC b- Switch bufferSPC g- Magit statusSPC p- Project commands
C-c r p- Ripgrep search in projectC-c r f- Search current fileC-c SPC- Avy jump to characterM-s M-l- Consult line search
C-c C-'- Claude Code IDE menuTab- Copilot accept completionC-.- Embark actionsC-c g- Magit status
- LSP: Automatic setup with ElixirLS
- Testing: ExUnit integration for running tests
- Formatting: Automatic formatting on save
- Project detection: Automatic detection of Mix projects
- Tree-sitter support for modern syntax highlighting
- Eglot LSP integration for multiple languages
- GraphQL mode support
For enhanced functionality, install these optional tools:
# Elixir (if doing Elixir development)
# Install via your system package manager
# Ripgrep for fast searching
sudo pacman -S ripgrep # Arch Linux
brew install ripgrep # macOSFor Claude Code IDE and other services, configure authentication in ~/.authinfo or ~/.authinfo.gpg:
machine aider.chat login anthropic password your-api-key
machine aider.chat login anthropic-url password your-base-url
The configuration expects specific fonts. If you prefer different fonts, modify these variables in init.el:
(defvar rock/fontname "Your-Font-Name")
(defvar rock/fontname-variable "Your-Variable-Font-Name")Slow startup: First launch installs packages and may be slow. Subsequent launches should be fast.
Missing fonts: Install the required Nerd Fonts or modify font settings in init.el.
LSP not working: Ensure language servers are installed (e.g., ElixirLS for Elixir).
This configuration is optimized for performance with:
- Deferred package loading
- Native compilation
- Garbage collection tuning
- Early initialization optimizations
This is a personal configuration, but suggestions and improvements are welcome via issues or pull requests.
BeerWare