Lambda-Emacs/lambda-emacs

MOVED TO CODEBERG (https://codeberg.org/Lambda-Emacs/lambda-emacs). This GitHub repo is an archived mirror.

Emacs Lisp

202

363 commits

updated May 30, 2026

See the code

README

* This project has moved to Codeberg
Active development, issues, and releases are now at https://codeberg.org/Lambda-Emacs/lambda-emacs

This GitHub repository is a read-only archived mirror and is no longer updated.

-----

#+html: <a href="https://www.gnu.org/software/emacs/"><img alt="GNU Emacs" src="https://raw.githubusercontent.com/jcs-emacs/badges/refs/heads/master/elpa/emacs.svg"/></a>
#+html: <a href="https://discord.gg/NtYcrRtTxg"><img alt="Discord Server" src="https://img.shields.io/badge/Lambda-Discord-1004037022824013905?style=flat&logo=discord&logoColor=lightgrey"/></a>
#+html: <a href="https://www.buymeacoffee.com/fxpy8fzgyxg" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 23px !important;width: 120px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>

Lambda-Emacs (π›Œ-Emacs) is an Emacs configuration aimed at those engaged in writing and academic work in the humanities (for discussion of my view of the use of text editors in the humanities [[https://www.colinmclear.net/posts/texteditor/][see here]]), rather than opposed to, e.g., a programming language emphasis, though I've tried to make it user-friendly for programmers as well. Another goal of π›Œ-Emacs is to provide enough commentary on the configuration such that it might be useful to those new to emacs or even [[https://en.wikipedia.org/wiki/Text_editor][text-editors]] generally. In either case it is intended to serve as a useful starting point for one's own custom configuration. *Note* that Lambda-Emacs requires Emacs 30.1+ to take advantage of native compilation, built-in packages, and enhanced tree-sitter support. 

#+BEGIN_HTML
<div>
<img src="./screenshots/light-splash.png" width=47.5%/>
<img src="./screenshots/dark-splash.png" width=47.5%/>
<img src="./screenshots/agenda.png" width=47.5%/>
<img src="./screenshots/org.png" width=47.5%/>
<img src="./screenshots/minibuffer.png" width=47.5%/>
<img src="./screenshots/eshell.png" width=47.5%/>
</div>
#+END_HTML

The themes here are from [[https://github.com/Lambda-Emacs/lambda-themes][lambda-themes.]]

* Why use π›Œ-Emacs?

There are a great number of amazing Emacs "distros" out there, such as (if you use vim-bindings) [[http://spacemacs.org][spacemacs]], or [[https://github.com/hlissner/doom-emacs][doom-emacs]], or the more traditional configurations of [[Https://github.com/purcell/emacs.d][Purcell]], [[https://github.com/bbatsov/prelude][Batsov (prelude)]], [[https://github.com/seagle0128/.emacs.d][Zhang (Centaur Emacs)]], the [[https://github.com/gilbertw1/bmacs][bmacs]] configuration of Bryan Gilbert (see also his [[https://github.com/gilbertw1/emacs-literate-starter][literate starter kit]]) and [[https://github.com/novoid/dot-emacs][Karl Voit's]] config, John Kitchen's [[https://github.com/jkitchin/scimax][scimax]], Kieran Healy's [[https://github.com/kjhealy/emacs-starter-kit][social sciences starter kit]], and [[https://github.com/caisah/emacs.dz][many others]]. Further helpful starts include [[https://github.com/hrs/sensible-defaults.el][sensible defaults]] or especially [[https://github.com/SystemCrafters/crafted-emacs][Crafted Emacs]]. There are also the recent stylings of [[https://github.com/rougier][Nicolas Rougier's]] [[https://github.com/rougier/elegant-emacs][elegant-emacs]] and [[https://github.com/rougier/nano-emacs][nano-emacs]]. Truly a surfeit of riches. Why choose this configuration over any of these others? Indeed, why did I bother to write another one at all? Here are three reasons. First, much of it already existed as part of my personal Emacs config. π›Œ-Emacs is largely an abstraction from this, which I wanted to make more easily available to others. Second, I also wanted a clean but useful config to which I could point my students. Finally, setting this up is a useful way for me to think about how "best" to configure Emacs.

* π›Œ-Emacs Features 

1. Short start up time -- emacs-init-time < 1 sec (though this may vary somewhat
   depending on your system)
2. Uses the built-in package.el and package-vc.el for package management
3. Comprehensive keybindings using [[https://github.com/jwiegley/use-package/blob/master/bind-key.el][bind-key]] 
4. Sensible defaults
5. Dired with sensible colors and settings 
6. Completion with [[https://github.com/minad/vertico][Vertico]] and related packages
7. [[https://github.com/Lambda-Emacs/lambda-themes][Lambda-themes]], with toggles for dark/light mode & various other options
8. A custom status-line, [[https://github.com/Lambda-Emacs/lambda-line][Lambda-line]] 
9. Extensive MacOS integration
10. Tab-based project workflow leveraging the built-in project.el
    and tab-bar, with [[https://github.com/mclear-tools/tabspaces][buffer-isolated tab/workspaces]]
11. A configurable splash page
12. A writing-centric configuration with great citation support, markdown, [[https://github.com/jgm/pandoc][pandoc]],
    [[https://github.com/mclear-tools/consult-notes][dedicated functions for notes]] and note-taking (using [[https://github.com/protesilaos/denote][denote]]), and settings for org-mode
13. Built-in LSP support using Eglot for modern programming workflows
14. LLM integration with Claude and other AI assistants for coding assistance 

* π›Œ-Emacs Modules

π›Œ-Emacs is a "modular" distribution of Emacs. It consists of a set of "setup"
elisp files grouped according to the following areas (*NOTE*: these are still works in progress):

- *Core*: These files load essential libraries, useful functions, macros, and sane
  settings. 
- *UI*: Primary settings concerning frame, window, and buffer interaction, along
  with fonts, faces, themeing, and completion all belong to this group.
- *Navigation & Search*: Useful navigation and search functions, plus setup and
  extension of the built-in dired file manager.
- *Writing & Editing*: Settings for spelling, citation (using citar and completion
  at point), dictionary, notes (using consult-notes), typesetting (LaTeX) and
  writing-specific modes (markdown and org).
- *Org*: Writing, Project management, TODOs, Literate programming. What doesn't
  org do? Since many people use Emacs almost exclusively for org-mode, it
  warrants its own group. There are three modules. There is =lem-setup-org-base=,
  which provides a base configuration. It also loads (optionally) two further
  modules, =lem-setup-org-settings= and =lem-setup-org-extensions=. The former
  provides configuration for various built-in aspects of org, including the
  agenda. The latter provides a variety of useful additional packages, including
  styling with =org-modern=. Note that no capture templates, etc., are set here.
  The interested user might want to consult my [[https://github.com/mclear-tools/dotemacs/blob/master/cpm-setup-org.el][dotfiles org]] setup as well as the
  [[https://systemcrafters.cc/emacs-from-scratch/organize-your-life-with-org-mode/][System Crafters]] tutorial.
- *Programming & Languages*: Editing and Language specific settings with enhanced
  LSP support using built-in Eglot.
- *LSP*: Language Server Protocol configuration for modern development workflows.
- *LLM*: Large Language Model integration for AI-assisted coding and writing.
- *Shell*: Configuration for compilation, shell, and terminal (vterm).
- *Eshell*: Configuration for the Emacs eshell  
- *Workspaces*: Version control, tab settings, buffer-isolation, and other
  configuration for the built-in project.el and tab-bar.el

See the [[file:DOCUMENTATION.org][documentation]] (WIP) for further details.

* Getting Started

1. Clone lambda-emacs as a directory named "emacs.d" (NOTE: you should back-up your current emacs
   config if you have one!): =git clone https://github.com/Lambda-Emacs/lambda-emacs.git ~/.emacs.d=
2. Run Emacs -- it will ask at startup if you want to generate a user
   configuration file, if you do it will generate that file and start up with
   some basic packages (this requires an internet connection and may take a
   little while to complete). If you do not create a config file Emacs will
   start with all the default packages in Lambda-Emacs (which will take time to
   fully download).
3. Put whatever settings you prefer in your config file. This should include
   things like the font you prefer and whatever other variable settings you
   might like. For some hints see my [[https://github.com/mclear-tools/dotemacs/blob/master/config.el][configuration file]] and the list of
   variables in the [[id:20220623T011222.999171][docs]]. 
4. For further questions please look at the [[id:20220623T011222.999171][documentation]] or ask a question on the [[https://discord.gg/NtYcrRtTxg][Lambda-Emacs discord]].

Not written in Markdown, so it's shown here as plain text β€” view it formatted on GitHub.

Contributors

mclearc

362 commits

saanvik

1 commits

Lambda-Emacs/lambda-emacs

MOVED TO CODEBERG (https://codeberg.org/Lambda-Emacs/lambda-emacs). This GitHub repo is an archived mirror.

Emacs Lisp

202

363 commits

updated May 30, 2026

See the code

README

* This project has moved to Codeberg
Active development, issues, and releases are now at https://codeberg.org/Lambda-Emacs/lambda-emacs

This GitHub repository is a read-only archived mirror and is no longer updated.

-----

#+html: <a href="https://www.gnu.org/software/emacs/"><img alt="GNU Emacs" src="https://raw.githubusercontent.com/jcs-emacs/badges/refs/heads/master/elpa/emacs.svg"/></a>
#+html: <a href="https://discord.gg/NtYcrRtTxg"><img alt="Discord Server" src="https://img.shields.io/badge/Lambda-Discord-1004037022824013905?style=flat&logo=discord&logoColor=lightgrey"/></a>
#+html: <a href="https://www.buymeacoffee.com/fxpy8fzgyxg" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 23px !important;width: 120px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>

Lambda-Emacs (π›Œ-Emacs) is an Emacs configuration aimed at those engaged in writing and academic work in the humanities (for discussion of my view of the use of text editors in the humanities [[https://www.colinmclear.net/posts/texteditor/][see here]]), rather than opposed to, e.g., a programming language emphasis, though I've tried to make it user-friendly for programmers as well. Another goal of π›Œ-Emacs is to provide enough commentary on the configuration such that it might be useful to those new to emacs or even [[https://en.wikipedia.org/wiki/Text_editor][text-editors]] generally. In either case it is intended to serve as a useful starting point for one's own custom configuration. *Note* that Lambda-Emacs requires Emacs 30.1+ to take advantage of native compilation, built-in packages, and enhanced tree-sitter support. 

#+BEGIN_HTML
<div>
<img src="./screenshots/light-splash.png" width=47.5%/>
<img src="./screenshots/dark-splash.png" width=47.5%/>
<img src="./screenshots/agenda.png" width=47.5%/>
<img src="./screenshots/org.png" width=47.5%/>
<img src="./screenshots/minibuffer.png" width=47.5%/>
<img src="./screenshots/eshell.png" width=47.5%/>
</div>
#+END_HTML

The themes here are from [[https://github.com/Lambda-Emacs/lambda-themes][lambda-themes.]]

* Why use π›Œ-Emacs?

There are a great number of amazing Emacs "distros" out there, such as (if you use vim-bindings) [[http://spacemacs.org][spacemacs]], or [[https://github.com/hlissner/doom-emacs][doom-emacs]], or the more traditional configurations of [[Https://github.com/purcell/emacs.d][Purcell]], [[https://github.com/bbatsov/prelude][Batsov (prelude)]], [[https://github.com/seagle0128/.emacs.d][Zhang (Centaur Emacs)]], the [[https://github.com/gilbertw1/bmacs][bmacs]] configuration of Bryan Gilbert (see also his [[https://github.com/gilbertw1/emacs-literate-starter][literate starter kit]]) and [[https://github.com/novoid/dot-emacs][Karl Voit's]] config, John Kitchen's [[https://github.com/jkitchin/scimax][scimax]], Kieran Healy's [[https://github.com/kjhealy/emacs-starter-kit][social sciences starter kit]], and [[https://github.com/caisah/emacs.dz][many others]]. Further helpful starts include [[https://github.com/hrs/sensible-defaults.el][sensible defaults]] or especially [[https://github.com/SystemCrafters/crafted-emacs][Crafted Emacs]]. There are also the recent stylings of [[https://github.com/rougier][Nicolas Rougier's]] [[https://github.com/rougier/elegant-emacs][elegant-emacs]] and [[https://github.com/rougier/nano-emacs][nano-emacs]]. Truly a surfeit of riches. Why choose this configuration over any of these others? Indeed, why did I bother to write another one at all? Here are three reasons. First, much of it already existed as part of my personal Emacs config. π›Œ-Emacs is largely an abstraction from this, which I wanted to make more easily available to others. Second, I also wanted a clean but useful config to which I could point my students. Finally, setting this up is a useful way for me to think about how "best" to configure Emacs.

* π›Œ-Emacs Features 

1. Short start up time -- emacs-init-time < 1 sec (though this may vary somewhat
   depending on your system)
2. Uses the built-in package.el and package-vc.el for package management
3. Comprehensive keybindings using [[https://github.com/jwiegley/use-package/blob/master/bind-key.el][bind-key]] 
4. Sensible defaults
5. Dired with sensible colors and settings 
6. Completion with [[https://github.com/minad/vertico][Vertico]] and related packages
7. [[https://github.com/Lambda-Emacs/lambda-themes][Lambda-themes]], with toggles for dark/light mode & various other options
8. A custom status-line, [[https://github.com/Lambda-Emacs/lambda-line][Lambda-line]] 
9. Extensive MacOS integration
10. Tab-based project workflow leveraging the built-in project.el
    and tab-bar, with [[https://github.com/mclear-tools/tabspaces][buffer-isolated tab/workspaces]]
11. A configurable splash page
12. A writing-centric configuration with great citation support, markdown, [[https://github.com/jgm/pandoc][pandoc]],
    [[https://github.com/mclear-tools/consult-notes][dedicated functions for notes]] and note-taking (using [[https://github.com/protesilaos/denote][denote]]), and settings for org-mode
13. Built-in LSP support using Eglot for modern programming workflows
14. LLM integration with Claude and other AI assistants for coding assistance 

* π›Œ-Emacs Modules

π›Œ-Emacs is a "modular" distribution of Emacs. It consists of a set of "setup"
elisp files grouped according to the following areas (*NOTE*: these are still works in progress):

- *Core*: These files load essential libraries, useful functions, macros, and sane
  settings. 
- *UI*: Primary settings concerning frame, window, and buffer interaction, along
  with fonts, faces, themeing, and completion all belong to this group.
- *Navigation & Search*: Useful navigation and search functions, plus setup and
  extension of the built-in dired file manager.
- *Writing & Editing*: Settings for spelling, citation (using citar and completion
  at point), dictionary, notes (using consult-notes), typesetting (LaTeX) and
  writing-specific modes (markdown and org).
- *Org*: Writing, Project management, TODOs, Literate programming. What doesn't
  org do? Since many people use Emacs almost exclusively for org-mode, it
  warrants its own group. There are three modules. There is =lem-setup-org-base=,
  which provides a base configuration. It also loads (optionally) two further
  modules, =lem-setup-org-settings= and =lem-setup-org-extensions=. The former
  provides configuration for various built-in aspects of org, including the
  agenda. The latter provides a variety of useful additional packages, including
  styling with =org-modern=. Note that no capture templates, etc., are set here.
  The interested user might want to consult my [[https://github.com/mclear-tools/dotemacs/blob/master/cpm-setup-org.el][dotfiles org]] setup as well as the
  [[https://systemcrafters.cc/emacs-from-scratch/organize-your-life-with-org-mode/][System Crafters]] tutorial.
- *Programming & Languages*: Editing and Language specific settings with enhanced
  LSP support using built-in Eglot.
- *LSP*: Language Server Protocol configuration for modern development workflows.
- *LLM*: Large Language Model integration for AI-assisted coding and writing.
- *Shell*: Configuration for compilation, shell, and terminal (vterm).
- *Eshell*: Configuration for the Emacs eshell  
- *Workspaces*: Version control, tab settings, buffer-isolation, and other
  configuration for the built-in project.el and tab-bar.el

See the [[file:DOCUMENTATION.org][documentation]] (WIP) for further details.

* Getting Started

1. Clone lambda-emacs as a directory named "emacs.d" (NOTE: you should back-up your current emacs
   config if you have one!): =git clone https://github.com/Lambda-Emacs/lambda-emacs.git ~/.emacs.d=
2. Run Emacs -- it will ask at startup if you want to generate a user
   configuration file, if you do it will generate that file and start up with
   some basic packages (this requires an internet connection and may take a
   little while to complete). If you do not create a config file Emacs will
   start with all the default packages in Lambda-Emacs (which will take time to
   fully download).
3. Put whatever settings you prefer in your config file. This should include
   things like the font you prefer and whatever other variable settings you
   might like. For some hints see my [[https://github.com/mclear-tools/dotemacs/blob/master/config.el][configuration file]] and the list of
   variables in the [[id:20220623T011222.999171][docs]]. 
4. For further questions please look at the [[id:20220623T011222.999171][documentation]] or ask a question on the [[https://discord.gg/NtYcrRtTxg][Lambda-Emacs discord]].

Not written in Markdown, so it's shown here as plain text β€” view it formatted on GitHub.

Contributors

mclearc

362 commits

saanvik

1 commits

Languages

Emacs Lisp

100.0%