/emacs-config

My personal Emacs configuration

Primary LanguageEmacs LispGNU General Public License v3.0GPL-3.0

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:

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 and eval-defun call eval-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 and rename-file commands (as well as their vc- 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 the provide 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.