{ pkgs ? import {}, 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 add-node-modules-path ag all-the-icons amx auto-async-byte-compile avy basic-theme caddyfile-mode company company-lsp company-web company-tabnine counsel counsel-projectile crux docker-compose-mode dockerfile-mode editorconfig eink-theme eldoc-box emmet-mode evil evil-collection evil-commentary evil-magit evil-org evil-quickscope evil-space evil-surround eyebrowse feature-mode flycheck 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 magit markdown-mode minions monotropic-theme moody nginx-mode nix-mode 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 which-key yaml-mode ] ++ (if stdenv.isDarwin then [ exec-path-from-shell ns-auto-titlebar ] else [ ])) ++ (with epkgs.elpaPackages; [ rainbow-mode ]) ++ [ # From main packages set ])