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

71 lines
2.9 KiB
Markdown

# 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/`, `require`d 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
```sh
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.