Crafted Emacs Update for January 2023 – A New Direction!
Welcome to 2023 and another update of the Crafted Emacs project! Today's post is going to be different than prior posts; today I discuss what is coming in the, hopefully, near future for Crafted Emacs.
Major changes are coming. After a year of working on this project we have learned a lot of things, not just about working on an Emacs configuration, but about our own goals for the project. Many of the original principles and goals will remain, but with a different focus. The change then… we are moving from the concept of being a starter kit and really getting back to the one of the original concepts with the System Crafters mentality – that of “you own your own configuration”.
To that end, here is a short list of things we are going to change. This is not an all inclusive list at this time, but just because this will be a disruptive change (or many of them!) we are trying to communicate them early.
- No intention for the user to clone the
crafted-emacs
repository as~/.config/emacs
or~/.emacs.d
. We intend to be agnostic enough for the user to clone the repository as a sub-module for their own dot files, or in a completely separate location and then added to the load path through their own configuration. What we would prefer is the user to *not* use this as a starter kit, but rather a we prefer the user own their own configuration and use Crafted Emacs as a faster way to get started. - No more built-in support for Chemacs2. Especially with the updates to Emacs 29 which provide that kind of feature out of the box.
- The default package manager will be
package.el
, but we will provide a “hook” to allow you to provide your own package manager, be itstraight.el
,elget
,borg
,package-vc
, whatever. - No more
crafted-emacs
folder, at least not by default. We may optionally install thenolittering
package and provide a minimal configuration there. TBD. - No more
early-init.el
orinit.el
. Well, sorta. We will largely clean out those files and provide only a minimal configuration which a user might use to jump start their configuration. Essentially, those will be considered obsolete in favor of having the user provide their own. This means we won't be turning on a default theme, no default font list, no GUI customization, etc. - Reduce or (ideally) completely eliminate all Crafted Emacs Customizable variables.
- Possibly split the modules into a package list and a configuration for each type. So, if the user only wants the list of packages for something (like completion for example), they can use the appropriate package module to get that list. If they only need the configuration, they can use the appropriate configuration module. Or use both if they prefer. Ultimate flexibility for the user.
So lots of changes coming. I'll still be doing what I can to fix issues as they appear for the existing project codebase, but this will be my focus for a while. When I have something stable enough to test, I'll share the branch where I'm making the changes. With this effort, I'll close a lot (maybe all) of the outstanding issues so we can start with a clean slate.
Shameless Plug
If you enjoy configuring Emacs and tweak yours often, you might consider giving Crafted Emacs a try. I'm sure you'll find some rough edges, and when you do, I invite you to open an issue, or submit a pull request. Or, maybe you won't find any rough edges and this will be just the thing you need. I'm not holding my breath on that just yet.
If you enjoy crafting your computing experience, from hacking on Emacs, your Linux/Mac/Windows configuration, maybe your Guix or NixOS home configuration, or whatever it is… consider joining the SystemCrafters community!
Tags: #emacs