README.md

May 17, 2026 ยท View on GitHub

๐Ÿ˜ˆ Ian's Yay-Evil Emacs: An even better 'better defaults' ๐Ÿ˜ˆ


Maintenance GPL License Version Awesome

Star History Chart

Welcome! ๐Ÿ‘‹

This Emacs "distro" is based on my personal Emacs configuration. It's unopinionated and was created for general use in mind. The package settings are grouped in a logical manner, and I've documented as detailed as possible what each code snippet does in my config.org file.

You can find my opinionated personal configuration here (for macOS) and here (for Arch and Ubuntu on WSL2).

This Emacs config starts up super fast with an average init time of 0.45 seconds.

alt text

The screenshot shows an Emacs configuration built on top of Yay-Evil and includes extra UI-enhancement packages like modern file tree, tabs, and different background colors for secondary buffers.

Installation ๐Ÿ€

Back up your ~/.emacs.d/ first (if you have one):

mv ~/.emacs.d/ ~/.emacs.d.bak/

Git clone my configuration to your new ~/.emacs.d/ :

git clone git@github.com:ianyepan/yay-evil-emacs.git ~/.emacs.d

"Rolling" Release ๐Ÿ™ƒ

I will constantly push new commits as soon as I discover new things suitable for this "distro".

How the config structure works ๐Ÿง

The init.el requires config.el, which is produced by org-babel and config.org. This allows me to put most of my configuration in an Org file with literate programming style (good for documenting code usage!).

Third-party packages that Yay-Evil uses:

Better package managing syntax and performance

  • use-package

Vim editing habits (optional depending on your preferences)

  • evil
  • evil-collection
  • evil-commentary

Git integration

  • magit

Better Emacs defaults

  • company (auto-completion)
  • ido-vertical-mode
  • ido-completing-read+ (ido-ubiquitous)
  • dashboard (welcome screen)

Org mode

  • org-bullets

Friendly warnings

  • flycheck

Lightweight syntax highlight improvement for all languages

  • highlight-numbers
  • highlight-escape-sequences

Appendix I: Themes I adore

Dark themes

  • Gruvbox Dark (specifically the Material variant)
  • Visual Studio Code Dark+ for Emacs
  • Wilmersdorf theme - the default theme for Yay-Evil. See more below.

Light themes

If you prefer a theme pack with some of the most popular themes, I recommend the doom-themes package:

Wilmersdorf Theme

The default installation of my Emacs configuration ships with the Wilmersdorf theme I designed myself. It is inspired by Monochrome, Spacemacs Dark, Ariake Dark, and Raiju. You can find more information on this theme here.

Appendix II: Fonts I adore

  • Ubuntu Mono
  • Consolas (classic yet beautifully modern)
  • Hack / Menlo / DejaVu family (classic, default on lots of systems)
  • Source Code Pro (playful and modern-looking, easy on the eyes)
  • Google Sans Code
  • Fixedsys Excelsior (retro Microsoft vibes)
  • IBM VGA 8x16 (from Ultimate Oldschool PC font pack)

FAQ: โ“

1. But I'm not an Evil user

Sure! Simply delete (or comment out) the sections regarding Vi bindings in config.org.

2. How do I install extra packages that I want?

You should be able to install packages the normal way (M-x list-packages RET and i x on the desired package row). If you plan to sync your config files across machines, add the configuration in config.org with your preferred syntax (use-package is recommended). Yay-Evil sets all the packages :ensure to true by default, so you don't need to add :ensure t.

3. How do I remove packages that I don't need?

For this you need two steps:

  • First, in the config.org file, remove (or comment out) the relevant configuration code.
  • Next, type M-x list-packages RET and delete the unwanted package by placing your cursor on the target row and press d followed by an x.