Welcome!
This is my personal Emacs configuration. I tend to prefer learning how to use built-in packages for any given task. If I get a small itch to scratch, I’ll typically write my own tiny package for it. For itches too big to handle on my own I do go shopping for external packages.
There is also code I wind up writing with no itch of my own to scratch: I like reading r/emacs and writing little functions for people there. The functions I like and think I might use someday become tiny packages here. Writing small snippets for other people is probably my favorite way of learning Emacs, because it takes me down paths I don’t think I would explore on my own.
Some packages I’ve bundled separately
I intend to publish the most reusable parts of my configuration as separate packages. So far that is:
- embark
- orderless
- icomplete-vertical
- math-delimiters
- placeholder
- epithet
- completing-history
- restricto
- live-completions
Tiny packages of interest that live here
Of the packages I haven’t published separately, I think these are probably the most useful:
- block-undo
- make executions of keyboard macros undo in a single step!
- eval-region-advice
- have Emacs Lisp evaluation commands like
eval-last-sexp
andeval-defun
calleval-region
if the region is active (eval-region
does not have a key binding by default and with this tiny package it doesn’t need one). - shr-heading
- commands to move to the next and or previous heading in a shr buffer (shr buffers show rendered HTML and are used by eww and elfeed, for example), as well as imenu support so you can instantly jump to a heading with completion.
- ffap-eshell
- better directory guessing for file names that happen to be printed out in an eshell buffer.
- visiting-buffer
- tweak the
delete-file
andrename-file
commands (as well as theirvc-
counterparts) so that they also delete or rename any open buffer visiting the file, and, in case of renaming an Emacs Lisp library, also adjust theprovide
and the header line if necessary. - ecomplete-extras
- commands to add or remove an email address from ecomplete’s database.
- message-extras
- a function to keep you from sending emails without a subject line or without an attachment if you mention one in the email body; also, functons to manage sending email from several different accounts: a command to cycle the from address among your accounts, and a function to set the SMTP server to match the from address.
Themes
For many years I kept trying Emacs themes and always went back to the default theme. I don’t understand why people don’t like the default theme, to me it is clearly better than almost all others. :)
I finally found themes I like better than the default: Protesilaos Stavrou’s modus themes!
What’s missing from this repo?
I separated the personal part of my configuration to publish this. The personal part doesn’t cover that much: email addresses and signatures, org capture templates, org agenda configuration, and the org-publish configuration for my academic website, basically. In particular most of my org mode configuration is in this public part.