There are some problems while I’m using spacemacs.

These problems are getting bigger and my Spacemacs config are getting messier. So I decided to write my own .emacs.d. After writing some code I really feel like that everyone should write their own Emacs configuration, here is why:

I know that my problem is unique that not everybody is using emacs with evil-mode on a dvorak keyboard. But after writing some lisp myself. I find it quite satisfying and enjoyable:

I also read a lot Doom, Prelude and Spacemacs source code. I learned a lot even just by copy-pasting their code. I check every variable and every function I see with C-h so that I know what they do.

Actually, Spacemacs use use-package an which-key internally. I think with this approach the ideal configuration should look something like this:

code emacs-lisp use-packages

Just bunch of use-package forms.

That being said, there are some minor issues:

Once having a basic setup, one can extend it with ease and efficiency. By saying basic setup, I meant to write Emacs Lisp comfortably:

Then, just extend Emacs with bunch of use-package forms.

Anyway, here I am trying to achieve this. My configuration is optimized for DVORAK keyboard. You may not be using DVORAK, but apart from that it's still a good reference to get started hacking Emacs. It's using "htns" instead of "hjkl" to move around. It also tries to remap possible "C-j" "C-k" "C-n" "C-p" to "C-t" "C-n". And it works with evil-mode. It has a fast startup time, but I usually use emacs daemon (see scripts directory). Check the tasks list for what I've been doing and what will be implemented in the future.

Hope you find my experience helpful.

The Workflow

I guess not everybody is gonna read all the code (not too much TBH), so I'll describe what my typical workflow looks like (keep in mind that this is entry level stuff, don't laugh at me):

Some editing notes:

Note about SPEED

Emacs will initialize tool-bar/menu-bar even if you have disabled them in your configuration, to avoid this:

cp ~/.emacs.d/.Xresources.example ~/.Xresources
xrdb ~/.Xresources

You may want to put last line in your zshrc or bashrc.

Note about RSI

You are gonna use your pinky a lot, and this will result in RSI if not handled properly. To avoid this, first I recommend reading xah's blog "How to Avoid Emacs Pinky".

Now here are some additional methods which are not mentioned in the blog post:

If these two doesn't suit you, I think at least you should swap keys around, or use sticky keys….

External Programs

You'll also need these.

Good luck my fellow Emacsers, happy hacking!