diff --git a/modules/editors/emacs.nix b/modules/editors/emacs.nix index a08a256b..7b9b7a62 100644 --- a/modules/editors/emacs.nix +++ b/modules/editors/emacs.nix @@ -7,7 +7,7 @@ my = { packages = with pkgs; [ ## Doom dependencies - emacs + my.emacs27 git (ripgrep.override {withPCRE2 = true;}) diff --git a/overlays.nix b/overlays.nix index 2ae8fa80..04c76e46 100644 --- a/overlays.nix +++ b/overlays.nix @@ -1,14 +1,15 @@ [ (self: super: with super; { my = { - linode-cli = (callPackage ./packages/linode-cli.nix {}); - ripcord = (callPackage ./packages/ripcord.nix {}); - zunit = (callPackage ./packages/zunit.nix {}); + ant-dracula = (callPackage ./packages/ant-dracula.nix {}); cached-nix-shell = (callPackage (builtins.fetchTarball https://github.com/xzfc/cached-nix-shell/archive/master.tar.gz) {}); - ant-dracula = (callPackage ./packages/ant-dracula.nix {}); + emacs27 = (callPackage ./packages/emacs27.nix {}); + linode-cli = (callPackage ./packages/linode-cli.nix {}); + ripcord = (callPackage ./packages/ripcord.nix {}); + zunit = (callPackage ./packages/zunit.nix {}); }; nur = import (builtins.fetchTarball "https://github.com/nix-community/NUR/archive/master.tar.gz") { diff --git a/packages/emacs27.nix b/packages/emacs27.nix new file mode 100644 index 00000000..1b1e7ead --- /dev/null +++ b/packages/emacs27.nix @@ -0,0 +1,19 @@ +# https://github.com/nix-community/emacs-overlay is all about Emacs HEAD and +# pkgs.emacs is all about stable, but I want 27.0.90 with its native JSON +# library, and none of HEAD's instability, so... + +{ stdenv, pkgs, lib, fetchurl, ... }: + +pkgs.emacsGit.overrideAttrs (oa: rec { + name = "emacs-${version}"; + version = "27.0.90"; + src = fetchurl { + url = "https://alpha.gnu.org/gnu/emacs/pretest/${name}.tar.xz"; + sha256 = "1x0z9hfq7n88amd32714g9182nfy5dmz9br0pjqajgq82vjn9qxk"; + }; + buildInputs = oa.buildInputs ++ [ pkgs.jansson ]; + configureFlags = oa.configureFlags ++ [ "--with-jansson" ]; + + # Remove tramp-detect-wrapped-gvfsd.patch because it doesn't work with 27.0.90 + patches = lib.drop 1 oa.patches; +})