summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenny Ballou <kballou@devnulllabs.io>2019-05-02 18:04:18 -0600
committerKenny Ballou <kballou@devnulllabs.io>2019-05-02 18:04:18 -0600
commit00b6f11dcd6d6b9738ca71baaed768ef47664df6 (patch)
tree32f42373759627f411df919195ec0f0e0a34da51
parent573682acae2e1e4d2a1fe90ace3e84b424deb348 (diff)
downloadcfg.nix-00b6f11dcd6d6b9738ca71baaed768ef47664df6.tar.gz
cfg.nix-00b6f11dcd6d6b9738ca71baaed768ef47664df6.tar.xz
overlays: add initial emacs overlay
This still needs some work. Signed-off-by: Kenny Ballou <kballou@devnulllabs.io>
-rw-r--r--overlays/10-emacs.nix19
-rw-r--r--overlays/emacs/builder.nix33
-rw-r--r--overlays/emacs/packages.nix152
3 files changed, 204 insertions, 0 deletions
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