Repository navigation
Add the nemacs integration - #158
Merged
Merged
Conversation
A nemacs configuration is an Emacs written as nemacs modules, evaluated per system on the package set selected for it. The core module is the one the flake of nemacs registers for the class, so the integration takes no ecosystem source. A configuration is published as nemacsConfigurations.<system>.<name> with its package, its activationPackage, config and options. It is kept in a Nix profile of its own, so activate switches the editor without activating the home, machine or hjem configuration it is declared inside. Those parents already activate any kept profile, and the program shims offer emacs and emacsclient under CAISSON_NEMACS_PROFILE. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The nemacs modules follow the generic registry entries that replaced the module symlinks, the evaluator reports the modules it received and reads its configuration module through configModuleOf, and the registered world of the pinned-world suite holds a nemacs configuration. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
nemacs (github.com/clhodapp/nemacs) builds an Emacs from Nix modules, the way nixvim and nvf build a Neovim. This adds a caisson integration for the
nemacsclass, modeled on the nvf and nixvim integrations.A nemacs configuration is evaluated per system on the package set selected for it. The integration takes no ecosystem source: the core module is the
coreentry that the flake of nemacs registers for the class, andpkgsis supplied as a module argument, as nemacs's ownevalNemacssupplies it.A configuration is published as
nemacsConfigurations.<system>.<name>withpackage,activationPackage,configandoptions. It is kept in a Nix profile of its own, so runningactivatefromactivationPackageswitches the editor alone, without activating the home, machine or hjem configuration it is declared inside. Those parents already activate any kept profile, and their shims offeremacsandemacsclientunderCAISSON_NEMACS_PROFILE.The change registers the class where caisson lists its integrations, adds a README row, and adds a pinned-world test that compares a published configuration and a NixOS machine profile with what nemacs's
evalNemacsbuilds.tests/dependenciespins the nemacs flake for it. The existing pins did not move.nix flake check --keep-going -Lpasses on x86_64-linux, VM tests included. Theaarch64-darwinchecks were not run. There is no VM test for nemacs like the one nvf has inprofile-vm.🤖 Generated with Claude Code