Coder Social home page Coder Social logo
GNU Emacs Discord Server Buy Me A Coffee

Lambda-Emacs (๐›Œ-Emacs) is intended to serve as a useful starting point for your own custom configuration. The design of this configuration is aimed at writing and academic work in the humanities (for discussion of my view of the use of text editors in the humanities 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 text-editors generally. Note that Lambda-Emacs is only compatible with Emacs 29+. However, parts of the configuration may easily be backported to older versions of Emacs.

The themes here are from lambda-themes.

Why use ๐›Œ-Emacs?

Why choose this configuration over any of the other amazing Emacs โ€œdistrosโ€ out there, such as (if you use vim-bindings) spacemacs, or doom-emacs, or the more traditional configurations of Purcell, Batsov (prelude), Zhang (Centaur Emacs), the bmacs configuration of Bryan Gilbert (see also his literate starter kit) and Karl Voitโ€™s config, John Kitchenโ€™s scimax, Kieran Healyโ€™s social sciences starter kit, and many others. Further helpful starts include sensible defaults or especially Crafted Emacs. There are also the recent stylings of Nicolas Rougierโ€™s elegant-emacs and nano-emacs. Truly a surfeit of riches. So why another one? Here are three reasons. ๐›Œ-Emacs is largely an abstraction from my own config, which I wanted to make more easily available to others. I also want a clean but useful config to point my students to. 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 bind-key
  4. Sensible defaults
  5. Dired with sensible colors and settings
  6. Completion with Vertico and related packages
  7. Lambda-themes, with toggles for dark/light mode & various other options
  8. A custom status-line, Lambda-line
  9. Extensive MacOS integration
  10. Tab-based project workflow leveraging the built-in project.el and tab-bar, with buffer-isolated tab/workspaces
  11. A configurable splash page
  12. A writing-centric configuration with great citation support, markdown, pandoc, dedicated functions for notes and note-taking (using denote), and settings for org-mode

๐›Œ-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 dotfiles org setup as well as the System Crafters tutorial.
  • Programming & Languages: Editing and Language specific settings.
  • 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 documentation (WIP) for further details.

Getting Started

  1. Clone lambda-emacs as 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 configuration file and the list of variables in the docs.
  4. For further questions please look at the documentation or ask a question on the Lambda-Emacs discord.

lambda-emacs's Projects

lambda-emacs icon lambda-emacs

Emacs distribution with sane defaults, pre-configured packages, and useful functions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.