Skip to content
Bleeding edge emacs overlay [maintainer=@adisbladis]
Nix Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Emacs overlay for Nixpkgs

Contents of the overlay


Daily generations of Elpa.

Melpa / Melpa stable

Daily generations of Melpa & Melpa stable attribute sets.

EXWM & needed dependencies

This overlay provides fresh versions of EXWM and dependencies. This is updated daily.

Emacs 27

This overlay also provides a fresh version (latest from git) for Emacs. This is updated daily.

This package is named emacsGit in the overlay.

Extra library functionality

This overlay comes with an extra function to generate an Emacs closure from use-package declarations. This is an abstraction on top of emacsWithPackages.

  environment.systemPackages = [
    (emacsWithPackagesFromUsePackage {
      config = builtins.readFile ./emacs.el;
      # Package is optional, defaults to pkgs.emacs
      package = pkgs.emacsGit;
      # Optionally provide extra packages not in the configuration file
      extraEmacsPackages = epkgs: [
      # Optionally override derivations
      override = epkgs: epkgs // {
        weechat = epkgs.melpaPackages.weechat.overrideAttrs(old: {
          patches = [ ./weechat-el.patch ];

Usage of the overlay

Latest master each rebuild

One way, and probably the most convenient way to pull in this overlay is by just fetching the tarball of latest master on rebuild.

This has side-effects if packages breaks or things like that you may want to be in control of which revision of the overlay you run.

Adding the overlay this way will extend your Emacs packages set to contain the latest EXWM and dependencies from their respective master and make the package emacsGit available. These of course change quite rapidly and will cause compilation time.

  nixpkgs.overlays = [
    (import (builtins.fetchTarball {
      url =;
You can’t perform that action at this time.