Welcome to the Github page for my Emacs configuration. I have created this Github pages site to provide place where I can post the custom modifications I have made to Emacs. My goal is to make Emacs as productive as possible. While Emacs has excellent documentation that I highly recommend reading, there is much more in the Emacs ecosystem that the manual doesn’t even begin to cover. There are many excellent third-party packages that have been released to extend Emacs. This is why I have decided that I would post my own Emacs configuration for anyone else who wants to learn by example. I have certainly found a lot of inspiration in scouring the internet for Emacs configurations created by other users.
I have tried to make an Emacs setup that is flexible for use in multiple contexts. While I prefer to use libre operating systems. I often find that for work I am limited to using a Windows system. As I have learned to rely on the powerful features of Emacs for much of the computing that I do, I have found a way to replicate the functions I love on Emacs as a portable system by running Emacs on a USB flash drive (based on this article) alongside the PortableApps platform. This allows me to take my Emacs setup everywhere I go. Here are some features of my setup:
- Emacs Server
- Starts an Emacs server on the first launch of an Emacs instance
- Emacs frames can be opened quickly and access the same buffers by running an
emacsclient
instance.
- Fast Loading
- Package loading is deferred with use-package when possible
- Designed to load quickly on older computers and from a flash drives
- Modular
- Configuration files are split into modules, with each module as a separate Elisp file
- This makes reading the configuration simpler and makes debugging easier
- Modules can easily be disabled
- Multi-platform
- This configuration has been tested on:
- GNU GUIX
- Linux Mint
- Windows using Chocolatey to install dependencies
- Windows as a USB PortableApp with dependencies installed on the USB drive as PortableApps
- This configuration has been tested on:
- Portable
- A file, runemacs.bat, will call the Emacs executable on the USB flash drive and set the home directory to the drive label of the flash drive.
- Emacs will check to see if it is being called as a portable app and can call on portable libraries such as MikTeX portable and Git portable to restore lost functionality.
- The Emacs configuration can be pulled from Github and uses straight.el to pull install all Emacs packages.
- Window Management with EXWM
- If no window manger is detected, EXWM can be used as the window manager
- All applications can be opened in Emacs and managed with Emacs commands
I use Org Mode to program my init.el
file with my annotations, documentation, explanations, and links to source code and sites where I borrowed my code from. The Org Mode file as source code blocks that are tangled to init.el
. If you wish to go straight to the raw Elisp files, you can visit the Github page, otherwise the following links will let you peruse through my configuration and read the commentary that accompanies it:
- early-init.html
- A file that is loaded before
init.el
- init.html
- Browse the code along with my commentary exported to HTML from my
init.org
file.
If you want to run Emacs as a portable application, see Emacs as a Portable Application.
Emacs can be a very powerful tool in Windows. For some tips on how to Emacs Windows Customizations