Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/oantolin/emacs-config

My personal Emacs configuration
https://github.com/oantolin/emacs-config

emacs-configuration

Last synced: 12 days ago
JSON representation

My personal Emacs configuration

Awesome Lists containing this project

README

        

* 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 [[https://reddit.com/r/emacs][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:

- [[https://github.com/oantolin/embark][embark]]
- [[https://github.com/oantolin/orderless][orderless]]
- [[https://github.com/oantolin/icomplete-vertical][icomplete-vertical]]
- [[https://github.com/oantolin/math-delimiters][math-delimiters]]
- [[https://github.com/oantolin/placeholder][placeholder]]
- [[https://github.com/oantolin/epithet][epithet]]
- [[https://github.com/oantolin/completing-history][completing-history]]
- [[https://github.com/oantolin/restricto][restricto]]
- [[https://github.com/oantolin/live-completions][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= 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 [[https://gitlab.com/protesilaos/modus-themes][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.