mirror of
https://github.com/nix-community/emacs-overlay.git
synced 2025-12-15 15:21:01 -08:00
77 lines
2.1 KiB
Nix
77 lines
2.1 KiB
Nix
self: super:
|
|
let
|
|
|
|
mkExDrv = emacsPackagesNg: name: args: let
|
|
repoMeta = super.lib.importJSON (./repos/exwm/. + "/${name}.json");
|
|
in emacsPackagesNg.melpaBuild (args // {
|
|
pname = name;
|
|
ename = name;
|
|
version = repoMeta.version;
|
|
recipe = builtins.toFile "recipe" ''
|
|
(${name} :fetcher github
|
|
:repo "ch11ng/${name}")
|
|
'';
|
|
|
|
src = super.fetchFromGitHub {
|
|
owner = "ch11ng";
|
|
repo = name;
|
|
inherit (repoMeta) rev sha256;
|
|
};
|
|
});
|
|
|
|
in {
|
|
|
|
emacsGit = let
|
|
repoMeta = super.lib.importJSON ./repos/emacs/emacs.json;
|
|
in (super.emacs.override { srcRepo = true; }).overrideAttrs(old: {
|
|
name = "emacs-git-${repoMeta.version}";
|
|
inherit (repoMeta) version;
|
|
src = super.fetchFromGitHub {
|
|
owner = "emacs-mirror";
|
|
repo = "emacs";
|
|
inherit (repoMeta) sha256 rev;
|
|
};
|
|
patches = [
|
|
./patches/tramp-detect-wrapped-gvfsd.patch
|
|
./patches/clean-env.patch
|
|
];
|
|
});
|
|
|
|
emacsWithPackagesFromUsePackage = import ./elisp.nix { pkgs = self; };
|
|
|
|
emacsPackagesNgFor = emacs: (
|
|
(super.emacsPackagesNgFor emacs).overrideScope'(eself: esuper: let
|
|
|
|
melpaStablePackages = esuper.melpaStablePackages.override {
|
|
archiveJson = ./repos/melpa/recipes-archive-melpa.json;
|
|
};
|
|
|
|
melpaPackages = esuper.melpaPackages.override {
|
|
archiveJson = ./repos/melpa/recipes-archive-melpa.json;
|
|
};
|
|
|
|
elpaPackages = esuper.elpaPackages.override {
|
|
generated = ./repos/elpa/elpa-generated.nix;
|
|
};
|
|
|
|
# Note: Org generation is currently failing (probably a bug in emacs2nix)
|
|
# Comment this out when a fix has reached unstable
|
|
# orgPackages = esuper.orgPackages.override {
|
|
# generated = ./repos/org/org-packages.nix
|
|
# }
|
|
|
|
epkgs = esuper.override {
|
|
inherit melpaStablePackages melpaPackages elpaPackages;
|
|
};
|
|
|
|
in epkgs // {
|
|
xelb = mkExDrv eself "xelb" {
|
|
packageRequires = [ eself.cl-generic eself.emacs ];
|
|
};
|
|
|
|
exwm = mkExDrv eself "exwm" {
|
|
packageRequires = [ eself.xelb ];
|
|
};
|
|
}));
|
|
|
|
}
|