This repository has been archived on 2026-10-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
SimplyEmacs/README.md
T

2.9 KiB

SimplyEmacs

Vanilla Emacs at heart, with Evil scoped strictly to buffer editing and basic motion.

Philosophy

SimplyEmacs is my personal, versioned Emacs setup — built up piece by piece and treated like a project with tags and releases.

Simple idea: stick as close to vanilla Emacs as possible, but keep movement comfortable. Evil handles normal modal editing inside regular text buffers, while in modes like Dired or Magit it's stripped down to a paper-thin navigation layer (hjkl for moving around) so all the native keybinds and features keep working as intended. It gives you comfortable motion without burying how Emacs actually works.

Layout

.
├── init.el                # bootstrap, general UI, built-in settings, module loader
├── lisp/
│   ├── init-evil.el       # evil-mode, ex commands, buffer-editing keybinds
│   ├── init-dired.el      # evil-style navigation for dired
│   ├── init-completion.el # vertico, orderless, marginalia, corfu, consult, which-key
│   ├── init-project.el    # project.el scoped to ~/Projects, with a sticky project pin
│   ├── init-build.el      # simple build system around build.sh scripts
│   ├── init-dev.el        # per-language tooling (Odin, Lua, TOML) + eglot
│   ├── init-git.el        # version control with Magit
│   ├── init-theme.el      # gruvbox-dark-hard + a few face tweaks
│   └── init-cheatsheet.el # in-Emacs keybinding reference (toggle with C-c /)
└── custom.el              # auto-generated by M-x customize, gitignored

init.el is meant to stay readable as "what does bare Emacs look and feel like" — general UI, backups/autosave, scrolling, removing confirmations, etc. Everything else is one file per concern under lisp/, required at the bottom of init.el. Custom's auto-generated output is redirected to its own custom.el (gitignored) so a stray M-x customize never shows up as noise in a diff.

Included

  • Completion — vertico + vertico-posframe, orderless, marginalia, corfu, consult
  • Discovery — which-key
  • Editing — evil (buffer editing only)
  • Files — dired, tuned with evil-style hjkl navigation
  • Dev tooling — tree-sitter + odin-ts-mode + eglot (OLS) for Odin, plus lua-mode, toml-mode, and markdown-mode
  • Theme — gruvbox-dark-hard, darkened background/fringe/line-numbers to #111111

Install

git clone <this-repo> ~/.config/emacs
emacs

First launch will refresh package archives and install everything declared via use-package.

Adding a language

Add a new ;;;; <Language> section to lisp/init-dev.el following the Odin example (tree-sitter grammar source, mode package, eglot hook).

Versioning

Tagged releases (v1.0, v1.1, ...) mark points where the config is in a known-good, "I'd hand this to past-me" state. Day-to-day tweaks happen over time and, once they've proven themselves, eventually land in a version.