Rational Emacs Update
In my last blog post, I introduced the Rational Emacs project. Since then, I have become one of the maintainers for the project! I was very excited to be asked to join the team and am super thrilled to participate in this capacity. So, since I've been helping out a bit, I thought it might be nice to provide an update on what's been going on since my last post. That being said, I'm not going to cover every single pull request we have merged, but I'll mention some of the more impactful and major changes we've made.
And, as I've been looking into the pull requests as they come in, I've been using Rational Emacs more frequently to the point I've started adding the bits from my personal configuration I find myself missing. So, while in my last post I said I wouldn't be migrating my configuration, it seems that I've been doing exactly that! I'm nearly to the point of having my complete configuration ported over to Rational.
Discussions
- Using
package.el
instead ofstraight.el
and related topics saw a lot of traffic. In the end, the consensus was to move to usingpackage.el
as it is in alignment with the principles. There were a couple of posts lamenting the switch in one way or another, as those users preferredstraight.el
. I provided a minimal example configuration to show how to get back to usingstraight.el
for those who preferred it. This was probably the biggest change as it affected every module and was a significant deviation from the initial startup scripts. - Using short answers received a number of comments. This setting controls whether Emacs will ask for a y or n response instead of yes or no. In Emacs 27, we use advice for the configuration as it is easy for a user to remove. Originally, we used
fset
but that is fairly impossible to undo, and as it was set in the rational initialization files, meant a user would have to modify a file that might get overwritten later with agit pull
or possibly cause a local conflict which the user must resolve. It is easy to remove the advice, but that issue was raised again recently. In Emacs 28, there is a simple variable which can be toggled, no advice needed.
Pull Requests
Besides the aforementioned switch to using package.el
and the use of advice for the short answers configuration in Emacs 27, there were these interesting pull requests:
- The example configuration didn't work since we used
doom-snazzy
as an example theme and it is not provided bydoom-themes
. That was fixed by changingdoom-snazzy
todoom-one
everywhere. - Loading of
custom.el
. This was also an interesting topic of discussion, mostly on the PR itself, but in the end we load the file by default. We prefer the use ofcustomize-set-variable
which allows constructors or setters attached to thedefcustom
declaration to run. This leaves the variables in a “pending” state as they are not written to the custom file, but are loaded each time Emacs starts. However, certain work flows specifically related to Org Agenda files and.dir-locals.el
which write to thecustom-file
and would be “lost” on the next run of Emacs since it wasn't originally loaded at startup. There were several iterations on this and eventually we just settled for the simplest approach of just loading the file if it exists. - We started a group for Rational Emacs
defcustom
variables. There is still more to do on this to refine where module variables show up. - There is now a
rational-speedbar
module for those who want a tree of things similar to other editors. Speedbar is built-in to Emacs, launches in a separate frame, so it doesn't clobber your current frame's window layout, and has some nice features. - Info documentation has been started. There is plenty to do with this particular effort, but at least there is a start. If you try
C-h i
you'll find a menu option called Rational Emacs at the top off the list.
Shameless Plug
If you enjoy configuring Emacs and tweak yours often, you might consider giving Rational 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!
Finally…
I have really enjoyed working on this project! I'm super thrilled I was asked to participate as a maintainer, so I hope I'm doing a good job. I'll put another update post in the future, maybe this will be a monthly thing. It kinda depends on how much is going on with the project. If there is a lot, maybe a more frequent update pace makes sense. We'll see how it goes.
Tags: #emacs