summary refs log tree commit diff stats
path: root/user/modules
diff options
context:
space:
mode:
authorAlan Pearce2019-10-05 00:53:20 +0200
committerAlan Pearce2019-10-05 00:53:20 +0200
commit9f6dc506d7d3c46bdd19c7d3a1e306b0304eab1c (patch)
treea2a9e0aeb058952bb1beb30b6abb37193f5ed5d5 /user/modules
parent725ce0a79072b281045fe8c7c61fa244dd11a79b (diff)
downloadnixfiles-9f6dc506d7d3c46bdd19c7d3a1e306b0304eab1c.tar.lz
nixfiles-9f6dc506d7d3c46bdd19c7d3a1e306b0304eab1c.tar.zst
nixfiles-9f6dc506d7d3c46bdd19c7d3a1e306b0304eab1c.zip
Import emacs package to home-manager configuration
Diffstat (limited to 'user/modules')
-rw-r--r--user/modules/emacs.nix133
1 files changed, 122 insertions, 11 deletions
diff --git a/user/modules/emacs.nix b/user/modules/emacs.nix
index 7c5a5b7d..eef2e4e8 100644
--- a/user/modules/emacs.nix
+++ b/user/modules/emacs.nix
@@ -1,18 +1,16 @@
 { config, pkgs, lib, ... }:
 
 let
-  pkgsUnstable = if pkgs.stdenv.isDarwin then import <nixpkgs-unstable> {} else import <nixos-unstable> {};
-  emacsPackage = import ../packages/emacs.nix {
-    pkgs = pkgs.unstable;
-    emacs = pkgs.unstable.emacs;
-  };
+  inherit (pkgs) stdenv;
+
+  pkgsUnstable = if stdenv.isDarwin then import <nixpkgs-unstable> {} else import <nixos-unstable> {};
 
   editorScript = pkgs.writeScriptBin "edit" ''
     #!${pkgs.runtimeShell}
     if [ -z "$1" ]; then
-      exec ${emacsPackage}/bin/emacsclient --create-frame --alternate-editor ${emacsPackage}/bin/emacs
+      exec ${config.programs.emacs.finalPackage}/bin/emacsclient --create-frame --alternate-editor ${config.programs.emacs.finalPackage}/bin/emacs
     else
-      exec ${emacsPackage}/bin/emacsclient --alternate-editor ${emacsPackage}/bin/emacs "$@"
+      exec ${config.programs.emacs.finalPackage}/bin/emacsclient --alternate-editor ${config.programs.emacs.finalPackage}/bin/emacs "$@"
     fi
   '';
   desktopApplicationFile = pkgs.writeTextFile {
@@ -35,13 +33,126 @@ let
   };
 in
 {
+  programs.emacs = {
+    enable = true;
+    extraPackages = epkgs: (with epkgs; [
+      ace-link
+      all-the-icons
+      almost-mono-themes
+      add-node-modules-path
+      ag
+      all-the-icons
+      amx
+      auto-async-byte-compile
+      avy
+      basic-theme
+      bash-completion
+      caddyfile-mode
+      company
+      company-web
+      company-tabnine
+      counsel
+      counsel-projectile
+      crux
+      docker-compose-mode
+      dockerfile-mode
+      editorconfig
+      eink-theme
+      eldoc-box
+      emmet-mode
+      esh-autosuggest
+      esh-buf-stack
+      esh-help
+      eshell-fringe-status
+      eshell-toggle
+      eshell-up
+      evil
+      evil-collection
+      evil-commentary
+      evil-magit
+      evil-mu4e
+      evil-org
+      evil-quickscope
+      evil-space
+      evil-surround
+      eyebrowse
+      feature-mode
+      fish-completion
+      flycheck
+      flymake-diagnostic-at-point
+      general
+      git-gutter-fringe
+      git-messenger
+      git-timemachine
+      gitattributes-mode
+      gitconfig-mode
+      gitignore-mode
+      gitlab-ci-mode
+      gitlab-ci-mode-flycheck
+      goto-chg
+      haskell-mode
+      helpful
+      ivy-hydra
+      jinja2-mode
+      js2-mode
+      json-mode
+      k8s-mode
+      # kubernetes
+      # kubernetes-evil
+      ledger-mode
+      lsp-mode
+      lsp-ui
+      lsp-haskell
+      lsp-treemacs
+      magit
+      markdown-mode
+      minions
+      monotropic-theme
+      moody
+      nginx-mode
+      nix-mode
+      nix-update
+      org-journal
+      paredit
+      php-mode
+      posframe
+      prettier-js
+      projectile
+      projectile-ripgrep
+      quickrun
+      rainbow-mode
+      relative-buffers
+      restclient
+      ripgrep
+      rjsx-mode
+      scss-mode
+      spacemacs-theme
+      swiper
+      toml-mode
+      typescript-mode
+      undo-tree
+      use-package
+      web-mode
+      wgrep-ag
+      ws-butler
+      which-key
+      yaml-mode
+    ] ++ lib.optionals stdenv.isDarwin [
+      exec-path-from-shell
+      ns-auto-titlebar
+    ] ++ lib.optionals (!stdenv.isDarwin) [
+      pkgs.mu
+    ]);
+  };
   home.packages = [
-    emacsPackage
     editorScript
   ];
-  nixpkgs.config.packageOverrides = {
-    myEmacs = emacsPackage;
-  };
+  nixpkgs.overlays = [
+    (self: super: {
+      emacsPackagesNgGen = pkgsUnstable.emacsPackagesNgGen;
+      emacs = pkgsUnstable.emacs;
+    })
+  ];
   home.sessionVariables = {
     EDITOR = "${editorScript}/bin/edit";
   };