Coder Social home page Coder Social logo

emacs-overlay's Introduction

Emacs overlay for Nixpkgs

Contents of the overlay

Elpa

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 attribute is named emacsGit in the overlay. Emacs from git is not guaranteed stable and may break your setup at any time, if it breaks you get to keep both pieces.

We also provide an attribute named emacsGit-nox if you wish to have Emacs built without X dependencies.

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: [
        epkgs.cask
      ];
      # 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 = https://github.com/nix-community/emacs-overlay/archive/master.tar.gz;
    }))
  ];
}

Community

IRC

#nixos-emacs on freenode

Nixpkgs issues

Emacs tracking issue

NixOS/nixpkgs#66303

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.