summary refs log tree commit diff stats
path: root/user
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
parent725ce0a79072b281045fe8c7c61fa244dd11a79b (diff)
downloadnixfiles-9f6dc506d7d3c46bdd19c7d3a1e306b0304eab1c.tar.lz
nixfiles-9f6dc506d7d3c46bdd19c7d3a1e306b0304eab1c.tar.zst
nixfiles-9f6dc506d7d3c46bdd19c7d3a1e306b0304eab1c.zip
Import emacs package to home-manager configuration
Diffstat (limited to 'user')
-rw-r--r--user/modules/emacs.nix133
-rw-r--r--user/packages/emacs.nix127
2 files changed, 122 insertions, 138 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";
   };
diff --git a/user/packages/emacs.nix b/user/packages/emacs.nix
deleted file mode 100644
index 3644f520..00000000
--- a/user/packages/emacs.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{
-  pkgs ? import <nixpkgs-unstable> {},
-  emacs ? pkgs.emacs
-}:
-
-let
-  myEmacs = pkgs.lib.overrideDerivation (emacs) (attrs: {
-    postInstall = attrs.postInstall + ''
-      rm $out/share/applications/emacs.desktop
-    '';
-  });
-  stdenv = pkgs.stdenv;
-
-  emacsWithPackages = (pkgs.emacsPackagesNgGen myEmacs).emacsWithPackages;
-in
-  emacsWithPackages (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
-    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
-  ] ++ (if stdenv.isDarwin then [
-    exec-path-from-shell
-    ns-auto-titlebar
-  ] else [
-  ])) ++ (with epkgs.elpaPackages; [
-    rainbow-mode
-  ]) ++ (if !stdenv.isDarwin then [
-    # From main packages set
-
-    pkgs.mu
-  ] else []))