diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix index 45931e6914ad..cc3ea8990431 100644 --- a/pkgs/build-support/emacs/wrapper.nix +++ b/pkgs/build-support/emacs/wrapper.nix @@ -36,7 +36,10 @@ in customEmacsPackages.emacsWithPackages (epkgs: [ epkgs.evil epkgs.magit ]) with lib; let inherit (self) emacs; in -packagesFun: # packages explicitly requested by the user +{ + packagesFun ? [], # packages explicitly requested by the user + extraStart ? "" +}: let explicitRequires = @@ -53,7 +56,7 @@ stdenv.mkDerivation { # Store all paths we want to add to emacs here, so that we only need to add # one path to the load lists deps = runCommand "emacs-packages-deps" - { inherit explicitRequires lndir emacs; } + { inherit explicitRequires lndir emacs extraStart; } '' mkdir -p $out/bin mkdir -p $out/share/emacs/site-lisp @@ -96,6 +99,7 @@ stdenv.mkDerivation { (load-file "$emacs/share/emacs/site-lisp/site-start.el") (add-to-list 'load-path "$out/share/emacs/site-lisp") (add-to-list 'exec-path "$out/bin") +$extraStart EOF # Byte-compiling improves start-up time only slightly, but costs nothing. diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix index d2e3d2b866f9..ef616f37e0c0 100644 --- a/pkgs/top-level/emacs-packages.nix +++ b/pkgs/top-level/emacs-packages.nix @@ -63,7 +63,7 @@ let inherit fetchurl lib stdenv texinfo; }; - emacsWithPackages = import ../build-support/emacs/wrapper.nix { + emacsWrapper = import ../build-support/emacs/wrapper.nix { inherit lib lndir makeWrapper stdenv runCommand; }; @@ -71,7 +71,9 @@ let inherit emacs melpaBuild trivialBuild; - emacsWithPackages = emacsWithPackages self; + emacsWrapper = emacsWrapper self; + + emacsWithPackages = packagesFun: emacsWrapper { inherit packagesFun; }; ## START HERE