I crafted a custom configuration for Emacs and have been using it for the past few weeks. This is something I didn’t really see myself doing when I started using Emacs, it seemed “very advanced”. This was my journey from a noob to a different kind of noob!

Doom

I started my Emacs journey with Doom and was learning things along the way. This was a great way to get started by borrowing configuration snippets and blindly copying and pasting, which got me up and running quickly. I did find the vastness of Doom intimidating and knew that I wasn’t using all the functionality and wasn’t really discovering it given the jam packed key-maps.

Vanilla Chocolate Swirl

Around the time when I was understanding how to copy paste configs more, there was some community discussion around making Emacs more inviting to new users. As a new user, I felt qualified to collect my thoughts. In an attempt to help new user on-boarding, I even created a literate config that others found useful enough to contribute to. I understood things a lot better through that exercise and felt comfortable enough to try packages by myself.

Back to Doom

Actually, I never left Doom while doing the above exercise. I did not want to invest the time necessary to learn to make my own config. Also, having all the keybindings already setup and showing up nicely in which-key was great. This is also before native-comp was merged into Emacs 28 master branch so I was having issues with compatibility. The final push was that using Doom with all its modules was not performant on a Windows machine that I don’t manage but have to use.

Custom Config

During this time, I kept disabling more and more Doom modules and replacing some of them with other options. There seems to be a lot of excitement about light-weight packages like vertico, consult, etc. that are more single task focused which I started integrating. I started using orderless, embark and ace-window as well and with those, I felt I had enough to use a custom config and be productive. I’m using Chemacs2 to have both my Doom config and my custom config installed but have been exclusively using the config.

I’ll make a few short posts with some of the things I learned in this process with some code snippets as examples.