Using the cheatsheet to display hints and keystrokes that I want to learn.
4.3 KiB
My Emacs Configuration
My Emacs configuration, that I'm cheekily calling hamacs is a literate programming model heavily inspired by my recent journey into Henrik Lissner's Doom Emacs and Spacemacs. I used both extensively, but decided that I would roll my own as Emacs people tend to be control freaks (at least a little bit).
The other advantage to rolling yer own is that you may use what you add, leading to less bloat, and a more fun experience.
Why yes, feel free to steal whatever you find interesting, as sharing is what makes our community great. Notice that functions and features that I have written begin with ha-
, but everything else is either stock Emacs or a package that I download using straight (see bootstrap for how) and configured with use-package (see either this introduction or this wiki page for details)… meaning that most blocks of code should work on its own.
Hit me up with questions, @howardabrams
. If you want to try this out, after installing Emacs, and cloning this repo, run:
./initialize
This creates ~/.emacs.d/init.el that starts the process loading the files:
- bootstrap
- configures
straight
and loads basic libraries the rest of the code depends on. It then loads the following files in order: - config
- contains most of my configuration, setting up my sequence key menus, evil, etc.
- display
- sets up the visual aspects of an Emacs GUI, including themes and fonts.
- dashboard
- sets up initial window layout of the
main
project with a dashboard. - org
- configures the basics for org-mode formatted files. Specific features come from their own files.
- org-word-processor
- attempts to make Org files visually look like a word processor, including turning off the colors for headers, and instead increasing their size.
- org-clipboard
- automatically converting HTML from a clipboard into Org-formatted content.
- org-journaling
- for writing journal entries and tasks.
- org-publishing
- code for publishing my website, www.howardism.org.
- org-sprint
- functions for working with the my Org-focused sprint file.
- data
- functions for dealing with a buffer-full of data.
- eshell
- customization and enhancement to the Emacs shell.
- remoting
- my interface to systems using SSH and Vterm.
- reading email using
notmuch
in a Hey fashion. - feed-reader
- configuration of elfeed as well as my RSS feeds.
- aux-apps
- optional applications, like Twitter and Telegram.
- capturing-notes
- my engineering notebook.
- agendas
- attempts to "supe-up" my task list.
- irc
- connection to IRC servers using rcirc and bitlbee.
- passwords
- code for generating passwords.
- programming
- configuration for all programming languages, or at least, the simple ones.
- programming-elisp
- additions to Emacs Lisp programming.
- programming-python
- configuration for working with Python and LSP.
- programming-scheme
- configuration for Racket.
Note: Other functions and files come from essays written on my blog. To help with this, see support/final-initialize.el file.