dot-emacs  by jwiegley

Emacs configuration and package management

Created 17 years ago
783 stars

Top 44.0% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

This repository offers a personal Emacs configuration, structured using literate programming principles within Org mode. It targets Emacs power users seeking a well-documented, organized, and reproducible setup, benefiting from declarative package management via Nix.

How It Works

The configuration leverages literate programming, with the primary Emacs initialization file (init.el) written in Org mode. This approach allows for the integration of executable Emacs Lisp code directly within well-structured, human-readable documentation, making it easier to organize, understand, and recall the purpose of various configurations and installed packages. For managing Emacs packages and their dependencies, the project relies heavily on Nix, a declarative package manager. This ensures reproducible builds and environments, with specific Emacs packages managed via Nix overlays defined in a separate repository.

Quick Start & Requirements

  • Primary install/run: Setup and management of Emacs and its dependencies are handled via the Nix package manager. Users will need to integrate this configuration into their NixOS or home-manager setup.
  • Prerequisites: Nix package manager, Emacs.
  • Links:
    • Detailed configuration documentation: init.org
    • Nix package management configuration: nix-config
  • Estimated setup time: Dependent on user's familiarity with Nix; initial Nix setup can take minutes to hours.

Highlighted Details

  • Literate Programming: Emacs configuration is managed in Org mode (init.org), providing integrated documentation and enhanced organization for complex setups.
  • Reproducible Builds: Nix package management is employed for most dependencies, ensuring consistent and reproducible environments across different systems.
  • Declarative Configuration: Nix overlays are used to define and manage Emacs packages declaratively, promoting a robust and maintainable setup.
  • Submodule Exception: The lisp/llm-setup directory is maintained as a Git submodule, indicating a specific, potentially distinct, development track or dependency for this component.

Maintenance & Community

(No specific information provided in the README snippet.)

Licensing & Compatibility

(No specific license information provided in the README snippet.)

Limitations & Caveats

The primary barrier to adoption is the significant prerequisite of Nix package management, which requires users to be proficient with Nix or invest time in learning it. This configuration is highly personalized and may necessitate substantial adaptation for individual user workflows, preferred packages, and system environments. The use of a Git submodule for lisp/llm-setup suggests a specific development focus that might not be universally applicable.

Health Check
Last Commit

1 week ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
0 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.