home

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 55387543987b985d524aa1c525814f3d2cb18da5
parent b3a6c5ee6ebc423d3fe33dab69efe1b012f02613
Author: Vincent Demeester <vincent@sbr.pm>
Date:   Tue, 14 Apr 2020 22:52:07 +0200

emacs: add bookmark+ and dired+

Signed-off-by: Vincent Demeester <vincent@sbr.pm>

Diffstat:
Mmodules/profiles/emacs.nix | 2++
Aoverlays/emacs/builder.nix | 34++++++++++++++++++++++++++++++++++
Moverlays/sbr.nix | 52+++++++++++++++++++++++++++++++++++++++-------------
3 files changed, 75 insertions(+), 13 deletions(-)

diff --git a/modules/profiles/emacs.nix b/modules/profiles/emacs.nix @@ -56,6 +56,7 @@ in aggressive-indent async avy + pkgs.bookmark-plus company company-emoji company-go @@ -66,6 +67,7 @@ in dired-quick-sort dired-narrow dired-rsync + pkgs.dired-plus direnv dockerfile-mode easy-kill diff --git a/overlays/emacs/builder.nix b/overlays/emacs/builder.nix @@ -0,0 +1,34 @@ +{ stdenv +, emacs +, name +, src +, buildInputs ? [] +, patches ? [] +, preBuild ? "" +}: + +stdenv.mkDerivation { + inherit name src patches; + unpackCmd = '' + test -f "${src}" && mkdir el && cp -p ${src} el/${name} + ''; + buildInputs = [ emacs ] ++ buildInputs; + buildPhase = '' + ${preBuild} + ARGS=$(find ${stdenv.lib.concatStrings + (builtins.map (arg: arg + "/share/emacs/site-lisp ") buildInputs)} \ + -type d -exec echo -L {} \;) + mkdir $out + export HOME=$out + ${emacs}/bin/emacs -Q -nw -L . $ARGS --batch -f batch-byte-compile *.el + ''; + installPhase = '' + mkdir -p $out/share/emacs/site-lisp + install *.el* $out/share/emacs/site-lisp + ''; + meta = { + description = "Emacs projects from the Internet that just compile .el files"; + homepage = http://www.emacswiki.org; + platforms = stdenv.lib.platforms.all; + }; +} diff --git a/overlays/sbr.nix b/overlays/sbr.nix @@ -1,5 +1,8 @@ self: super: -{ +let + compileEmacsFiles = super.callPackage ./emacs/builder.nix; +in +rec { scripts = import ../pkgs/scripts { inherit (self) stdenv; }; @@ -9,18 +12,41 @@ self: super: vscodeliveshare = import ../pkgs/vscodeliveshare { inherit (self) stdenv vscode-utils autoPatchelfHook xorg gnome3 utillinux openssl icu zlib curl lttng-ust libsecret libkrb5 gcc libunwind binutils; }; - emacs27 = (self.emacs.override { srcRepo = true; }).overrideAttrs(old: { - name = "emacs-dev"; - version = "27.0.99"; + + emacs27 = (self.emacs.override { srcRepo = true; }).overrideAttrs ( + old: { + name = "emacs-dev"; + version = "27.0.99"; + src = super.fetchFromGitHub { + owner = "emacs-mirror"; + repo = "emacs"; + rev = "emacs-27.0.90"; + sha256 = "13n82lxbhmkcmlzbh0nml8ydxyfvz8g7wsdq7nszlwmq914gb5nk"; + }; + buildInputs = old.buildInputs ++ [ super.jansson ]; + patches = [ + ./patches/clean-env.patch + ]; + } + ); + + bookmark-plus = compileEmacsFiles { + name = "bookmark-plus"; src = super.fetchFromGitHub { - owner = "emacs-mirror"; - repo = "emacs"; - rev = "emacs-27.0.90"; - sha256 = "13n82lxbhmkcmlzbh0nml8ydxyfvz8g7wsdq7nszlwmq914gb5nk"; + owner = "emacsmirror"; + repo = "bookmark-plus"; + rev = "b6a71e8d153ae8b7bc9afed1cf7659765cfc1b0e"; + sha256 = "1nj9dci6wgwc531vigirx70g3nsw33bsh6ni3bq4dl0x1s4zy6gz"; }; - buildInputs = old.buildInputs ++ [ super.jansson ]; - patches = [ - ./patches/clean-env.patch - ]; - }); + }; + dired-plus = compileEmacsFiles { + name = "dired-plus"; + src = super.fetchFromGitHub { + owner = "emacsmirror"; + repo = "dired-plus"; + rev = "b51974b84b861592c3519117f3f51ee557ca01ba"; + sha256 = "0s59yd0axnja1zxc8snx013flf0f76n546i5ix5p0ngcbbhmm5kb"; + }; + }; + }