PitchHut
Log in / Sign up
nix-doom-emacs-unstraightened
4 views
Streamline your Emacs with Nix and Unstraightened.
Pitch

Unstraightened combines the power of Doom Emacs with the efficiency of Nix, providing a tailored environment for developers. By packaging user configurations and dependencies, it simplifies setup on both Linux and macOS, ensuring you have the latest updates. Experience a smoother coding experience without the usual hassle of configuration. Dive into Unstraightened and elevate your Emacs usage.

Description

nix-doom-emacs-unstraightened is a powerful tool that facilitates the building of Doom Emacs using Nix, seamlessly bundling user configuration directories along with their specified dependencies. This repository, affectionately known as "Unstraightened," offers a unique implementation that's similar to nix-doom-emacs, yet differentiates itself with its distinct approach.

Project Status

Currently, Doom Emacs is pinned to a commit from early November due to recent changes in Doom's initialization affecting Unstraightened. For tracking purposes, you can refer to issue #39. It's worth noting that org-roam may not function correctly at this time, and users are encouraged to report any encountered issues.

The tool has been successfully tested on both Linux and macOS platforms. Upon reviewing the CI status badge above, if it indicates a passing state, rest assured that Unstraightened installs an up-to-date version of Doom Emacs along with the majority of its module dependencies.

Key Features

  • Efficiency: Updates to Doom and its dependencies are managed along with your Nix packages with no need for separate commands such as doom sync.
  • Reproducible: Unlike standard Doom installations that can pull live versions of some packages, Unstraightened employs Nix’s impeccable pinning system, ensuring your configuration is tamper-proof and reliable.
  • Configuration Storage: Your Doom configuration is stored in the Nix store, aligning enabled modules directly with available dependencies for optimal integrity.

Getting Started

Running a Test

To run a test session, simply follow these steps:

  1. Clone this repository.
  2. Optionally, update nixpkgs using either nix flake update nixpkgs for Nix 2.19+ or nix flake lock --update-input nixpkgs for earlier versions. This allows Unstraightened to make use of dependencies already on your system.
  3. Overwrite the contents of doomdir with your personal Doom configuration.
  4. Confirm all files are added using git add doomdir.
  5. Execute nix run .#doom-emacs.

Flake Input

To add Unstraightened as a flake input, include it in your flake.nix:

inputs = {
  nix-doom-emacs-unstraightened.url = "github:marienz/nix-doom-emacs-unstraightened";
};

For Home Manager users, the necessary modules can be easily incorporated into your configuration.

Frequently Asked Questions

How to Add Additional Packages?

To include more packages, simply add (package! foo) to your packages.el.

If you wish to delve deeper into specific configurations, including those not covered here, feel free to explore or propose enhancements by filing an issue.

Performance Optimizations

If you're experiencing slower builds, setting Nix's max-jobs to be greater than 1 may significantly improve build time. Unstraightened uses Nix and its native compilation, meaning build times may vary depending on other configurations.

Community Support

For any bugs or inquiries, the community encourages users to refrain from reporting issues upstream; instead, replicate outside of Unstraightened first. Our collaborative approach ensures any challenges encountered can be addressed effectively within the project's community.

By enabling seamless integration of Doom Emacs with Nix, nix-doom-emacs-unstraightened paves the way for a cleaner, more reliable, and user-friendly configuration experience. Join us in enhancing your emacs environment with this innovative tool!