21 comments

[ 2.9 ms ] story [ 63.2 ms ] thread
Doom is amazing. I have tried a number of emacs distributions and doom is the only one that stuck.
Reading the readme I don't quite get it - in a nutshell, what is it?

Is it a configuration system (a lisp library/convention on how to configure packages), emacs with curated packages, or what? They also talk about modifying packages, which even if maybe good, isn't this a lot of work? But if so, why don't they just pull-request these back to the original packages?

used it for awhile when trying to grok emacs/vim, but went back to sublime (now vscode). However, it's similar to spacemacs.

It's basically skins/default configs and what not, it's a bit less structured/opinionated so you can customize it more/easier than spacemacs.

It's basically a repo containing ~/.emacs.d.

It provides a lot of sensible defaults for different Emacs packages, these are organized into "modules" which are just sub-folders that can be enabled or disabled via the central config files in ~/.doom.d (this is a custom Doom thing, it just loads a few files in ~/.doom.d at startup to make it easy to config everything in one place).

Basically it provides you a nice starting point to using Emacs, with things just working out of the box.

Ah, thank you (and the sibling) for a concise explanation!
Did anyone else expect this to be Doom running in Emacs?
And that screenshot with the DOOM logo in ASCII didn't help with my misunderstanding either. "So it's DOOM rendered in ASCII running on elisp inside emacs?"
Yeah, but then I thought if it was Doom running in Emacs, then it would be called "Emacs Doom." ¯\_(ツ)_/¯
For some reason I thought this was emacs with vi keybindings. Maybe I will look again.
It comes preset with evil-mode which is Emacs' vim emulation layer. But there's a lot more that Doom have done on top of that.
It's really easy to disable the vi keybindings (just comment out the `evil` package in `init.el`), and you still get all the benefits of the modules, package curation, performance tuning, etc.
I have been using Doom Emacs for a few weeks now, after a few decades of using a handcrafted config. I like Doom very much, it provides enough abstraction through modules to be able to enable/disable large swaths of functionality easily, while still being close-enough to plain Emacs to allow full customization to my liking. I like that it takes care of all the performance tuning, package management and a lot of the visual tweaking. I also like the idea of separating package install & compile into a separate operation, so that it further reduces startup time.

It comes with vi keybindings by default, but getting back to regular Emacs keybindings is as easy as commenting out the `evil` module and running `doom sync`.

If anyone is interested, my Doom config is here: https://github.com/zzamboni/dot-doom/blob/master/doom.org

> It took me all of 5 minutes to make, so improvements are welcome!

I actually think the way you created it is perfect. Before I even saw that (above) line in your README I thought, "That looks so cool." Reminds me of the DIY t-shirts you see the Punks/Metalheads wearing.

Can anyone who has also used Spacemacs explain why I might want to switch?

I've been considering doing a new setup with Spacemacs anyways, since my config is a huge mess right now (this was my first Emacs/Spacemacs/config experience), so switching to Doom Emacs would be something I'd consider.