From 00b6f11dcd6d6b9738ca71baaed768ef47664df6 Mon Sep 17 00:00:00 2001 From: Kenny Ballou Date: Thu, 2 May 2019 18:04:18 -0600 Subject: overlays: add initial emacs overlay This still needs some work. Signed-off-by: Kenny Ballou --- overlays/10-emacs.nix | 19 ++++++ overlays/emacs/builder.nix | 33 ++++++++++ overlays/emacs/packages.nix | 152 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 204 insertions(+) create mode 100644 overlays/10-emacs.nix create mode 100644 overlays/emacs/builder.nix create mode 100644 overlays/emacs/packages.nix diff --git a/overlays/10-emacs.nix b/overlays/10-emacs.nix new file mode 100644 index 0000000..4047843 --- /dev/null +++ b/overlays/10-emacs.nix @@ -0,0 +1,19 @@ +self: super: +let + + emacsWithPkgs = self.emacsWithPackages + (import ./emacs/packages.nix { epkgs = self.emacsPackages; }); + + in { + + emacsToolsEnv = super.buildEnv { + name = "emacsTools"; + paths = [ + emacsWithPkgs + self.mu + self.multimarkdown + self.poppler + self.haskellPackages.pandoc + ]; + }; + } \ No newline at end of file diff --git a/overlays/emacs/builder.nix b/overlays/emacs/builder.nix new file mode 100644 index 0000000..8c3349c --- /dev/null +++ b/overlays/emacs/builder.nix @@ -0,0 +1,33 @@ +# https://github.com/jwiegley/nix-config/blob/4d296ad/overlays/emacs/builder.nix +{ 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 -L {} \;) + ${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; + }; +} \ No newline at end of file diff --git a/overlays/emacs/packages.nix b/overlays/emacs/packages.nix new file mode 100644 index 0000000..afcb539 --- /dev/null +++ b/overlays/emacs/packages.nix @@ -0,0 +1,152 @@ +pkgs: epkgs: with epkgs; +[ + add-node-modules-path + ag + alchemist + anaconda-mode + anti-zenburn-theme + anzu + auctex + avy + bind-key + browse-kill-ring + buffer-move + bundler + cider + cljsbuild-mode + clojure-mode + coffee-mode + company + counsel + counsel-projectile + counsel-tramp + css-eldoc + csv + define-word + delight + diff-hl + diminish + disable-mouse + docker + docker-compose-mode + docker-tramp + dockerfile-mode + edts + ein + elein + elfeed + elixir-mode + elm-mode + ensime + erlang + ess + exec-path-from-shell + expand-region + f + fill-column-indicator + flycheck + flycheck-clojure + flycheck-color-mode-line + flycheck-credo + flycheck-elixir + flycheck-elm + flycheck-haskell + flycheck-ledger + fold-dwim + forge + fullframe + geben + geiser + git-commit + git-timemachine + gitconfig-mode + gitignore-mode + go-autocomplete + go-mode + goto-gem + graphviz-dot-mode + guide-key + guix + gxref + haml-mode + haskell-mode + highlight-escape-sequences + hindent + htmlize + import-js + inf-ruby + ivy + jdee + jedi + js-comint + js2-mode + json-mode + ledger-mode + less-css-mode + list-unicode-display + magit + markdown-mode + mmm-mode + multi-term + multiple-cursors + multiple-cursors + mwim + nix-buffer + nix-mode + nix-update + ob-elixir + ob-go + ob-ipython + ob-mongo + olivetti + org-babel-eval-in-repl + org-cliplink + org-pomodoro + org-ref + ox-gfm + pcmpl-args + pcmpl-git + pcmpl-pip + pcomplete-extension + pdf-tools + peep-dired + php-mode + pip-requirements + projectile + python + racer + rainbow-delimiters + rainbow-mode + # realgud + regex-tool + robe + rspec-mode + ruby-compilation + ruby-hash-syntax + rust-mode + sass-mode + scss-mode + session + skewer-less + skewer-mode + smex + smooth-scrolling + spaceline + swiper + switch-window + tagedit + toml-mode + typescript-mode + undo-tree + unfill + uptimes + use-package + virtualenvwrapper + wgrep-ag + whitespace-cleanup-mode + whole-line-or-region + with-editor + xref-js2 + yari + zenburn-theme +] \ No newline at end of file -- cgit v1.2.1