data | ||
elisp | ||
screenshots | ||
snippets | ||
support | ||
templates | ||
.gitignore | ||
beep-notify.wav | ||
bootstrap.org | ||
CONTRIBUTING.md | ||
ha-agendas.org | ||
ha-aux-apps.org | ||
ha-capturing-notes.org | ||
ha-config.org | ||
ha-display.org | ||
ha-email.org | ||
ha-eshell.org | ||
ha-feed-reader.org | ||
ha-irc.org | ||
ha-org-clipboard.org | ||
ha-org-graphviz-example.png | ||
ha-org-journaling.org | ||
ha-org-plantuml-example.png | ||
ha-org-publishing.org | ||
ha-org-sprint.org | ||
ha-org-word-processor.org | ||
ha-org.org | ||
ha-passwords.org | ||
ha-programming-clojure.org | ||
ha-programming-elisp.org | ||
ha-programming-haskell.org | ||
ha-programming-ocaml.org | ||
ha-programming-python.org | ||
ha-programming-ruby.org | ||
ha-programming-rust.org | ||
ha-programming-scheme.org | ||
ha-programming.org | ||
ha-remoting.org | ||
initialize | ||
LICENSE | ||
README-MacOS.org | ||
README.org |
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, fonts and the 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.
- 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.