Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

These are my emacs configuration files. I use them with MacOS and either emacs-plus or emacs-head, and built via Homebrew. Right now I’m using this recipe:

brew install emacs-plus@28 --with-no-frame-refocus --with-xwidgets --with-modern-black-variant-icon --with-native-comp

The config files are updated/tweaked regularly. I use emacs primarily for all my academic work in the humanities (for discussion of my view of text editors see here) and the style of configuration tends in that direction (rather than opposed to, e.g., a programming language emphasis). I’ve tried to provide enough commentary on the configuration so that it might be useful to those new to emacs or text-editors generally. One important thing to note is that the configuration uses vim keybindings, as I used vim (or neovim) prior to emacs and I think modal bindings are best. If you like vim bindings but don’t tend to want to think about configuring emacs, I strongly recommend spacemacs or doom-emacs as a way of managing your configuration. For a more traditional emacs feel there are also the configurations of Purcell, Batsov (prelude), Zhang (Centaur Emacs), and many others. For a minimally sane setup you might also look at some sensible defaults. My configuration is influenced by Nicolas Rougier’s work on elegant-emacs and nano-emacs; see also the bmacs configuration of Bryan Gilbert (see also his literate starter kit) and Karl Voit’s config. Some other good emacs starter kits to look at include John Kitchen’s scimax and Kieran Healy’s social sciences starter kit.

This config is based on a series of ”modules” loaded in the init.el file. Please see that file and the various config “helper” functions for navigation. While many like to use a literate org-file for organizing their config I have reasons for preferring things in elisp files. The modules are organized thematically rather than package by package (e.g. the writing module contains the config for spelling and markdown mode). Note that while I have an early-init file for use with emacs 27+, the configuration should work with emacs 26+ on MacOS (though I haven’t tested this in awhile), with the latest release being best (I’m currently on emacs 28).

Some highlights of this emacs setup include:

  1. Short start up time – starts in roughly 1 sec (this may vary with your system)
  2. Uses straight.el for package management
  3. Comprehensive keybindings using general.el and spacebar as my leader key
  4. Evil mode
  5. Sensible defaults
  6. Dired with good colors and evil keybindings
  7. Completion with Vertico and related packages
  8. Use of childframes in an integrated manner (integrated with the theme and made for easy viewing)
  9. My own bespoke theme (inspired by nano-emacs, with toggles for dark/light mode & various other options)
  10. An attractive custom headerline (part of bespoke-themes, inspired by nano-modeline)
  11. Extensive MacOS integration
  12. Single frame project workflow with eyebrowse, projectile, and perspectives
  13. A configurable splash page
  14. A writing-centric configuration with great citation support, markdown, pandoc, dedicated functions for notes, and org-mode

For more information please take a look at the individual configuration files. Please note that I’m by no means a competent programmer, so I’m sure there are better ways of implementing many elements of this config. Suggestions are welcome!







My emacs configuration.




No releases published


No packages published